[FFmpeg-devel] [PATCH v10 12/13] lavc/mjpegdec: Skip useless APPx marker on bayer images
velocityra at gmail.com
velocityra at gmail.com
Wed Aug 7 18:27:22 EEST 2019
From: Nick Renieris <velocityra at gmail.com>
Samples:
- Embedded JPEG images in the DNG images here:
https://www.photographyblog.com/previews/pentax_k1_photos
Signed-off-by: Nick Renieris <velocityra at gmail.com>
---
libavcodec/mjpegdec.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 94cf73549d..b3d6279853 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -1810,8 +1810,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 useless 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;
--
2.21.0.windows.1
More information about the ffmpeg-devel
mailing list