aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-08-15 13:03:32 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-08-15 13:03:53 +0200
commitc387c45e8301bc49d5b233e890839cdc0f8b3752 (patch)
tree4c31f122c968aa78340753c2ae626161284fafc2 /libavcodec
parent8ec618826302c2c6661453b515d4974eb3178a96 (diff)
downloadffmpeg-c387c45e8301bc49d5b233e890839cdc0f8b3752.tar.gz
ffv1: fix plane_count at version 1.4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/ffv1dec.c2
-rw-r--r--libavcodec/ffv1enc.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/ffv1dec.c b/libavcodec/ffv1dec.c
index 7722507703..fba01b9d37 100644
--- a/libavcodec/ffv1dec.c
+++ b/libavcodec/ffv1dec.c
@@ -499,7 +499,7 @@ static int read_extra_header(FFV1Context *f)
f->chroma_h_shift = get_symbol(c, state, 0);
f->chroma_v_shift = get_symbol(c, state, 0);
f->transparency = get_rac(c, state);
- f->plane_count = 2 + f->transparency;
+ f->plane_count = 1 + (f->chroma_planes || f->version<4) + f->transparency;
f->num_h_slices = 1 + get_symbol(c, state, 0);
f->num_v_slices = 1 + get_symbol(c, state, 0);
diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index 128eeb269d..032375aa45 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -797,6 +797,9 @@ static av_cold int encode_init(AVCodecContext *avctx)
if (!s->transparency)
s->plane_count = 2;
+ if (!s->chroma_planes && s->version > 3)
+ s->plane_count--;
+
avcodec_get_chroma_sub_sample(avctx->pix_fmt, &s->chroma_h_shift, &s->chroma_v_shift);
s->picture_number = 0;