[SCM] libav/experimental: Detect IDR less H.264 correctly. Fixes maybeH264_dumpvideo

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:26:10 UTC 2013


The following commit has been merged in the experimental branch:
commit 01037451f932570efddaa935fc348a386373f57a
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Sat Jul 26 18:54:26 2008 +0000

    Detect IDR less H.264 correctly.
    Fixes maybeH264_dumpvideo
    
    Originally committed as revision 14424 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/raw.c b/libavformat/raw.c
index dd4d011..bb1345a 100644
--- a/libavformat/raw.c
+++ b/libavformat/raw.c
@@ -350,7 +350,7 @@ static int mpeg4video_probe(AVProbeData *probe_packet)
 static int h264_probe(AVProbeData *p)
 {
     uint32_t code= -1;
-    int sps=0, pps=0, idr=0, res=0;
+    int sps=0, pps=0, idr=0, res=0, sli=0;
     int i;
 
     for(i=0; i<p->buf_size; i++){
@@ -376,6 +376,7 @@ static int h264_probe(AVProbeData *p)
                 res++;
 
             switch(type){
+            case     1:   sli++; break;
             case     5:   idr++; break;
             case     7:
                 if(p->buf[i+2]&0x0F)
@@ -386,7 +387,7 @@ static int h264_probe(AVProbeData *p)
             }
         }
     }
-    if(sps && pps && idr && res<(sps+pps+idr))
+    if(sps && pps && (idr||sli>3) && res<(sps+pps+idr))
         return AVPROBE_SCORE_MAX/2+1; // +1 for .mpg
     return 0;
 }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list