diff --git a/src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c b/src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c index 6e85eb33ff9..8302e3ffb3b 100644 --- a/src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c +++ b/src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c @@ -397,15 +397,21 @@ static void radeon_enc_nalu_sps_hevc(struct radeon_encoder *enc) radeon_enc_code_ue(enc, enc->enc_pic.session_init.aligned_picture_width); radeon_enc_code_ue(enc, enc->enc_pic.session_init.aligned_picture_height); - if ((enc->enc_pic.crop_left != 0) || (enc->enc_pic.crop_right != 0) || - (enc->enc_pic.crop_top != 0) || (enc->enc_pic.crop_bottom != 0)) { - radeon_enc_code_fixed_bits(enc, 0x1, 1); - radeon_enc_code_ue(enc, enc->enc_pic.crop_left); - radeon_enc_code_ue(enc, enc->enc_pic.crop_right); - radeon_enc_code_ue(enc, enc->enc_pic.crop_top); - radeon_enc_code_ue(enc, enc->enc_pic.crop_bottom); - } else - radeon_enc_code_fixed_bits(enc, 0x0, 1); + if ((enc->enc_pic.crop_left != 0) || (enc->enc_pic.crop_right != 0) || + (enc->enc_pic.crop_top != 0) || (enc->enc_pic.crop_bottom != 0)) { + radeon_enc_code_fixed_bits(enc, 0x1, 1); + radeon_enc_code_ue(enc, enc->enc_pic.crop_left); + radeon_enc_code_ue(enc, enc->enc_pic.crop_right); + radeon_enc_code_ue(enc, enc->enc_pic.crop_top); + radeon_enc_code_ue(enc, enc->enc_pic.crop_bottom); + } else if (enc->enc_pic.session_init.padding_width != 0 || + enc->enc_pic.session_init.padding_height != 0) { + radeon_enc_code_fixed_bits(enc, 0x1, 1); + radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_width / 2); + radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_width / 2); + radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_height / 2); + radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_height / 2); + } else radeon_enc_code_ue(enc, enc->enc_pic.bit_depth_luma_minus8); radeon_enc_code_ue(enc, enc->enc_pic.bit_depth_chroma_minus8); diff --git a/src/gallium/drivers/radeon/radeon_vcn_enc_2_0.c b/src/gallium/drivers/radeon/radeon_vcn_enc_2_0.c index 57595746344..d6cc7bbc022 100644 --- a/src/gallium/drivers/radeon/radeon_vcn_enc_2_0.c +++ b/src/gallium/drivers/radeon/radeon_vcn_enc_2_0.c @@ -284,15 +284,22 @@ static void radeon_enc_nalu_sps_hevc(struct radeon_encoder *enc) radeon_enc_code_ue(enc, enc->enc_pic.session_init.aligned_picture_width); radeon_enc_code_ue(enc, enc->enc_pic.session_init.aligned_picture_height); - if ((enc->enc_pic.crop_left != 0) || (enc->enc_pic.crop_right != 0) || - (enc->enc_pic.crop_top != 0) || (enc->enc_pic.crop_bottom != 0)) { - radeon_enc_code_fixed_bits(enc, 0x1, 1); - radeon_enc_code_ue(enc, enc->enc_pic.crop_left); - radeon_enc_code_ue(enc, enc->enc_pic.crop_right); - radeon_enc_code_ue(enc, enc->enc_pic.crop_top); - radeon_enc_code_ue(enc, enc->enc_pic.crop_bottom); - } else - radeon_enc_code_fixed_bits(enc, 0x0, 1); + if ((enc->enc_pic.crop_left != 0) || (enc->enc_pic.crop_right != 0) || + (enc->enc_pic.crop_top != 0) || (enc->enc_pic.crop_bottom != 0)) { + radeon_enc_code_fixed_bits(enc, 0x1, 1); + radeon_enc_code_ue(enc, enc->enc_pic.crop_left); + radeon_enc_code_ue(enc, enc->enc_pic.crop_right); + radeon_enc_code_ue(enc, enc->enc_pic.crop_top); + radeon_enc_code_ue(enc, enc->enc_pic.crop_bottom); + } else if (enc->enc_pic.session_init.padding_width != 0 || + enc->enc_pic.session_init.padding_height != 0) { + radeon_enc_code_fixed_bits(enc, 0x1, 1); + radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_width / 2); + radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_width / 2); + radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_height / 2); + radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_height / 2); + } else + radeon_enc_code_fixed_bits(enc, 0x0, 1); radeon_enc_code_ue(enc, enc->enc_pic.bit_depth_luma_minus8); radeon_enc_code_ue(enc, enc->enc_pic.bit_depth_chroma_minus8);