This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit d34492955221cc2633a9fe26145e099a702b9d90 Author: Hans-Kristian Arntzen <[email protected]> AuthorDate: Tue Jul 14 13:44:42 2026 +0200 Commit: Lynne <[email protected]> CommitDate: Thu Jul 16 07:19:35 2026 +0000 avcodec/hevc: Ensure that private HW data is freed early for pictures. Lynne suggested that HEVC would have a similar bug. I couldn't reproduce a crash or VVL error in this area. Comment copied from the h264 fix: Vulkan video decode holds a reference to a VkSemaphore that is waited on in ff_vk_decode_free_frame. The bug manifests when a H264 stream changes resolution (or similar) where the stream needs to be reset in-flight. In this case, the wait_semaphores call ends up waiting on a destroyed semaphore, leading to segfaults in drivers. FFVulkanDecodePicture does not hold an owning reference to the semaphore, so destruction order matters in this case. Vulkan validation flags the error as waiting on an invalid semaphore. --- libavcodec/hevc/refs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/hevc/refs.c b/libavcodec/hevc/refs.c index 005f416bf3..2df3a2ad56 100644 --- a/libavcodec/hevc/refs.c +++ b/libavcodec/hevc/refs.c @@ -38,6 +38,8 @@ void ff_hevc_unref_frame(HEVCFrame *frame, int flags) if (!(frame->flags & ~HEVC_FRAME_FLAG_CORRUPT)) frame->flags = 0; if (!frame->flags) { + av_refstruct_unref(&frame->hwaccel_picture_private); + ff_progress_frame_unref(&frame->tf); av_frame_unref(frame->frame_grain); frame->needs_fg = 0; @@ -49,8 +51,6 @@ void ff_hevc_unref_frame(HEVCFrame *frame, int flags) frame->nb_rpl_elems = 0; av_refstruct_unref(&frame->rpl_tab); frame->refPicList = NULL; - - av_refstruct_unref(&frame->hwaccel_picture_private); } } _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
