Browse Source

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>
tags/n2.0
Michael Niedermayer Luca Barbato 12 years ago
parent
commit
d57c737ac3
1 changed files with 20 additions and 6 deletions
  1. +20
    -6
      libavcodec/jpeg2000dec.c

+ 20
- 6
libavcodec/jpeg2000dec.c View File

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


Loading…
Cancel
Save