From 1ca21e1b767a3ec77b02eec903a14b6bc658a485 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 27 Apr 2014 18:44:58 +0200 Subject: [PATCH] avcodec/tiff: parse subsample factors Signed-off-by: Michael Niedermayer --- libavcodec/tiff.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 02d50077ab..10c053a8fa 100644 --- a/libavcodec/tiff.c +++ b/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();