[FFmpeg-cvslog] avcodec/tiff: parse subsample factors
Michael Niedermayer
git at videolan.org
Sun Apr 27 21:09:28 CEST 2014
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Apr 27 18:44:58 2014 +0200| [1ca21e1b767a3ec77b02eec903a14b6bc658a485] | committer: Michael Niedermayer
avcodec/tiff: parse subsample factors
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1ca21e1b767a3ec77b02eec903a14b6bc658a485
---
libavcodec/tiff.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
index 02d5007..10c053a 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();
More information about the ffmpeg-cvslog
mailing list