This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit a7ebeb2bec722c1d6686d2742980c075a72c1db8
Author:     Lynne <[email protected]>
AuthorDate: Tue Aug 18 13:55:47 2026 +0900
Commit:     Lynne <[email protected]>
CommitDate: Tue Aug 18 13:58:14 2026 +0900

    vulkan/ffv1: decode the extra Bayer gm bit on pre-4.8 streams
    
    Mirror of the RGB fix: the hardcoded gm width matched 4.8+ only,
    garbling valid 4.3..4.7 Bayer streams. FFmpeg's encoders always
    stamp Bayer with 4.10, so only external streams were affected.
---
 libavcodec/vulkan/ffv1_dec.comp.glsl | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/libavcodec/vulkan/ffv1_dec.comp.glsl 
b/libavcodec/vulkan/ffv1_dec.comp.glsl
index 9ad2ec2442..8e52ac2aeb 100644
--- a/libavcodec/vulkan/ffv1_dec.comp.glsl
+++ b/libavcodec/vulkan/ffv1_dec.comp.glsl
@@ -363,10 +363,13 @@ void decode_slice(in SliceContext sc, uint slice_idx)
     sp.x >>= 1;
     sp.y = int(gl_WorkGroupID.y)*rgb_linecache;
     /* c_bits = bps + 1 (the +1 is for is_rgb). For PCM mode, all planes use
-     * raw bps. For non-PCM, gm uses bps; gd/b-gm/r-gm use bps+1. */
-    if (sc.slice_coding_mode == 0)
+     * raw bps. For non-PCM, gm uses bps (bps+1 before 4.8, which coded an
+     * extra bit); gd/b-gm/r-gm use bps+1. */
+    if (sc.slice_coding_mode == 0) {
         bits = u16vec4(c_bits - 1, c_bits, c_bits, c_bits);
-    else
+        if (version == 4 && micro_version < 8)
+            bits[0] = uint16_t(c_bits);
+    } else
         bits = u16vec4(c_bits - 1, c_bits - 1, c_bits - 1, c_bits - 1);
 #elif defined(RGB)
     sp.y = int(gl_WorkGroupID.y)*rgb_linecache;

-- 
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