From 3cbe3418b2b7b60299e54321b78922a3c3a9527b Mon Sep 17 00:00:00 2001 From: Lynne Date: Tue, 27 May 2025 06:38:47 +0900 Subject: [PATCH] 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. --- 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,