tiff: support inverted fill_order for packbits compression

Fixes #1995.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
Paul B Mahol 2013-05-28 17:20:29 +00:00
parent 30d7dcce4c
commit 7984ed87c1

View File

@ -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);