From 5ec55d216ef05ceb877a158c7d65e072df8b71f9 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Thu, 6 Oct 2011 21:55:43 +0200 Subject: [PATCH] h264: reject unsupported 422 9 bit streams Signed-off-by: Michael Niedermayer --- libavcodec/h264.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index fb3099a5fd..197064faef 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -2648,7 +2648,8 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ if (s->avctx->bits_per_raw_sample != h->sps.bit_depth_luma || h->cur_chroma_format_idc != h->sps.chroma_format_idc) { - if (h->sps.bit_depth_luma >= 8 && h->sps.bit_depth_luma <= 10) { + if (h->sps.bit_depth_luma >= 8 && h->sps.bit_depth_luma <= 10 && + (h->sps.bit_depth_luma != 9 || !CHROMA422)) { s->avctx->bits_per_raw_sample = h->sps.bit_depth_luma; h->cur_chroma_format_idc = h->sps.chroma_format_idc; h->pixel_shift = h->sps.bit_depth_luma > 8; @@ -2658,7 +2659,8 @@ static int decode_slice_header(H264Context *h, H264Context *h0){ s->dsp.dct_bits = h->sps.bit_depth_luma > 8 ? 32 : 16; dsputil_init(&s->dsp, s->avctx); } else { - av_log(s->avctx, AV_LOG_DEBUG, "Unsupported bit depth: %d\n", h->sps.bit_depth_luma); + av_log(s->avctx, AV_LOG_DEBUG, "Unsupported bit depth: %d chroma_idc: %d\n", + h->sps.bit_depth_luma, h->sps.chroma_format_idc); return -1; } }