Module: Mesa
Branch: main
Commit: 72fadf5faf990d1e7babf4d1a9c0eb20e99af379
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=72fadf5faf990d1e7babf4d1a9c0eb20e99af379

Author: David Rosca <now...@gmail.com>
Date:   Tue Oct 31 10:13:23 2023 +0100

radeonsi/vce: Add VUI parameters in output bitstream

This enables VUI parameters and sets aspect ratio, video format,
video full range, colour description and chroma location.

Reviewed-by: Boyuan Zhang <boyuan.zh...@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991>

---

 src/gallium/drivers/radeonsi/radeon_vce_52.c | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/radeon_vce_52.c 
b/src/gallium/drivers/radeonsi/radeon_vce_52.c
index fde13513fb0..49ba400bd84 100644
--- a/src/gallium/drivers/radeonsi/radeon_vce_52.c
+++ b/src/gallium/drivers/radeonsi/radeon_vce_52.c
@@ -97,12 +97,26 @@ static void get_config_ext_param(struct rvce_encoder *enc)
 
 static void get_vui_param(struct rvce_encoder *enc, struct 
pipe_h264_enc_picture_desc *pic)
 {
-   enc->enc_pic.enable_vui = pic->enable_vui;
-   enc->enc_pic.vui.video_format = 0x00000005;
-   enc->enc_pic.vui.color_prim = 0x00000002;
-   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.enable_vui = pic->seq.vui_parameters_present_flag;
+   enc->enc_pic.vui.aspect_ratio_info_present_flag =
+      pic->seq.vui_flags.aspect_ratio_info_present_flag;
+   enc->enc_pic.vui.aspect_ratio_idc = pic->seq.aspect_ratio_idc;
+   enc->enc_pic.vui.sar_width = pic->seq.sar_width;
+   enc->enc_pic.vui.sar_height = pic->seq.sar_height;
+   enc->enc_pic.vui.video_signal_type_present_flag =
+      pic->seq.vui_flags.video_signal_type_present_flag;
+   enc->enc_pic.vui.video_format = pic->seq.video_format;
+   enc->enc_pic.vui.video_full_range_flag = pic->seq.video_full_range_flag;
+   enc->enc_pic.vui.color_description_present_flag =
+      pic->seq.vui_flags.colour_description_present_flag;
+   enc->enc_pic.vui.color_prim = pic->seq.colour_primaries;
+   enc->enc_pic.vui.transfer_char = pic->seq.transfer_characteristics;
+   enc->enc_pic.vui.matrix_coef = pic->seq.matrix_coefficients;
+   enc->enc_pic.vui.chroma_loc_info_present_flag =
+      pic->seq.vui_flags.chroma_loc_info_present_flag;
+   enc->enc_pic.vui.chroma_loc_top = pic->seq.chroma_sample_loc_type_top_field;
+   enc->enc_pic.vui.chroma_loc_bottom = 
pic->seq.chroma_sample_loc_type_bottom_field;
+   enc->enc_pic.vui.timing_info_present_flag = 
pic->seq.vui_flags.timing_info_present_flag;
    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;

Reply via email to