diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2013-09-30 00:11:12 -0400 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2014-04-12 14:49:08 -0400 |
commit | fdbe18b7b0545f9b5923d25a5433e4f735719ecc (patch) | |
tree | 1988f380ac704bfd20d331141d281a2e067d447c | |
parent | 0a467a9b594dd67aa96bad687d05f8845b009f18 (diff) | |
download | ffmpeg-fdbe18b7b0545f9b5923d25a5433e4f735719ecc.tar.gz |
tiffdec: use a single strip if RowsPerStrip is 0
The spec does not specify that 0 is an error condition, and there
are samples which use 0 when the whole image is in one strip.
-rw-r--r-- | libavcodec/tiff.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 0cfa4c4972..e7f1866a3b 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -418,14 +418,9 @@ static int tiff_decode_tag(TiffContext *s) } break; case TIFF_ROWSPERSTRIP: - if (type == TIFF_LONG && value == UINT_MAX) - value = s->avctx->height; - if (value < 1) { - av_log(s->avctx, AV_LOG_ERROR, - "Incorrect value of rows per strip\n"); - return AVERROR_INVALIDDATA; - } - s->rps = value; + if (!value || (type == TIFF_LONG && value == UINT_MAX)) + value = s->height; + s->rps = FFMIN(value, s->height); break; case TIFF_STRIP_OFFS: if (count == 1) { |