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

Author: Benjamin Cheng <[email protected]>
Date:   Wed Aug  9 00:23:12 2023 -0400

radv/video: use vk_video_derive_h264_scaling_list

Reviewed-by: Dave Airlie <[email protected]>
Reviewed-by: Lynne <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24572>

---

 src/amd/vulkan/radv_video.c | 34 ++++++++++------------------------
 1 file changed, 10 insertions(+), 24 deletions(-)

diff --git a/src/amd/vulkan/radv_video.c b/src/amd/vulkan/radv_video.c
index 1ab0465a9b9..83ac71c335a 100644
--- a/src/amd/vulkan/radv_video.c
+++ b/src/amd/vulkan/radv_video.c
@@ -820,18 +820,11 @@ get_h264_msg(struct radv_video_session *vid, struct 
radv_video_session_params *p
    result.chroma_qp_index_offset = pps->chroma_qp_index_offset;
    result.second_chroma_qp_index_offset = pps->second_chroma_qp_index_offset;
 
-   if (pps->flags.pic_scaling_matrix_present_flag) {
-      memcpy(result.scaling_list_4x4, pps->pScalingLists->ScalingList4x4, 6 * 
16);
-      memcpy(result.scaling_list_8x8[0], 
pps->pScalingLists->ScalingList8x8[0], 64);
-      memcpy(result.scaling_list_8x8[1], 
pps->pScalingLists->ScalingList8x8[1], 64);
-   } else if (sps->flags.seq_scaling_matrix_present_flag) {
-      memcpy(result.scaling_list_4x4, sps->pScalingLists->ScalingList4x4, 6 * 
16);
-      memcpy(result.scaling_list_8x8[0], 
sps->pScalingLists->ScalingList8x8[0], 64);
-      memcpy(result.scaling_list_8x8[1], 
sps->pScalingLists->ScalingList8x8[1], 64);
-   } else {
-      memset(result.scaling_list_4x4, 0x10, 6 * 16);
-      memset(result.scaling_list_8x8, 0x10, 2 * 64);
-   }
+   StdVideoH264ScalingLists scaling_lists;
+   vk_video_derive_h264_scaling_list(sps, pps, &scaling_lists);
+   memcpy(result.scaling_list_4x4, scaling_lists.ScalingList4x4, 6 * 16);
+   memcpy(result.scaling_list_8x8[0], scaling_lists.ScalingList8x8[0], 64);
+   memcpy(result.scaling_list_8x8[1], scaling_lists.ScalingList8x8[1], 64);
 
    memset(it_ptr, 0, IT_SCALING_TABLE_SIZE);
    memcpy(it_ptr, result.scaling_list_4x4, 6 * 16);
@@ -1308,18 +1301,11 @@ get_uvd_h264_msg(struct radv_video_session *vid, struct 
radv_video_session_param
    result.chroma_qp_index_offset = pps->chroma_qp_index_offset;
    result.second_chroma_qp_index_offset = pps->second_chroma_qp_index_offset;
 
-   if (pps->flags.pic_scaling_matrix_present_flag) {
-      memcpy(result.scaling_list_4x4, pps->pScalingLists->ScalingList4x4, 6 * 
16);
-      memcpy(result.scaling_list_8x8[0], 
pps->pScalingLists->ScalingList8x8[0], 64);
-      memcpy(result.scaling_list_8x8[1], 
pps->pScalingLists->ScalingList8x8[3], 64);
-   } else if (sps->flags.seq_scaling_matrix_present_flag) {
-      memcpy(result.scaling_list_4x4, sps->pScalingLists->ScalingList4x4, 6 * 
16);
-      memcpy(result.scaling_list_8x8[0], 
sps->pScalingLists->ScalingList8x8[0], 64);
-      memcpy(result.scaling_list_8x8[1], 
sps->pScalingLists->ScalingList8x8[3], 64);
-   } else {
-      memset(result.scaling_list_4x4, 0x10, 6 * 16);
-      memset(result.scaling_list_8x8, 0x10, 2 * 64);
-   }
+   StdVideoH264ScalingLists scaling_lists;
+   vk_video_derive_h264_scaling_list(sps, pps, &scaling_lists);
+   memcpy(result.scaling_list_4x4, scaling_lists.ScalingList4x4, 6 * 16);
+   memcpy(result.scaling_list_8x8[0], scaling_lists.ScalingList8x8[0], 64);
+   memcpy(result.scaling_list_8x8[1], scaling_lists.ScalingList8x8[1], 64);
 
    memset(it_ptr, 0, IT_SCALING_TABLE_SIZE);
    memcpy(it_ptr, result.scaling_list_4x4, 6 * 16);

Reply via email to