[FFmpeg-cvslog] libavcodec/jpeg2000dec.c: fix error in cod marker
Gautam Ramakrishnan
git at videolan.org
Sat Apr 11 19:24:18 EEST 2020
ffmpeg | branch: master | Gautam Ramakrishnan <gautamramk at gmail.com> | Sat Apr 11 12:28:08 2020 +0530| [e8344f21e16b7043411830cea99304169127dacf] | committer: Michael Niedermayer
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 at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e8344f21e16b7043411830cea99304169127dacf
---
libavcodec/jpeg2000dec.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 9684e57b34..7196cba6b4 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -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;
More information about the ffmpeg-cvslog
mailing list