jpeg2000: Split codeblock decoding from the main tile decoding

That loop is completely stand-alone.
This commit is contained in:
Luca Barbato 2015-09-11 18:19:39 +02:00
parent db53a2306f
commit 5788623d29

View File

@ -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)
{
int compno, reslevelno, bandno;
int x, y;
uint8_t *line;
Jpeg2000T1Context t1;
int compno, reslevelno, bandno;
/* 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)