radv/video: copy from correct H264 scaling lists
authorBenjamin Cheng <ben@bcheng.me>
Mon, 31 Jul 2023 22:46:22 +0000 (18:46 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 8 Aug 2023 02:48:49 +0000 (02:48 +0000)
Vulkan defines the scaling lists according to the H264 ITU spec, which
only defines ScalingList8x8[0] and ScalingList8x8[1] for
non-444 formats. Since RADV only supports 420, just directly use those.

Reviewed-by: Lynne <dev@lynne.ee>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24413>

src/amd/vulkan/radv_video.c

index f4b36c5..1ab0465 100644 (file)
@@ -823,11 +823,11 @@ get_h264_msg(struct radv_video_session *vid, struct radv_video_session_params *p
    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);
+      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[3], 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);