[FFmpeg-devel] [PATCH v2 1/2] libavcodec/jpeg2000dec.c: Support for CRG marker
gautamramk at gmail.com
gautamramk at gmail.com
Wed Apr 22 21:34:39 EEST 2020
From: Gautam Ramakrishnan <gautamramk at gmail.com>
This patch adds support to skip the CRG marker.
The CRG marker, is an informational marker.
Allows samples such as p0_03.j2k to be decoded.
---
libavcodec/jpeg2000dec.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index af6dcee228..5a7d9e7882 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -798,6 +798,15 @@ static int get_sot(Jpeg2000DecoderContext *s, int n)
return 0;
}
+static int read_crg(Jpeg2000DecoderContext *s, int n)
+{
+ if (s->ncomponents*4 != n - 2) {
+ av_log(s->avctx, AV_LOG_ERROR, "Invalid CRG marker.\n");
+ return AVERROR_INVALIDDATA;
+ }
+ bytestream2_skip(&s->g, n - 2);
+ return 0;
+}
/* Tile-part lengths: see ISO 15444-1:2002, section A.7.1
* Used to know the number of tile parts and lengths.
* There may be multiple TLMs in the header.
@@ -2061,6 +2070,9 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s)
// the comment is ignored
bytestream2_skip(&s->g, len - 2);
break;
+ case JPEG2000_CRG:
+ ret = read_crg(s, len);
+ break;
case JPEG2000_TLM:
// Tile-part lengths
ret = get_tlm(s, len);
--
2.17.1
More information about the ffmpeg-devel
mailing list