From 65ad80f1d843af47fda04449df61031df0fa099c Mon Sep 17 00:00:00 2001 From: Thong Thai Date: Tue, 13 Jul 2021 12:06:00 -0400 Subject: [PATCH] radeon/vce: change rate ctrl struct to array Signed-off-by: Thong Thai Reviewed-by: Boyuan Zhang Part-of: --- src/gallium/drivers/radeon/radeon_vce.c | 8 +++---- src/gallium/drivers/radeon/radeon_vce_40_2_2.c | 24 ++++++++++----------- src/gallium/drivers/radeon/radeon_vce_50.c | 18 ++++++++-------- src/gallium/drivers/radeon/radeon_vce_52.c | 30 +++++++++++++------------- 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/gallium/drivers/radeon/radeon_vce.c b/src/gallium/drivers/radeon/radeon_vce.c index 68d1409..daa7b88 100644 --- a/src/gallium/drivers/radeon/radeon_vce.c +++ b/src/gallium/drivers/radeon/radeon_vce.c @@ -261,13 +261,13 @@ static void rvce_begin_frame(struct pipe_video_codec *encoder, struct pipe_video struct pipe_h264_enc_picture_desc *pic = (struct pipe_h264_enc_picture_desc *)picture; bool need_rate_control = - enc->pic.rate_ctrl.rate_ctrl_method != pic->rate_ctrl.rate_ctrl_method || + enc->pic.rate_ctrl[0].rate_ctrl_method != pic->rate_ctrl[0].rate_ctrl_method || enc->pic.quant_i_frames != pic->quant_i_frames || enc->pic.quant_p_frames != pic->quant_p_frames || enc->pic.quant_b_frames != pic->quant_b_frames || - enc->pic.rate_ctrl.target_bitrate != pic->rate_ctrl.target_bitrate || - enc->pic.rate_ctrl.frame_rate_num != pic->rate_ctrl.frame_rate_num || - enc->pic.rate_ctrl.frame_rate_den != pic->rate_ctrl.frame_rate_den; + enc->pic.rate_ctrl[0].target_bitrate != pic->rate_ctrl[0].target_bitrate || + enc->pic.rate_ctrl[0].frame_rate_num != pic->rate_ctrl[0].frame_rate_num || + enc->pic.rate_ctrl[0].frame_rate_den != pic->rate_ctrl[0].frame_rate_den; enc->pic = *pic; enc->si_get_pic_param(enc, pic); diff --git a/src/gallium/drivers/radeon/radeon_vce_40_2_2.c b/src/gallium/drivers/radeon/radeon_vce_40_2_2.c index 30b4353..184df16 100644 --- a/src/gallium/drivers/radeon/radeon_vce_40_2_2.c +++ b/src/gallium/drivers/radeon/radeon_vce_40_2_2.c @@ -92,22 +92,22 @@ static void create(struct rvce_encoder *enc) static void rate_control(struct rvce_encoder *enc) { RVCE_BEGIN(0x04000005); // rate control - RVCE_CS(enc->pic.rate_ctrl.rate_ctrl_method); // encRateControlMethod - RVCE_CS(enc->pic.rate_ctrl.target_bitrate); // encRateControlTargetBitRate - RVCE_CS(enc->pic.rate_ctrl.peak_bitrate); // encRateControlPeakBitRate - RVCE_CS(enc->pic.rate_ctrl.frame_rate_num); // encRateControlFrameRateNum + RVCE_CS(enc->pic.rate_ctrl[0].rate_ctrl_method); // encRateControlMethod + RVCE_CS(enc->pic.rate_ctrl[0].target_bitrate); // encRateControlTargetBitRate + RVCE_CS(enc->pic.rate_ctrl[0].peak_bitrate); // encRateControlPeakBitRate + RVCE_CS(enc->pic.rate_ctrl[0].frame_rate_num); // encRateControlFrameRateNum RVCE_CS(0x00000000); // encGOPSize RVCE_CS(enc->pic.quant_i_frames); // encQP_I RVCE_CS(enc->pic.quant_p_frames); // encQP_P RVCE_CS(enc->pic.quant_b_frames); // encQP_B - RVCE_CS(enc->pic.rate_ctrl.vbv_buffer_size); // encVBVBufferSize - RVCE_CS(enc->pic.rate_ctrl.frame_rate_den); // encRateControlFrameRateDen + RVCE_CS(enc->pic.rate_ctrl[0].vbv_buffer_size); // encVBVBufferSize + RVCE_CS(enc->pic.rate_ctrl[0].frame_rate_den); // encRateControlFrameRateDen RVCE_CS(0x00000000); // encVBVBufferLevel RVCE_CS(0x00000000); // encMaxAUSize RVCE_CS(0x00000000); // encQPInitialMode - RVCE_CS(enc->pic.rate_ctrl.target_bits_picture); // encTargetBitsPerPicture - RVCE_CS(enc->pic.rate_ctrl.peak_bits_picture_integer); // encPeakBitsPerPictureInteger - RVCE_CS(enc->pic.rate_ctrl.peak_bits_picture_fraction); // encPeakBitsPerPictureFractional + RVCE_CS(enc->pic.rate_ctrl[0].target_bits_picture); // encTargetBitsPerPicture + RVCE_CS(enc->pic.rate_ctrl[0].peak_bits_picture_integer); // encPeakBitsPerPictureInteger + RVCE_CS(enc->pic.rate_ctrl[0].peak_bits_picture_fraction); // encPeakBitsPerPictureFractional RVCE_CS(0x00000000); // encMinQP RVCE_CS(0x00000033); // encMaxQP RVCE_CS(0x00000000); // encSkipFrameEnable @@ -221,7 +221,7 @@ static void vui(struct rvce_encoder *enc) { int i; - if (!enc->pic.rate_ctrl.frame_rate_num) + if (!enc->pic.rate_ctrl[0].frame_rate_num) return; RVCE_BEGIN(0x04000009); // vui @@ -242,8 +242,8 @@ static void vui(struct rvce_encoder *enc) RVCE_CS(0x00000000); // chromaLocInfo.chromaLocTop RVCE_CS(0x00000000); // chromaLocInfo.chromaLocBottom RVCE_CS(0x00000001); // timingInfoPresentFlag - RVCE_CS(enc->pic.rate_ctrl.frame_rate_den); // timingInfo.numUnitsInTick - RVCE_CS(enc->pic.rate_ctrl.frame_rate_num * 2); // timingInfo.timeScale; + RVCE_CS(enc->pic.rate_ctrl[0].frame_rate_den); // timingInfo.numUnitsInTick + RVCE_CS(enc->pic.rate_ctrl[0].frame_rate_num * 2); // timingInfo.timeScale; RVCE_CS(0x00000001); // timingInfo.fixedFrameRateFlag RVCE_CS(0x00000000); // nalHRDParametersPresentFlag RVCE_CS(0x00000000); // hrdParam.cpbCntMinus1 diff --git a/src/gallium/drivers/radeon/radeon_vce_50.c b/src/gallium/drivers/radeon/radeon_vce_50.c index e75ceec..918804e 100644 --- a/src/gallium/drivers/radeon/radeon_vce_50.c +++ b/src/gallium/drivers/radeon/radeon_vce_50.c @@ -38,22 +38,22 @@ static void rate_control(struct rvce_encoder *enc) { RVCE_BEGIN(0x04000005); // rate control - RVCE_CS(enc->pic.rate_ctrl.rate_ctrl_method); // encRateControlMethod - RVCE_CS(enc->pic.rate_ctrl.target_bitrate); // encRateControlTargetBitRate - RVCE_CS(enc->pic.rate_ctrl.peak_bitrate); // encRateControlPeakBitRate - RVCE_CS(enc->pic.rate_ctrl.frame_rate_num); // encRateControlFrameRateNum + RVCE_CS(enc->pic.rate_ctrl[0].rate_ctrl_method); // encRateControlMethod + RVCE_CS(enc->pic.rate_ctrl[0].target_bitrate); // encRateControlTargetBitRate + RVCE_CS(enc->pic.rate_ctrl[0].peak_bitrate); // encRateControlPeakBitRate + RVCE_CS(enc->pic.rate_ctrl[0].frame_rate_num); // encRateControlFrameRateNum RVCE_CS(0x00000000); // encGOPSize RVCE_CS(enc->pic.quant_i_frames); // encQP_I RVCE_CS(enc->pic.quant_p_frames); // encQP_P RVCE_CS(enc->pic.quant_b_frames); // encQP_B - RVCE_CS(enc->pic.rate_ctrl.vbv_buffer_size); // encVBVBufferSize - RVCE_CS(enc->pic.rate_ctrl.frame_rate_den); // encRateControlFrameRateDen + RVCE_CS(enc->pic.rate_ctrl[0].vbv_buffer_size); // encVBVBufferSize + RVCE_CS(enc->pic.rate_ctrl[0].frame_rate_den); // encRateControlFrameRateDen RVCE_CS(0x00000000); // encVBVBufferLevel RVCE_CS(0x00000000); // encMaxAUSize RVCE_CS(0x00000000); // encQPInitialMode - RVCE_CS(enc->pic.rate_ctrl.target_bits_picture); // encTargetBitsPerPicture - RVCE_CS(enc->pic.rate_ctrl.peak_bits_picture_integer); // encPeakBitsPerPictureInteger - RVCE_CS(enc->pic.rate_ctrl.peak_bits_picture_fraction); // encPeakBitsPerPictureFractional + RVCE_CS(enc->pic.rate_ctrl[0].target_bits_picture); // encTargetBitsPerPicture + RVCE_CS(enc->pic.rate_ctrl[0].peak_bits_picture_integer); // encPeakBitsPerPictureInteger + RVCE_CS(enc->pic.rate_ctrl[0].peak_bits_picture_fraction); // encPeakBitsPerPictureFractional RVCE_CS(0x00000000); // encMinQP RVCE_CS(0x00000033); // encMaxQP RVCE_CS(0x00000000); // encSkipFrameEnable diff --git a/src/gallium/drivers/radeon/radeon_vce_52.c b/src/gallium/drivers/radeon/radeon_vce_52.c index f70534d..961c473 100644 --- a/src/gallium/drivers/radeon/radeon_vce_52.c +++ b/src/gallium/drivers/radeon/radeon_vce_52.c @@ -37,15 +37,15 @@ static void get_rate_control_param(struct rvce_encoder *enc, struct pipe_h264_enc_picture_desc *pic) { - enc->enc_pic.rc.rc_method = pic->rate_ctrl.rate_ctrl_method; - enc->enc_pic.rc.target_bitrate = pic->rate_ctrl.target_bitrate; - enc->enc_pic.rc.peak_bitrate = pic->rate_ctrl.peak_bitrate; + enc->enc_pic.rc.rc_method = pic->rate_ctrl[0].rate_ctrl_method; + enc->enc_pic.rc.target_bitrate = pic->rate_ctrl[0].target_bitrate; + enc->enc_pic.rc.peak_bitrate = pic->rate_ctrl[0].peak_bitrate; enc->enc_pic.rc.quant_i_frames = pic->quant_i_frames; enc->enc_pic.rc.quant_p_frames = pic->quant_p_frames; enc->enc_pic.rc.quant_b_frames = pic->quant_b_frames; enc->enc_pic.rc.gop_size = pic->gop_size; - enc->enc_pic.rc.frame_rate_num = pic->rate_ctrl.frame_rate_num; - enc->enc_pic.rc.frame_rate_den = pic->rate_ctrl.frame_rate_den; + enc->enc_pic.rc.frame_rate_num = pic->rate_ctrl[0].frame_rate_num; + enc->enc_pic.rc.frame_rate_den = pic->rate_ctrl[0].frame_rate_den; enc->enc_pic.rc.max_qp = 51; /* For CBR mode, to guarantee bitrate of generated stream complies with @@ -53,17 +53,17 @@ static void get_rate_control_param(struct rvce_encoder *enc, struct pipe_h264_en * as target bitrate. */ if (enc->enc_pic.rc.rc_method == PIPE_H2645_ENC_RATE_CONTROL_METHOD_CONSTANT) { - enc->enc_pic.rc.vbv_buffer_size = pic->rate_ctrl.target_bitrate; + enc->enc_pic.rc.vbv_buffer_size = pic->rate_ctrl[0].target_bitrate; } else { - enc->enc_pic.rc.vbv_buffer_size = pic->rate_ctrl.vbv_buffer_size; + enc->enc_pic.rc.vbv_buffer_size = pic->rate_ctrl[0].vbv_buffer_size; } - enc->enc_pic.rc.vbv_buf_lv = pic->rate_ctrl.vbv_buf_lv; - enc->enc_pic.rc.fill_data_enable = pic->rate_ctrl.fill_data_enable; - enc->enc_pic.rc.enforce_hrd = pic->rate_ctrl.enforce_hrd; - enc->enc_pic.rc.target_bits_picture = pic->rate_ctrl.target_bits_picture; - enc->enc_pic.rc.peak_bits_picture_integer = pic->rate_ctrl.peak_bits_picture_integer; - enc->enc_pic.rc.peak_bits_picture_fraction = pic->rate_ctrl.peak_bits_picture_fraction; + enc->enc_pic.rc.vbv_buf_lv = pic->rate_ctrl[0].vbv_buf_lv; + enc->enc_pic.rc.fill_data_enable = pic->rate_ctrl[0].fill_data_enable; + enc->enc_pic.rc.enforce_hrd = pic->rate_ctrl[0].enforce_hrd; + enc->enc_pic.rc.target_bits_picture = pic->rate_ctrl[0].target_bits_picture; + enc->enc_pic.rc.peak_bits_picture_integer = pic->rate_ctrl[0].peak_bits_picture_integer; + enc->enc_pic.rc.peak_bits_picture_fraction = pic->rate_ctrl[0].peak_bits_picture_fraction; } static void get_motion_estimation_param(struct rvce_encoder *enc, @@ -132,8 +132,8 @@ static void get_vui_param(struct rvce_encoder *enc, struct pipe_h264_enc_picture enc->enc_pic.vui.transfer_char = 0x00000002; enc->enc_pic.vui.matrix_coef = 0x00000002; enc->enc_pic.vui.timing_info_present_flag = 0x00000001; - enc->enc_pic.vui.num_units_in_tick = pic->rate_ctrl.frame_rate_den; - enc->enc_pic.vui.time_scale = pic->rate_ctrl.frame_rate_num * 2; + enc->enc_pic.vui.num_units_in_tick = pic->rate_ctrl[0].frame_rate_den; + enc->enc_pic.vui.time_scale = pic->rate_ctrl[0].frame_rate_num * 2; enc->enc_pic.vui.fixed_frame_rate_flag = 0x00000001; enc->enc_pic.vui.bit_rate_scale = 0x00000004; enc->enc_pic.vui.cpb_size_scale = 0x00000006; -- 2.7.4