38 dst->PicIdx = cf ? cf->idx : -1;
39 dst->FrameIdx = frame_idx;
40 dst->is_long_term =
src->long_ref;
41 dst->not_existing = 0;
42 dst->used_for_reference =
src->reference & 3;
43 dst->FieldOrderCnt[0] =
src->field_poc[0];
44 dst->FieldOrderCnt[1] =
src->field_poc[1];
55 CUVIDPICPARAMS *pp = &
ctx->pic_params;
56 CUVIDH264PICPARAMS *ppc = &pp->CodecSpecific.h264;
69 *pp = (CUVIDPICPARAMS) {
70 .PicWidthInMbs =
h->mb_width,
71 .FrameHeightInMbs =
h->mb_height,
72 .CurrPicIdx = cf->
idx,
76 .ref_pic_flag =
h->nal_ref_idc != 0,
79 .CodecSpecific.h264 = {
80 .log2_max_frame_num_minus4 =
sps->log2_max_frame_num - 4,
81 .pic_order_cnt_type =
sps->poc_type,
82 .log2_max_pic_order_cnt_lsb_minus4 =
FFMAX(
sps->log2_max_poc_lsb - 4, 0),
83 .delta_pic_order_always_zero_flag =
sps->delta_pic_order_always_zero_flag,
84 .frame_mbs_only_flag =
sps->frame_mbs_only_flag,
85 .direct_8x8_inference_flag =
sps->direct_8x8_inference_flag,
86 .num_ref_frames =
sps->ref_frame_count,
87 .residual_colour_transform_flag =
sps->residual_color_transform_flag,
88 .bit_depth_luma_minus8 =
sps->bit_depth_luma - 8,
89 .bit_depth_chroma_minus8 =
sps->bit_depth_chroma - 8,
90 .qpprime_y_zero_transform_bypass_flag =
sps->transform_bypass,
92 .entropy_coding_mode_flag =
pps->cabac,
93 .pic_order_present_flag =
pps->pic_order_present,
94 .num_ref_idx_l0_active_minus1 =
pps->ref_count[0] - 1,
95 .num_ref_idx_l1_active_minus1 =
pps->ref_count[1] - 1,
96 .weighted_pred_flag =
pps->weighted_pred,
97 .weighted_bipred_idc =
pps->weighted_bipred_idc,
98 .pic_init_qp_minus26 =
pps->init_qp - 26,
99 .deblocking_filter_control_present_flag =
pps->deblocking_filter_parameters_present,
100 .redundant_pic_cnt_present_flag =
pps->redundant_pic_cnt_present,
101 .transform_8x8_mode_flag =
pps->transform_8x8_mode,
103 .constrained_intra_pred_flag =
pps->constrained_intra_pred,
104 .chroma_qp_index_offset =
pps->chroma_qp_index_offset[0],
105 .second_chroma_qp_index_offset =
pps->chroma_qp_index_offset[1],
106 .ref_pic_flag =
h->nal_ref_idc != 0,
107 .frame_num =
h->poc.frame_num,
108 .CurrFieldOrderCnt[0] =
h->cur_pic_ptr->field_poc[0],
109 .CurrFieldOrderCnt[1] =
h->cur_pic_ptr->field_poc[1],
113 memcpy(ppc->WeightScale4x4,
pps->scaling_matrix4,
sizeof(ppc->WeightScale4x4));
114 memcpy(ppc->WeightScale8x8[0],
pps->scaling_matrix8[0],
sizeof(ppc->WeightScale8x8[0]));
115 memcpy(ppc->WeightScale8x8[1],
pps->scaling_matrix8[3],
sizeof(ppc->WeightScale8x8[0]));
118 for (
i = 0;
i <
h->short_ref_count;
i++)
120 for (
i = 0;
i < 16;
i++) {
126 ppc->dpb[
i].PicIdx = -1;
135 CUVIDPICPARAMS *pp = &
ctx->pic_params;
141 ctx->bitstream_len +
size + 3);
147 (
ctx->nb_slices + 1) *
sizeof(*
ctx->slice_offsets));
154 ctx->slice_offsets[
ctx->nb_slices] =
ctx->bitstream_len ;
155 ctx->bitstream_len +=
size + 3;
159 pp->intra_pic_flag = 0;
173 .
name =
"h264_nvdec",