From 7984ed87c13df89030c85a531047e6514d9fcdc6 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Tue, 28 May 2013 17:20:29 +0000 Subject: tiff: support inverted fill_order for packbits compression Fixes #1995. Signed-off-by: Paul B Mahol --- libavcodec/tiff.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 839209b736..42cead7e34 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -549,7 +549,7 @@ static int tiff_unpack_strip(TiffContext *s, uint8_t *dst, int stride, av_log(s->avctx, AV_LOG_ERROR, "Read went out of bounds\n"); return AVERROR_INVALIDDATA; } - code = (int8_t) * src++; + code = s->fill_order ? (int8_t) ff_reverse[*src++]: (int8_t) *src++; if (code >= 0) { code++; if (pixels + code > width) { @@ -578,6 +578,11 @@ static int tiff_unpack_strip(TiffContext *s, uint8_t *dst, int stride, pixels += code; } } + if (s->fill_order) { + int i; + for (i = 0; i < width; i++) + dst[i] = ff_reverse[dst[i]]; + } break; case TIFF_LZW: pixels = ff_lzw_decode(s->lzw, dst, width); -- cgit v1.2.3