h264: fix sps parsing for SVC and CAVLC 4:4:4 Intra profiles
authorVictor Lopez <gallandae@gmail.com>
Wed, 19 Dec 2012 08:12:24 +0000 (09:12 +0100)
committerReinhard Tartler <siretart@tauware.de>
Sat, 12 Jan 2013 16:59:40 +0000 (17:59 +0100)
Fixes bug 396.

CC: libav-stable@libav.org
(cherry picked from commit 1c8bf3bfed5ff5c504c8e3de96188a977f67cce0)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
libavcodec/h264_ps.c

index a468c96ac41b1690057f0f6caf8a8f070d46cf98..00c5003a22e44a7de32b4de4b9c68a2938a2c1e8 100644 (file)
@@ -333,7 +333,11 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){
     memset(sps->scaling_matrix8, 16, sizeof(sps->scaling_matrix8));
     sps->scaling_matrix_present = 0;
 
-    if(sps->profile_idc >= 100){ //high profile
+    if (sps->profile_idc == 100 || sps->profile_idc == 110 ||
+        sps->profile_idc == 122 || sps->profile_idc == 244 ||
+        sps->profile_idc ==  44 || sps->profile_idc ==  83 ||
+        sps->profile_idc ==  86 || sps->profile_idc == 118 ||
+        sps->profile_idc == 128 || sps->profile_idc == 144) {
         sps->chroma_format_idc= get_ue_golomb_31(&s->gb);
         if(sps->chroma_format_idc > 3) {
             av_log(h->s.avctx, AV_LOG_ERROR, "chroma_format_idc (%u) out of range\n", sps->chroma_format_idc);