[FFmpeg-cvslog] h264: reject unsupported 422 9 bit streams

Laurent Aimar git at videolan.org
Fri Oct 7 01:21:54 CEST 2011


ffmpeg | branch: master | Laurent Aimar <fenrir at videolan.org> | Thu Oct  6 21:55:43 2011 +0200| [5ec55d216ef05ceb877a158c7d65e072df8b71f9] | committer: Michael Niedermayer

h264: reject unsupported 422 9 bit streams

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5ec55d216ef05ceb877a158c7d65e072df8b71f9
---

 libavcodec/h264.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index fb3099a..197064f 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;
             }
         }



More information about the ffmpeg-cvslog mailing list