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 */