From 45f7e076e6bee4e9d52689c19c80cdb6fe6d49fd Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Sun, 4 Jan 2026 23:50:53 +0300 Subject: [PATCH] lavc/j2kdec: Do not ignore colour association for packed formats Fixes ticket #9468. Signed-off-by: Carl Eugen Hoyos --- libavcodec/jpeg2000dec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index 3dce0c1909..bf58e6cdeb 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -2317,9 +2317,12 @@ static inline int tile_codeblocks(const Jpeg2000DecoderContext *s, Jpeg2000Tile int h = tile->comp[compno].coord[1][1] - \ ff_jpeg2000_ceildiv(s->image_offset_y, s->cdy[compno]); \ int plane = 0; \ + ptrdiff_t dstoffset = 0; \ \ if (planar) \ plane = s->cdef[compno] ? s->cdef[compno]-1 : (s->ncomponents-1); \ + else \ + dstoffset = s->cdef[compno] ? s->cdef[compno] - 1 : compno; \ \ y = tile->comp[compno].coord[1][0] - \ ff_jpeg2000_ceildiv(s->image_offset_y, s->cdy[compno]); \ @@ -2329,7 +2332,7 @@ static inline int tile_codeblocks(const Jpeg2000DecoderContext *s, Jpeg2000Tile \ x = tile->comp[compno].coord[0][0] - \ ff_jpeg2000_ceildiv(s->image_offset_x, s->cdx[compno]); \ - dst = line + x * pixelsize + compno*!planar; \ + dst = line + x * pixelsize + dstoffset; \ \ if (codsty->transform == FF_DWT97) { \ for (; x < w; x++) { \