[FFmpeg-cvslog] vulkan_ffv1: fix golomb coding for non-RGB streams
Lynne
git at videolan.org
Tue May 27 00:40:57 EEST 2025
ffmpeg | branch: master | Lynne <dev at 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,
More information about the ffmpeg-cvslog
mailing list