radeonsi/vcn/enc: enable cabac entropy mode
Set cabac entropy mode if enabled. v2: add extra check on radeon driver side, disable cabac if profile is baseline or extended. Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com> Acked-by: Leo Liu <leo.liu@amd.com> Reviewed-by: Ruijing Dong <ruijing.dong@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16113>
This commit is contained in:
parent
dea360dcf9
commit
fef2004b11
|
@ -101,6 +101,14 @@ static void radeon_vcn_enc_get_param(struct radeon_encoder *enc, struct pipe_pic
|
|||
default:
|
||||
enc->enc_pic.rc_session_init.rate_control_method = RENCODE_RATE_CONTROL_METHOD_NONE;
|
||||
}
|
||||
enc->enc_pic.spec_misc.profile_idc = u_get_h264_profile_idc(enc->base.profile);
|
||||
if (enc->enc_pic.spec_misc.profile_idc >= PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN &&
|
||||
enc->enc_pic.spec_misc.profile_idc != PIPE_VIDEO_PROFILE_MPEG4_AVC_EXTENDED)
|
||||
enc->enc_pic.spec_misc.cabac_enable = pic->pic_ctrl.enc_cabac_enable;
|
||||
else
|
||||
enc->enc_pic.spec_misc.cabac_enable = false;
|
||||
enc->enc_pic.spec_misc.cabac_init_idc = enc->enc_pic.spec_misc.cabac_enable ? pic->pic_ctrl.enc_cabac_init_idc : 0;
|
||||
|
||||
} 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->enc_pic.picture_type = pic->picture_type;
|
||||
|
|
|
@ -168,11 +168,8 @@ static void radeon_enc_slice_control_hevc(struct radeon_encoder *enc)
|
|||
static void radeon_enc_spec_misc(struct radeon_encoder *enc)
|
||||
{
|
||||
enc->enc_pic.spec_misc.constrained_intra_pred_flag = 0;
|
||||
enc->enc_pic.spec_misc.cabac_enable = 0;
|
||||
enc->enc_pic.spec_misc.cabac_init_idc = 0;
|
||||
enc->enc_pic.spec_misc.half_pel_enabled = 1;
|
||||
enc->enc_pic.spec_misc.quarter_pel_enabled = 1;
|
||||
enc->enc_pic.spec_misc.profile_idc = u_get_h264_profile_idc(enc->base.profile);
|
||||
enc->enc_pic.spec_misc.level_idc = enc->base.level;
|
||||
|
||||
RADEON_ENC_BEGIN(enc->cmd.spec_misc_h264);
|
||||
|
|
|
@ -41,11 +41,8 @@
|
|||
static void radeon_enc_spec_misc(struct radeon_encoder *enc)
|
||||
{
|
||||
enc->enc_pic.spec_misc.constrained_intra_pred_flag = 0;
|
||||
enc->enc_pic.spec_misc.cabac_enable = 0;
|
||||
enc->enc_pic.spec_misc.cabac_init_idc = 0;
|
||||
enc->enc_pic.spec_misc.half_pel_enabled = 1;
|
||||
enc->enc_pic.spec_misc.quarter_pel_enabled = 1;
|
||||
enc->enc_pic.spec_misc.profile_idc = u_get_h264_profile_idc(enc->base.profile);
|
||||
enc->enc_pic.spec_misc.level_idc = enc->base.level;
|
||||
enc->enc_pic.spec_misc.b_picture_enabled = 0;
|
||||
enc->enc_pic.spec_misc.weighted_bipred_idc = 0;
|
||||
|
|
Loading…
Reference in New Issue