aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJerome Martinez <jerome@mediaarea.net>2016-06-16 16:33:55 +0200
committerLuca Barbato <lu_zero@gentoo.org>2016-06-18 12:46:43 +0200
commitec9f04423b82afa323e90f5b2c677be74302c1fd (patch)
tree50528a0d33e07357cbb401b5d7168c257efa6726
parent105998fb5ca3c343f5c8cb39ce3197f87a5e4d36 (diff)
downloadffmpeg-ec9f04423b82afa323e90f5b2c677be74302c1fd.tar.gz
ffv1: Error out on unsupported format
Transparency is supported only by YUV and within specific bit depths.
-rw-r--r--libavcodec/ffv1dec.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index 467fd0dede..de3a019557 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -597,6 +597,12 @@ static int read_header(FFV1Context *f)
}
if (f->colorspace == 0) {
+ if (f->transparency && f->avctx->bits_per_raw_sample > 8) {
+ av_log(f->avctx, AV_LOG_ERROR,
+ "Transparency not supported for bit depth %d\n",
+ f->avctx->bits_per_raw_sample);
+ return AVERROR(ENOSYS);
+ }
if (!f->transparency && !f->chroma_planes) {
if (f->avctx->bits_per_raw_sample <= 8)
f->avctx->pix_fmt = AV_PIX_FMT_GRAY8;
@@ -695,6 +701,11 @@ static int read_header(FFV1Context *f)
"chroma subsampling not supported in this colorspace\n");
return AVERROR(ENOSYS);
}
+ if (f->transparency) {
+ av_log(f->avctx, AV_LOG_ERROR,
+ "Transparency not supported in this colorspace\n");
+ return AVERROR(ENOSYS);
+ }
switch (f->avctx->bits_per_raw_sample) {
case 0:
case 8: