On Mon, Oct 21, 2024 at 1:41 AM Michael Niedermayer <mich...@niedermayer.cc> wrote: > On Thu, Oct 17, 2024 at 01:00:12PM +0200, Ramiro Polla wrote: > > Consider APPx fields that are too short to contain an id field (32-bit) > > as stubs, and silently ignore them. > > > > This has been seen in the MJPEG output from some webcams (such as the > > Logitech C270 and C920) and the JPEG images embedded in DNG images > > from the Pentax K-1 camera. > > --- > > libavcodec/mjpegdec.c | 20 +++++++++++--------- > > 1 file changed, 11 insertions(+), 9 deletions(-) > > > > diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c > > index a775fdca30..3cd9904595 100644 > > --- a/libavcodec/mjpegdec.c > > +++ b/libavcodec/mjpegdec.c > > @@ -1856,20 +1856,22 @@ static int mjpeg_decode_app(MJpegDecodeContext *s) > > int len, id, i; > > > > len = get_bits(&s->gb, 16); > > - 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 (len < 2) > > + return AVERROR_INVALIDDATA; > > + len -= 2; > > + > > + if (len < 4) { > > + /* Silently ignore APPx stubs */ > > + if (show_bits(&s->gb, 8 * len) == 0) > > + goto out; > > + return AVERROR_INVALIDDATA; > > this silently errors on the ones it doesnt ignore, it was more informative > before
It still prints the error message after returning AVERROR_INVALIDDATA from mjpeg_decode_app(): [mjpeg @ 0x7fc4a0002dc0] unable to decode APP fields: Invalid data found when processing input I could also add another verbose log before "goto out" to not-so-silently ignore the APPx stubs if you want. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".