mpeg-ps probe 2nd try
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 11 Feb 2006 09:27:00 +0000 (09:27 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 11 Feb 2006 09:27:00 +0000 (09:27 +0000)
Originally committed as revision 4974 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mpeg.c

index b45dca0..2474a37 100644 (file)
@@ -1263,7 +1263,7 @@ static int mpeg_mux_end(AVFormatContext *ctx)
 static int mpegps_probe(AVProbeData *p)
 {
     uint32_t code= -1;
-    int sys=0, pspack=0;
+    int sys=0, pspack=0, priv1=0, vid=0;
     int i;
 
     for(i=0; i<p->buf_size; i++){
@@ -1271,12 +1271,16 @@ static int mpegps_probe(AVProbeData *p)
         if ((code & 0xffffff00) == 0x100) {
             switch(code){
             case SYSTEM_HEADER_START_CODE:    sys++; break;
+            case         PRIVATE_STREAM_1:  priv1++; break;
             case          PACK_START_CODE: pspack++; break;
+            case       (VIDEO_ID + 0x100):    vid++; break;
             }
         }
     }
     if(sys && sys*9 <= pspack*10)
         return AVPROBE_SCORE_MAX/2+2; // +1 for .mpg
+    if((priv1 || vid) && (priv1+vid)*9 <= pspack*10)
+        return AVPROBE_SCORE_MAX/2+2; // +1 for .mpg
     return 0;
 }