From d7fa6a388b894637c5d4d2826aa7cac0fc7f7c4b Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 14 Mar 2025 22:33:46 +0100 Subject: [PATCH] avcodec/ffv1: fix remap without chroma planes Sponsored-by: Sovereign Tech Fund Signed-off-by: Michael Niedermayer --- libavcodec/ffv1dec.c | 3 +-- libavcodec/ffv1enc.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c index d01c153cd6..d117b0fd44 100644 --- a/libavcodec/ffv1dec.c +++ b/libavcodec/ffv1dec.c @@ -254,10 +254,9 @@ static void slice_set_damaged(FFV1Context *f, FFV1SliceContext *sc) static int decode_remap(FFV1Context *f, FFV1SliceContext *sc) { - int transparency = f->transparency; int flip = sc->remap == 2 ? 0x7FFF : 0; - for (int p= 0; p<3 + transparency; p++) { + for (int p= 0; p < 1 + 2*f->chroma_planes + f->transparency; p++) { int j = 0; int lu = 0; uint8_t state[2][32]; diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c index 3db4a18a09..c7cf75ef4f 100644 --- a/libavcodec/ffv1enc.c +++ b/libavcodec/ffv1enc.c @@ -1150,10 +1150,9 @@ static void choose_rct_params(const FFV1Context *f, FFV1SliceContext *sc, static void encode_remap(FFV1Context *f, FFV1SliceContext *sc) { - int transparency = f->transparency; int flip = sc->remap == 2 ? 0x7FFF : 0; - for (int p= 0; p<3 + transparency; p++) { + for (int p= 0; p < 1 + 2*f->chroma_planes + f->transparency; p++) { int j = 0; int lu = 0; uint8_t state[2][32];