mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
vulkan/video: NULL check codec-specific chain
It seems applications are allowed to do no-op updates by not passing any
codec-specific extension structures.
Cc: mesa-stable
Reviewed-by: David Rosca <david.rosca@amd.com>
(cherry picked from commit 4d22427079)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
This commit is contained in:
parent
38e258d5d4
commit
dafde3434a
2 changed files with 13 additions and 6 deletions
|
|
@ -984,7 +984,7 @@
|
|||
"description": "vulkan/video: NULL check codec-specific chain",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -796,23 +796,30 @@ vk_video_session_parameters_update(struct vk_video_session_parameters *params,
|
|||
case VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR: {
|
||||
const struct VkVideoDecodeH264SessionParametersAddInfoKHR *h264_add =
|
||||
vk_find_struct_const(update->pNext, VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR);
|
||||
return update_h264_dec_session_parameters(params, h264_add);
|
||||
if (h264_add)
|
||||
return update_h264_dec_session_parameters(params, h264_add);
|
||||
break;
|
||||
}
|
||||
case VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR: {
|
||||
const struct VkVideoDecodeH265SessionParametersAddInfoKHR *h265_add =
|
||||
vk_find_struct_const(update->pNext, VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR);
|
||||
|
||||
return update_h265_session_parameters(params, h265_add);
|
||||
if (h265_add)
|
||||
return update_h265_session_parameters(params, h265_add);
|
||||
break;
|
||||
}
|
||||
case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR: {
|
||||
const struct VkVideoEncodeH264SessionParametersAddInfoKHR *h264_add =
|
||||
vk_find_struct_const(update->pNext, VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR);
|
||||
return update_h264_enc_session_parameters(params, h264_add);
|
||||
if (h264_add)
|
||||
return update_h264_enc_session_parameters(params, h264_add);
|
||||
break;
|
||||
}
|
||||
case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR: {
|
||||
const struct VkVideoEncodeH265SessionParametersAddInfoKHR *h265_add =
|
||||
vk_find_struct_const(update->pNext, VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR);
|
||||
return update_h265_enc_session_parameters(params, h265_add);
|
||||
if (h265_add)
|
||||
return update_h265_enc_session_parameters(params, h265_add);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
UNREACHABLE("Unknown codec\n");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue