[FFmpeg-devel] [PATCH] avcodec/tiff: do not abort decoding if strips are available

Peter Ross pross at xvid.org
Sat Oct 3 13:02:47 EEST 2020


On Fri, Oct 02, 2020 at 12:18:49PM +0200, Paul B Mahol wrote:
> Even if such files are invalid, they can be decoded just fine.
> Also stored tiles may have bigger dimensions than displayed ones,
> so do not abort decoding in such cases.
> 
> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> ---
>  libavcodec/tiff.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
> index 359d613bb3..9bf08b1900 100644
> --- a/libavcodec/tiff.c
> +++ b/libavcodec/tiff.c
> @@ -929,8 +929,8 @@ static int dng_decode_jpeg(AVCodecContext *avctx, AVFrame *frame,
>          s->avctx_mjpeg->height == h / 2 &&
>          s->avctx_mjpeg->pix_fmt == AV_PIX_FMT_GRAY16LE) {
>          is_single_comp = 1;
> -    } else if (s->avctx_mjpeg->width  == w &&
> -               s->avctx_mjpeg->height == h &&
> +    } else if (s->avctx_mjpeg->width  >= w &&
> +               s->avctx_mjpeg->height >= h &&
>                 s->avctx_mjpeg->pix_fmt == (is_u16 ? AV_PIX_FMT_GRAY16 : AV_PIX_FMT_GRAY8)
>                ) {
>          is_single_comp = 0;
> @@ -1923,8 +1923,7 @@ again:
>      has_strip_bits = s->strippos || s->strips || s->stripoff || s->rps || s->sot || s->sstype || s->stripsize || s->stripsizesoff;
>  
>      if (has_tile_bits && has_strip_bits) {
> -        av_log(avctx, AV_LOG_ERROR, "Tiled TIFF is not allowed to strip\n");
> -        return AVERROR_INVALIDDATA;
> +        av_log(avctx, AV_LOG_WARNING, "Tiled TIFF is not allowed to strip\n");
>      }
>  
>      /* now we have the data and may start decoding */

looks good

-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20201003/b5b09ae8/attachment.sig>


More information about the ffmpeg-devel mailing list