mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
libavcodec/jpeg2000dec.c: fix error in cod marker
This patch fixes an error where the COC marker overrides all data of the SPcod field of the COD marker. It must override only one bit of SPcod field. This now allows p0_08.j2k to be decoded correctly (mentioned in #4679). Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
12a5e0409d
commit
e8344f21e1
@ -566,6 +566,7 @@ static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c,
|
||||
uint8_t *properties)
|
||||
{
|
||||
int compno, ret;
|
||||
uint8_t has_eph;
|
||||
|
||||
if (bytestream2_get_bytes_left(&s->g) < 2) {
|
||||
av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for COC\n");
|
||||
@ -582,7 +583,9 @@ static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c,
|
||||
}
|
||||
|
||||
c += compno;
|
||||
has_eph = c->csty & JPEG2000_CSTY_EPH;
|
||||
c->csty = bytestream2_get_byteu(&s->g);
|
||||
c->csty |= has_eph; //do not override eph present bits from COD
|
||||
|
||||
if ((ret = get_cox(s, c)) < 0)
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user