From 5788623d29c3e806a7879210986110aced758dc2 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Fri, 11 Sep 2015 18:19:39 +0200 Subject: jpeg2000: Split codeblock decoding from the main tile decoding That loop is completely stand-alone. --- libavcodec/jpeg2000dec.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'libavcodec/jpeg2000dec.c') diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index f5d5dafff4..2aea844a8b 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -1060,14 +1060,12 @@ static inline void mct_decode(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile) s->dsp.mct_decode[tile->codsty[0].transform](src[0], src[1], src[2], csize); } -static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, - AVFrame *picture) +static void tile_codeblocks(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile) { + Jpeg2000T1Context t1; + int compno, reslevelno, bandno; - int x, y; - uint8_t *line; - Jpeg2000T1Context t1; /* Loop on tile components */ for (compno = 0; compno < s->ncomponents; compno++) { @@ -1116,6 +1114,17 @@ static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, /* inverse DWT */ ff_dwt_decode(&comp->dwt, codsty->transform == FF_DWT97 ? (void*)comp->f_data : (void*)comp->i_data); } /*end comp */ +} + +static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, + AVFrame *picture) +{ + int compno; + int x, y; + + uint8_t *line; + + tile_codeblocks(s, tile); /* inverse MCT transformation */ if (tile->codsty[0].mct) -- cgit v1.2.3