diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2015-08-12 22:26:41 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-08-12 22:51:40 +0200 |
commit | 1f8607937630d9b3894844de44329cdb83e622ba (patch) | |
tree | 546d65e57fc812da7c56db880fd29970a20270e3 | |
parent | 0d2a62d25719371215c0f13a850ae7fe442ba013 (diff) | |
download | ffmpeg-1f8607937630d9b3894844de44329cdb83e622ba.tar.gz |
avcodec/mpeg12dec: Check chroma_format
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavcodec/mpeg12dec.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 453cd6a80b..c7a5701fb9 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1384,6 +1384,7 @@ static int mpeg_decode_postinit(AVCodecContext *avctx) case 1: avctx->chroma_sample_location = AVCHROMA_LOC_LEFT; break; case 2: case 3: avctx->chroma_sample_location = AVCHROMA_LOC_TOPLEFT; break; + default: av_assert0(0); } } // MPEG-2 @@ -1466,6 +1467,12 @@ static void mpeg_decode_sequence_extension(Mpeg1Context *s1) s->avctx->level = get_bits(&s->gb, 4); s->progressive_sequence = get_bits1(&s->gb); /* progressive_sequence */ s->chroma_format = get_bits(&s->gb, 2); /* chroma_format 1=420, 2=422, 3=444 */ + + if (!s->chroma_format) { + s->chroma_format = 1; + av_log(s->avctx, AV_LOG_WARNING, "Chroma format invalid\n"); + } + horiz_size_ext = get_bits(&s->gb, 2); vert_size_ext = get_bits(&s->gb, 2); s->width |= (horiz_size_ext << 12); |