Mesa (main): radeon/vce: change rate ctrl struct to array
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jul 26 20:27:35 UTC 2021
Module: Mesa
Branch: main
Commit: 65ad80f1d843af47fda04449df61031df0fa099c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=65ad80f1d843af47fda04449df61031df0fa099c
Author: Thong Thai <thong.thai at amd.com>
Date: Tue Jul 13 12:06:00 2021 -0400
radeon/vce: change rate ctrl struct to array
Signed-off-by: Thong Thai <thong.thai at amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850>
---
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 68d140944bf..daa7b8898d1 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 30b43536c4a..184df16d4d7 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 e75ceec5950..918804ee063 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 f70534d14be..961c4731c46 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;
More information about the mesa-commit
mailing list