mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 12:40:23 +01:00
radeonsi/vcn: Allow dynamic change of QVBR quality level
This was missed when QVBR was added. Reviewed-by: Ruijing Dong <ruijing.dong@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30471>
This commit is contained in:
parent
0e05ae1a10
commit
c0a9cdc4de
1 changed files with 6 additions and 3 deletions
|
|
@ -1435,7 +1435,8 @@ static void radeon_enc_begin_frame(struct pipe_video_codec *encoder,
|
|||
enc->need_rc_per_pic =
|
||||
(!enc->enc_pic.rc_per_pic.qp_i && enc->enc_pic.rc_per_pic.qp_i != pic->quant_i_frames) ||
|
||||
(!enc->enc_pic.rc_per_pic.qp_p && enc->enc_pic.rc_per_pic.qp_p != pic->quant_p_frames) ||
|
||||
(!enc->enc_pic.rc_per_pic.qp_b && enc->enc_pic.rc_per_pic.qp_b != pic->quant_b_frames);
|
||||
(!enc->enc_pic.rc_per_pic.qp_b && enc->enc_pic.rc_per_pic.qp_b != pic->quant_b_frames) ||
|
||||
(enc->enc_pic.rc_per_pic.qvbr_quality_level != pic->rate_ctrl[0].vbr_quality_factor);
|
||||
} else if (u_reduce_video_profile(picture->profile) == PIPE_VIDEO_FORMAT_HEVC) {
|
||||
struct pipe_h265_enc_picture_desc *pic = (struct pipe_h265_enc_picture_desc *)picture;
|
||||
enc->need_rate_control =
|
||||
|
|
@ -1450,7 +1451,8 @@ static void radeon_enc_begin_frame(struct pipe_video_codec *encoder,
|
|||
|
||||
enc->need_rc_per_pic =
|
||||
(!enc->enc_pic.rc_per_pic.qp_i && enc->enc_pic.rc_per_pic.qp_i != pic->rc.quant_i_frames) ||
|
||||
(!enc->enc_pic.rc_per_pic.qp_p && enc->enc_pic.rc_per_pic.qp_p != pic->rc.quant_p_frames);
|
||||
(!enc->enc_pic.rc_per_pic.qp_p && enc->enc_pic.rc_per_pic.qp_p != pic->rc.quant_p_frames) ||
|
||||
(enc->enc_pic.rc_per_pic.qvbr_quality_level != pic->rc.vbr_quality_factor);
|
||||
} else if (u_reduce_video_profile(picture->profile) == PIPE_VIDEO_FORMAT_AV1) {
|
||||
struct pipe_av1_enc_picture_desc *pic = (struct pipe_av1_enc_picture_desc *)picture;
|
||||
enc->need_rate_control =
|
||||
|
|
@ -1465,7 +1467,8 @@ static void radeon_enc_begin_frame(struct pipe_video_codec *encoder,
|
|||
|
||||
enc->need_rc_per_pic =
|
||||
(!enc->enc_pic.rc_per_pic.qp_i && enc->enc_pic.rc_per_pic.qp_i != pic->rc[0].qp) ||
|
||||
(!enc->enc_pic.rc_per_pic.qp_p && enc->enc_pic.rc_per_pic.qp_p != pic->rc[0].qp_inter);
|
||||
(!enc->enc_pic.rc_per_pic.qp_p && enc->enc_pic.rc_per_pic.qp_p != pic->rc[0].qp_inter) ||
|
||||
(enc->enc_pic.rc_per_pic.qvbr_quality_level != pic->rc[0].vbr_quality_factor);
|
||||
|
||||
if (!enc->cdf) {
|
||||
enc->cdf = CALLOC_STRUCT(rvid_buffer);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue