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

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Some people wanted to paint the bikeshed green, some blue and some pink.
People argued and fought, when they finally agreed, only rust was left.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
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".

Reply via email to