This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit e3654ccab4e19ffbbaf1a73b534ad44bdfcaac72 Author: Lynne <[email protected]> AuthorDate: Wed Sep 9 01:09:50 2026 +0900 Commit: Lynne <[email protected]> CommitDate: Sun Sep 20 17:19:22 2026 +0900 vulkan/ffv1: initialize the version 4 slice header fields on older streams slice_reset_contexts, remap and remap_count were only set on version 4 streams. The slice context buffer is pooled and never cleared, so on older streams the reset shader read stale memory as the reset flag and wiped the range coder state carried over from the previous frame. Non-keyframes of pre-version-4 streams intermittently decoded to garbage, with the slice CRCs still passing. --- libavcodec/vulkan/ffv1_dec_setup.comp.glsl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/vulkan/ffv1_dec_setup.comp.glsl b/libavcodec/vulkan/ffv1_dec_setup.comp.glsl index f7ccf461fa..ba9fc3fb05 100644 --- a/libavcodec/vulkan/ffv1_dec_setup.comp.glsl +++ b/libavcodec/vulkan/ffv1_dec_setup.comp.glsl @@ -183,6 +183,12 @@ bool decode_slice_header(uint slice_idx, inout SliceContext sc) sc.slice_rct_coef = ivec2(1, 1); sc.slice_coding_mode = int(0); + /* Only coded from version 4 on, but the slice context buffer is never + * cleared, so they must be reset here */ + sc.slice_reset_contexts = false; + sc.remap = 0; + sc.remap_count = i32vec4(0); + for (uint i = 0; i < codec_planes; i++) { uint idx = hdr_sym[4 + i]; if (idx >= quant_table_count) -- To stop receiving notification emails like this one, please contact [email protected]. _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
