aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2015-09-11 18:19:39 +0200
committerLuca Barbato <lu_zero@gentoo.org>2015-09-11 18:19:39 +0200
commit5788623d29c3e806a7879210986110aced758dc2 (patch)
tree4f5959d946c00cad1a8a51a6c8e0d49cb5e1024a
parentdb53a2306f62f05faa67e6f3c60ee55a9b8e4776 (diff)
downloadffmpeg-5788623d29c3e806a7879210986110aced758dc2.tar.gz
jpeg2000: Split codeblock decoding from the main tile decoding
That loop is completely stand-alone.
-rw-r--r--libavcodec/jpeg2000dec.c19
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)