radeon/vcn: Handle crop parameters for encoder
authorSatyajit Sahu <satyajit.sahu@amd.com>
Tue, 24 Dec 2019 05:50:25 +0000 (11:20 +0530)
committerMarge Bot <eric+marge@anholt.net>
Thu, 9 Jan 2020 15:43:18 +0000 (15:43 +0000)
Set proper cropping parameter if frame cropping is enabled

Signed-off-by: Satyajit Sahu <satyajit.sahu@amd.com>
Reviewed-by: Boyuan Zhang boyuan.zhang@amd.com
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3328>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3328>

src/gallium/drivers/radeon/radeon_vcn_enc.c

index aa9182f273b6bf4832c382365de530d6a470a0d1..0bcce867327ad79180ee095c41f9b0e598fe9f08 100644 (file)
@@ -52,10 +52,17 @@ static void radeon_vcn_enc_get_param(struct radeon_encoder *enc, struct pipe_pic
       enc->enc_pic.ref_idx_l1 = pic->ref_idx_l1;
       enc->enc_pic.not_referenced = pic->not_referenced;
       enc->enc_pic.is_idr = (pic->picture_type == PIPE_H264_ENC_PICTURE_TYPE_IDR);
-      enc->enc_pic.crop_left = 0;
-      enc->enc_pic.crop_right = (align(enc->base.width, 16) - enc->base.width) / 2;
-      enc->enc_pic.crop_top = 0;
-      enc->enc_pic.crop_bottom = (align(enc->base.height, 16) - enc->base.height) / 2;
+      if (pic->pic_ctrl.enc_frame_cropping_flag) {
+          enc->enc_pic.crop_left = pic->pic_ctrl.enc_frame_crop_left_offset;
+          enc->enc_pic.crop_right = pic->pic_ctrl.enc_frame_crop_right_offset;
+          enc->enc_pic.crop_top = pic->pic_ctrl.enc_frame_crop_top_offset;
+          enc->enc_pic.crop_bottom = pic->pic_ctrl.enc_frame_crop_bottom_offset;
+      } else {
+          enc->enc_pic.crop_left = 0;
+          enc->enc_pic.crop_right = (align(enc->base.width, 16) - enc->base.width) / 2;
+          enc->enc_pic.crop_top = 0;
+          enc->enc_pic.crop_bottom = (align(enc->base.height, 16) - enc->base.height) / 2;
+      }
       enc->enc_pic.rc_layer_init.target_bit_rate = pic->rate_ctrl.target_bitrate;
       enc->enc_pic.rc_layer_init.peak_bit_rate = pic->rate_ctrl.peak_bitrate;
       enc->enc_pic.rc_layer_init.frame_rate_num = pic->rate_ctrl.frame_rate_num;