[FFmpeg-cvslog] r23645 - trunk/libavformat/raw.c

michael subversion
Sat Jun 19 01:17:21 CEST 2010


Author: michael
Date: Sat Jun 19 01:17:20 2010
New Revision: 23645

Log:
Improve h263_probe()
Fixes issue2015

Modified:
   trunk/libavformat/raw.c

Modified: trunk/libavformat/raw.c
==============================================================================
--- trunk/libavformat/raw.c	Fri Jun 18 22:07:43 2010	(r23644)
+++ trunk/libavformat/raw.c	Sat Jun 19 01:17:20 2010	(r23645)
@@ -457,6 +457,7 @@ static int h263_probe(AVProbeData *p)
     int invalid_psc=0;
     int res_change=0;
     int src_fmt, last_src_fmt=-1;
+    int last_gn=0;
 
     for(i=0; i<p->buf_size; i++){
         code = (code<<8) + p->buf[i];
@@ -469,9 +470,16 @@ static int h263_probe(AVProbeData *p)
 
             if((code&0x300)==0x200 && src_fmt){
                 valid_psc++;
+                last_gn=0;
             }else
                 invalid_psc++;
             last_src_fmt= src_fmt;
+        } else if((code & 0xffff800000) == 0x800000) {
+            int gn= (code>>(23-5)) & 0x1F;
+            if(gn<last_gn){
+                invalid_psc++;
+            }else
+                last_gn= gn;
         }
     }
 //av_log(NULL, AV_LOG_ERROR, "h263_probe: psc:%d invalid:%d res_change:%d\n", valid_psc, invalid_psc, res_change);



More information about the ffmpeg-cvslog mailing list