diff options
author | Paul B Mahol <onemda@gmail.com> | 2013-05-28 17:20:29 +0000 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2013-05-29 13:43:03 +0000 |
commit | 7984ed87c13df89030c85a531047e6514d9fcdc6 (patch) | |
tree | b9673bbefa046741482759da7986c85776644b5f /libavcodec/tiff.c | |
parent | 30d7dcce4c3f2af3c99d2ac05a1ecb6caba076fe (diff) | |
download | ffmpeg-7984ed87c13df89030c85a531047e6514d9fcdc6.tar.gz |
tiff: support inverted fill_order for packbits compression
Fixes #1995.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavcodec/tiff.c')
-rw-r--r-- | libavcodec/tiff.c | 7 |
1 files changed, 6 insertions, 1 deletions
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); |