MPEGTS: Improve probe function
authorMåns Rullgård <mans@mansr.com>
Fri, 18 Jul 2008 01:07:17 +0000 (01:07 +0000)
committerMåns Rullgård <mans@mansr.com>
Fri, 18 Jul 2008 01:07:17 +0000 (01:07 +0000)
When a sync byte is found, check that transport_error_indicator is zero,
and adaptation_field_control is valid (non-zero).

Originally committed as revision 14274 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mpegts.c

index a10f5dc..5067f77 100644 (file)
@@ -347,8 +347,8 @@ static int analyze(const uint8_t *buf, int size, int packet_size, int *index){
 
     memset(stat, 0, packet_size*sizeof(int));
 
-    for(x=i=0; i<size; i++){
-        if(buf[i] == 0x47){
+    for(x=i=0; i<size-3; i++){
+        if(buf[i] == 0x47 && !(buf[i+1] & 0x80) && (buf[i+3] & 0x30)){
             stat[x]++;
             if(stat[x] > best_score){
                 best_score= stat[x];