summaryrefslogtreecommitdiff
path: root/libavcodec/jpeg2000dec.c
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2015-09-12 13:25:38 +0200
committerHendrik Leppkes <h.leppkes@gmail.com>2015-09-12 13:25:38 +0200
commit84d04a0dfa05d170d54585aec8d1ad19cca12410 (patch)
tree14fadc9b4262303da3dca7202e7c7b4744e3cf70 /libavcodec/jpeg2000dec.c
parent6e611a18390690375a60392061fb6177ef24c7a8 (diff)
parent5788623d29c3e806a7879210986110aced758dc2 (diff)
Merge commit '5788623d29c3e806a7879210986110aced758dc2'
* commit '5788623d29c3e806a7879210986110aced758dc2': jpeg2000: Split codeblock decoding from the main tile decoding Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Diffstat (limited to 'libavcodec/jpeg2000dec.c')
-rw-r--r--libavcodec/jpeg2000dec.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index bb2babb815..68c0a17866 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -1616,18 +1616,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)
{
- const AVPixFmtDescriptor *pixdesc = av_pix_fmt_desc_get(s->avctx->pix_fmt);
- int compno, reslevelno, bandno;
- int x, y;
- int planar = !!(pixdesc->flags & AV_PIX_FMT_FLAG_PLANAR);
- int pixelsize = planar ? 1 : pixdesc->nb_components;
-
- uint8_t *line;
Jpeg2000T1Context t1;
+ int compno, reslevelno, bandno;
+
/* Loop on tile components */
for (compno = 0; compno < s->ncomponents; compno++) {
Jpeg2000Component *comp = tile->comp + compno;
@@ -1681,6 +1675,21 @@ 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)
+{
+ const AVPixFmtDescriptor *pixdesc = av_pix_fmt_desc_get(s->avctx->pix_fmt);
+ int planar = !!(pixdesc->flags & AV_PIX_FMT_FLAG_PLANAR);
+ int pixelsize = planar ? 1 : pixdesc->nb_components;
+
+ int compno;
+ int x, y;
+
+ uint8_t *line;
+
+ tile_codeblocks(s, tile);
/* inverse MCT transformation */
if (tile->codsty[0].mct)