summaryrefslogtreecommitdiff
path: root/libavcodec/jpeg2000dec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-07-01 10:01:31 +0200
committerLuca Barbato <lu_zero@gentoo.org>2013-07-02 20:05:47 +0200
commitd57c737ac30cf079a342fa649fd4888c2d059dd9 (patch)
tree996173452a0d26c4fc01f0e9bde749e56ee16ddd /libavcodec/jpeg2000dec.c
parent09d5929f3721613fbb9ac9e74265c89c70df2ce0 (diff)
jpeg2000: Simplify jpeg2000_decode_packets()
Raise PATCHWELCOME error in case of non-implemented progression order. Signed-off-by: Luca Barbato <lu_zero@gentoo.org> Signed-off-by: Nicolas Bertrand <nicoinattendu@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diffstat (limited to 'libavcodec/jpeg2000dec.c')
-rw-r--r--libavcodec/jpeg2000dec.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 172314f40a..6e7808304e 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -722,13 +722,12 @@ static int jpeg2000_decode_packet(Jpeg2000DecoderContext *s,
static int jpeg2000_decode_packets(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile)
{
- int layno, reslevelno, compno, precno, ok_reslevel, ret;
- uint8_t prog_order = tile->codsty[0].prog_order;
- uint16_t x;
- uint16_t y;
+ int ret = 0;
+ int layno, reslevelno, compno, precno, ok_reslevel;
+ int x, y;
s->bit_index = 8;
- switch (prog_order) {
+ switch (tile->codsty[0].prog_order) {
case JPEG2000_PGOD_LRCP:
for (layno = 0; layno < tile->codsty[0].nlayers; layno++) {
ok_reslevel = 1;
@@ -802,6 +801,21 @@ static int jpeg2000_decode_packets(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile
}
break;
+ case JPEG2000_PGOD_RLCP:
+ avpriv_request_sample(s->avctx, "Progression order RLCP");
+ ret = AVERROR_PATCHWELCOME;
+ break;
+
+ case JPEG2000_PGOD_RPCL:
+ avpriv_request_sample(s->avctx, "Progression order RPCL");
+ ret = AVERROR_PATCHWELCOME;
+ break;
+
+ case JPEG2000_PGOD_PCRL:
+ avpriv_request_sample(s->avctx, "Progression order PCRL");
+ ret = AVERROR_PATCHWELCOME;
+ break;
+
default:
break;
}
@@ -809,7 +823,7 @@ static int jpeg2000_decode_packets(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile
/* EOC marker reached */
bytestream2_skip(&s->g, 2);
- return 0;
+ return ret;
}
/* TIER-1 routines */