40 dst->PicIdx = cf ? cf->idx : -1;
41 dst->FrameIdx = frame_idx;
42 dst->is_long_term =
src->long_ref;
43 dst->not_existing = 0;
44 dst->used_for_reference =
src->reference & 3;
45 dst->FieldOrderCnt[0] =
src->field_poc[0];
46 dst->FieldOrderCnt[1] =
src->field_poc[1];
58 CUVIDPICPARAMS *pp = &
ctx->pic_params;
59 CUVIDH264PICPARAMS *ppc = &pp->CodecSpecific.h264;
72 *pp = (CUVIDPICPARAMS) {
73 .PicWidthInMbs =
h->mb_width,
74 .FrameHeightInMbs =
h->mb_height,
75 .CurrPicIdx = cf->
idx,
79 .ref_pic_flag =
h->nal_ref_idc != 0,
82 .CodecSpecific.h264 = {
83 .log2_max_frame_num_minus4 =
sps->log2_max_frame_num - 4,
84 .pic_order_cnt_type =
sps->poc_type,
85 .log2_max_pic_order_cnt_lsb_minus4 =
FFMAX(
sps->log2_max_poc_lsb - 4, 0),
86 .delta_pic_order_always_zero_flag =
sps->delta_pic_order_always_zero_flag,
87 .frame_mbs_only_flag =
sps->frame_mbs_only_flag,
88 .direct_8x8_inference_flag =
sps->direct_8x8_inference_flag,
89 .num_ref_frames =
sps->ref_frame_count,
90 .residual_colour_transform_flag =
sps->residual_color_transform_flag,
91 .bit_depth_luma_minus8 =
sps->bit_depth_luma - 8,
92 .bit_depth_chroma_minus8 =
sps->bit_depth_chroma - 8,
93 .qpprime_y_zero_transform_bypass_flag =
sps->transform_bypass,
95 .entropy_coding_mode_flag =
pps->cabac,
96 .pic_order_present_flag =
pps->pic_order_present,
97 .num_ref_idx_l0_active_minus1 =
pps->ref_count[0] - 1,
98 .num_ref_idx_l1_active_minus1 =
pps->ref_count[1] - 1,
99 .weighted_pred_flag =
pps->weighted_pred,
100 .weighted_bipred_idc =
pps->weighted_bipred_idc,
101 .pic_init_qp_minus26 =
pps->init_qp - 26 - 6 * (
sps->bit_depth_luma - 8),
102 .deblocking_filter_control_present_flag =
pps->deblocking_filter_parameters_present,
103 .redundant_pic_cnt_present_flag =
pps->redundant_pic_cnt_present,
104 .transform_8x8_mode_flag =
pps->transform_8x8_mode,
106 .constrained_intra_pred_flag =
pps->constrained_intra_pred,
107 .chroma_qp_index_offset =
pps->chroma_qp_index_offset[0],
108 .second_chroma_qp_index_offset =
pps->chroma_qp_index_offset[1],
109 .ref_pic_flag =
h->nal_ref_idc != 0,
110 .frame_num =
h->poc.frame_num,
111 .CurrFieldOrderCnt[0] =
h->cur_pic_ptr->field_poc[0],
112 .CurrFieldOrderCnt[1] =
h->cur_pic_ptr->field_poc[1],
116 memcpy(ppc->WeightScale4x4,
pps->scaling_matrix4,
sizeof(ppc->WeightScale4x4));
117 memcpy(ppc->WeightScale8x8[0],
pps->scaling_matrix8[0],
sizeof(ppc->WeightScale8x8[0]));
118 memcpy(ppc->WeightScale8x8[1],
pps->scaling_matrix8[3],
sizeof(ppc->WeightScale8x8[0]));
121 for (
i = 0;
i <
h->short_ref_count;
i++)
123 for (
i = 0;
i < 16;
i++) {
129 ppc->dpb[
i].PicIdx = -1;
138 CUVIDPICPARAMS *pp = &
ctx->pic_params;
144 ctx->bitstream_len +
size + 3);
147 ctx->bitstream =
ctx->bitstream_internal =
tmp;
150 (
ctx->nb_slices + 1) *
sizeof(*
ctx->slice_offsets));
157 ctx->slice_offsets[
ctx->nb_slices] =
ctx->bitstream_len ;
158 ctx->bitstream_len +=
size + 3;
162 pp->intra_pic_flag = 0;
176 .
p.
name =
"h264_nvdec",