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]

Reply via email to