diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2015-09-11 18:19:39 +0200 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2015-09-11 18:19:39 +0200 |
commit | 5788623d29c3e806a7879210986110aced758dc2 (patch) | |
tree | 4f5959d946c00cad1a8a51a6c8e0d49cb5e1024a | |
parent | db53a2306f62f05faa67e6f3c60ee55a9b8e4776 (diff) | |
download | ffmpeg-5788623d29c3e806a7879210986110aced758dc2.tar.gz |
jpeg2000: Split codeblock decoding from the main tile decoding
That loop is completely stand-alone.
-rw-r--r-- | libavcodec/jpeg2000dec.c | 19 |
1 files changed, 14 insertions, 5 deletions
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) |