avcodec/tiff: parse subsample factors

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/108/head
Michael Niedermayer 11 years ago
parent 4930e529bf
commit 1ca21e1b76
  1. 11
      libavcodec/tiff.c

@ -55,6 +55,7 @@ typedef struct TiffContext {
enum TiffCompr compr;
enum TiffPhotometric photometric;
int planar;
int subsampling[2];
int fax_opts;
int predictor;
int fill_order;
@ -804,6 +805,14 @@ static int tiff_decode_tag(TiffContext *s, AVFrame *frame)
case TIFF_PLANAR:
s->planar = value == 2;
break;
case TIFF_YCBCR_SUBSAMPLING:
if (count != 2) {
av_log(s->avctx, AV_LOG_ERROR, "subsample count invalid\n");
return AVERROR_INVALIDDATA;
}
for (i = 0; i < count; i++)
s->subsampling[i] = ff_tget(&s->gb, type, s->le);
break;
case TIFF_T4OPTIONS:
if (s->compr == TIFF_G3)
s->fax_opts = value;
@ -1136,6 +1145,8 @@ static av_cold int tiff_init(AVCodecContext *avctx)
s->width = 0;
s->height = 0;
s->subsampling[0] =
s->subsampling[1] = 1;
s->avctx = avctx;
ff_lzw_decode_open(&s->lzw);
ff_ccitt_unpack_init();

Loading…
Cancel
Save