From 925ffa8c4a5760d0f79de6bf1fab52c2d6e83b17 Mon Sep 17 00:00:00 2001 From: Christian König Date: Tue, 24 Sep 2013 03:03:33 -0600 Subject: vl/h264: split fields into SPS/PPS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add alot of missing fields as well. Signed-off-by: Christian König --- src/gallium/drivers/nouveau/nv50/nv84_video_bsp.c | 38 +++++++++++------------ src/gallium/drivers/nouveau/nv50/nv84_video_vp.c | 8 ++--- 2 files changed, 23 insertions(+), 23 deletions(-) (limited to 'src/gallium/drivers/nouveau/nv50') diff --git a/src/gallium/drivers/nouveau/nv50/nv84_video_bsp.c b/src/gallium/drivers/nouveau/nv50/nv84_video_bsp.c index 86047b5f463..de923e486b6 100644 --- a/src/gallium/drivers/nouveau/nv50/nv84_video_bsp.c +++ b/src/gallium/drivers/nouveau/nv50/nv84_video_bsp.c @@ -136,7 +136,7 @@ nv84_decoder_bsp(struct nv84_decoder *dec, params.iseqparm.chroma_format_idc = 1; params.iseqparm.pic_width_in_mbs_minus1 = mb(dec->base.width) - 1; - if (desc->field_pic_flag || desc->mb_adaptive_frame_field_flag) + if (desc->field_pic_flag || desc->pps->sps->mb_adaptive_frame_field_flag) params.iseqparm.pic_height_in_map_units_minus1 = mb_half(dec->base.height) - 1; else params.iseqparm.pic_height_in_map_units_minus1 = mb(dec->base.height) - 1; @@ -162,26 +162,26 @@ nv84_decoder_bsp(struct nv84_decoder *dec, } params.iseqparm.num_ref_frames = desc->num_ref_frames; - params.iseqparm.mb_adaptive_frame_field_flag = desc->mb_adaptive_frame_field_flag; - params.ipicparm.constrained_intra_pred_flag = desc->constrained_intra_pred_flag; - params.ipicparm.weighted_pred_flag = desc->weighted_pred_flag; - params.ipicparm.weighted_bipred_idc = desc->weighted_bipred_idc; - params.iseqparm.frame_mbs_only_flag = desc->frame_mbs_only_flag; - params.ipicparm.transform_8x8_mode_flag = desc->transform_8x8_mode_flag; - params.ipicparm.chroma_qp_index_offset = desc->chroma_qp_index_offset; - params.ipicparm.second_chroma_qp_index_offset = desc->second_chroma_qp_index_offset; - params.ipicparm.pic_init_qp_minus26 = desc->pic_init_qp_minus26; + params.iseqparm.mb_adaptive_frame_field_flag = desc->pps->sps->mb_adaptive_frame_field_flag; + params.ipicparm.constrained_intra_pred_flag = desc->pps->constrained_intra_pred_flag; + params.ipicparm.weighted_pred_flag = desc->pps->weighted_pred_flag; + params.ipicparm.weighted_bipred_idc = desc->pps->weighted_bipred_idc; + params.iseqparm.frame_mbs_only_flag = desc->pps->sps->frame_mbs_only_flag; + params.ipicparm.transform_8x8_mode_flag = desc->pps->transform_8x8_mode_flag; + params.ipicparm.chroma_qp_index_offset = desc->pps->chroma_qp_index_offset; + params.ipicparm.second_chroma_qp_index_offset = desc->pps->second_chroma_qp_index_offset; + params.ipicparm.pic_init_qp_minus26 = desc->pps->pic_init_qp_minus26; params.ipicparm.num_ref_idx_l0_active_minus1 = desc->num_ref_idx_l0_active_minus1; params.ipicparm.num_ref_idx_l1_active_minus1 = desc->num_ref_idx_l1_active_minus1; - params.iseqparm.log2_max_frame_num_minus4 = desc->log2_max_frame_num_minus4; - params.iseqparm.pic_order_cnt_type = desc->pic_order_cnt_type; - params.iseqparm.log2_max_pic_order_cnt_lsb_minus4 = desc->log2_max_pic_order_cnt_lsb_minus4; - params.iseqparm.delta_pic_order_always_zero_flag = desc->delta_pic_order_always_zero_flag; - params.iseqparm.direct_8x8_inference_flag = desc->direct_8x8_inference_flag; - params.ipicparm.entropy_coding_mode_flag = desc->entropy_coding_mode_flag; - params.ipicparm.pic_order_present_flag = desc->pic_order_present_flag; - params.ipicparm.deblocking_filter_control_present_flag = desc->deblocking_filter_control_present_flag; - params.ipicparm.redundant_pic_cnt_present_flag = desc->redundant_pic_cnt_present_flag; + params.iseqparm.log2_max_frame_num_minus4 = desc->pps->sps->log2_max_frame_num_minus4; + params.iseqparm.pic_order_cnt_type = desc->pps->sps->pic_order_cnt_type; + params.iseqparm.log2_max_pic_order_cnt_lsb_minus4 = desc->pps->sps->log2_max_pic_order_cnt_lsb_minus4; + params.iseqparm.delta_pic_order_always_zero_flag = desc->pps->sps->delta_pic_order_always_zero_flag; + params.iseqparm.direct_8x8_inference_flag = desc->pps->sps->direct_8x8_inference_flag; + params.ipicparm.entropy_coding_mode_flag = desc->pps->entropy_coding_mode_flag; + params.ipicparm.pic_order_present_flag = desc->pps->bottom_field_pic_order_in_frame_present_flag; + params.ipicparm.deblocking_filter_control_present_flag = desc->pps->deblocking_filter_control_present_flag; + params.ipicparm.redundant_pic_cnt_present_flag = desc->pps->redundant_pic_cnt_present_flag; memcpy(dec->bitstream->map, ¶ms, sizeof(params)); for (i = 0; i < num_buffers; i++) { diff --git a/src/gallium/drivers/nouveau/nv50/nv84_video_vp.c b/src/gallium/drivers/nouveau/nv50/nv84_video_vp.c index 619aa4e7a40..f3480b2e00e 100644 --- a/src/gallium/drivers/nouveau/nv50/nv84_video_vp.c +++ b/src/gallium/drivers/nouveau/nv50/nv84_video_vp.c @@ -90,9 +90,9 @@ nv84_decoder_vp_h264(struct nv84_decoder *dec, memset(¶m1, 0, sizeof(param1)); memset(¶m2, 0, sizeof(param2)); - memcpy(¶m1.scaling_lists_4x4, desc->scaling_lists_4x4, + memcpy(¶m1.scaling_lists_4x4, desc->pps->ScalingList4x4, sizeof(param1.scaling_lists_4x4)); - memcpy(¶m1.scaling_lists_8x8, desc->scaling_lists_8x8, + memcpy(¶m1.scaling_lists_8x8, desc->pps->ScalingList8x8, sizeof(param1.scaling_lists_8x8)); param1.width = width; @@ -100,7 +100,7 @@ nv84_decoder_vp_h264(struct nv84_decoder *dec, param1.height = param1.h2 = height; param1.h1 = param1.h3 = align(height, 32); param1.format = 0x3231564e; /* 'NV12' */ - param1.mb_adaptive_frame_field_flag = desc->mb_adaptive_frame_field_flag; + param1.mb_adaptive_frame_field_flag = desc->pps->sps->mb_adaptive_frame_field_flag; param1.field_pic_flag = desc->field_pic_flag; param2.width = width; @@ -116,7 +116,7 @@ nv84_decoder_vp_h264(struct nv84_decoder *dec, param2.top = desc->bottom_field_flag ? 2 : 1; param2.bottom = desc->bottom_field_flag; } - param2.mb_adaptive_frame_field_flag = desc->mb_adaptive_frame_field_flag; + param2.mb_adaptive_frame_field_flag = desc->pps->sps->mb_adaptive_frame_field_flag; param2.is_reference = desc->is_reference; PUSH_SPACE(push, 5 + 16 + 3 + 2 + 6 + (is_ref ? 2 : 0) + 3 + 2 + 4 + 2); -- cgit v1.2.3