ffmpeg | branch: master | Lynne <d...@lynne.ee> | Tue May 27 06:38:47 2025 
+0900| [3cbe3418b2b7b60299e54321b78922a3c3a9527b] | committer: Lynne

vulkan_ffv1: fix golomb coding for non-RGB streams

The run_index is reset on each plane, unlike with RGB, where
its reset once per slice.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3cbe3418b2b7b60299e54321b78922a3c3a9527b
---

 libavcodec/vulkan/ffv1_dec.comp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/vulkan/ffv1_dec.comp b/libavcodec/vulkan/ffv1_dec.comp
index f78a86b059..eb795dcba4 100644
--- a/libavcodec/vulkan/ffv1_dec.comp
+++ b/libavcodec/vulkan/ffv1_dec.comp
@@ -226,7 +226,6 @@ void writeout_rgb(in SliceContext sc, ivec2 sp, int w, int 
y, bool apply_rct)
 
 void decode_slice(inout SliceContext sc, const uint slice_idx)
 {
-    int run_index = 0;
     int w = sc.slice_dim.x;
     ivec2 sp = sc.slice_pos;
 
@@ -274,11 +273,13 @@ void decode_slice(inout SliceContext sc, const uint 
slice_idx)
             if (p > 0 && p < 3)
                 h >>= chroma_shift.y;
 
+            int run_index = 0;
             for (int y = 0; y < h; y++)
                 decode_line(sc, sp, w, y, p, bits,
                             slice_state_off[p], quant_table_idx[p], run_index);
         }
 #else
+        int run_index = 0;
         for (int y = 0; y < sc.slice_dim.y; y++) {
             for (int p = 0; p < color_planes; p++)
                 decode_line(sc, sp, w, y, p, bits,

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to