Commit ec9f0442 authored by Jerome Martinez's avatar Jerome Martinez Committed by Luca Barbato

ffv1: Error out on unsupported format

Transparency is supported only by YUV and within specific bit depths.
parent 105998fb
...@@ -597,6 +597,12 @@ static int read_header(FFV1Context *f) ...@@ -597,6 +597,12 @@ static int read_header(FFV1Context *f)
} }
if (f->colorspace == 0) { 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->transparency && !f->chroma_planes) {
if (f->avctx->bits_per_raw_sample <= 8) if (f->avctx->bits_per_raw_sample <= 8)
f->avctx->pix_fmt = AV_PIX_FMT_GRAY8; f->avctx->pix_fmt = AV_PIX_FMT_GRAY8;
...@@ -695,6 +701,11 @@ static int read_header(FFV1Context *f) ...@@ -695,6 +701,11 @@ static int read_header(FFV1Context *f)
"chroma subsampling not supported in this colorspace\n"); "chroma subsampling not supported in this colorspace\n");
return AVERROR(ENOSYS); 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) { switch (f->avctx->bits_per_raw_sample) {
case 0: case 0:
case 8: case 8:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment