summaryrefslogtreecommitdiff
path: root/libavcodec/mjpegdec.c
diff options
context:
space:
mode:
authorNick Renieris <velocityra@gmail.com>2019-08-29 16:10:51 +0300
committerPaul B Mahol <onemda@gmail.com>2019-09-02 09:26:52 +0200
commitfcf0ebc4a95e837a8f104a9897d640912b034e39 (patch)
tree54a7ffc9bdbbb26b28b3e7c92798ee2c7c2710da /libavcodec/mjpegdec.c
parentc44aa7f1761bc836f74727e70dc16409e8ccbb9c (diff)
lavc/mjpegdec: Skip unknown APPx marker on bayer images
Samples: - Embedded JPEG images in the DNG images here: https://www.photographyblog.com/previews/pentax_k1_photos Signed-off-by: Nick Renieris <velocityra@gmail.com>
Diffstat (limited to 'libavcodec/mjpegdec.c')
-rw-r--r--libavcodec/mjpegdec.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 0a920a7144..1f2fabe2df 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -1807,8 +1807,15 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
int len, id, i;
len = get_bits(&s->gb, 16);
- if (len < 6)
- return AVERROR_INVALIDDATA;
+ if (len < 6) {
+ if (s->bayer) {
+ // Pentax K-1 (digital camera) JPEG images embedded in DNG images contain unknown APP0 markers
+ av_log(s->avctx, AV_LOG_WARNING, "skipping APPx (len=%"PRId32") for bayer-encoded image\n", len);
+ skip_bits(&s->gb, len);
+ return 0;
+ } else
+ return AVERROR_INVALIDDATA;
+ }
if (8 * len > get_bits_left(&s->gb))
return AVERROR_INVALIDDATA;