OSDN Git Service

Do not detect "00000000..." (and other non-changing values) as adp.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 9 Dec 2013 12:51:00 +0000 (13:51 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 9 Dec 2013 12:51:00 +0000 (13:51 +0100)
libavformat/adp.c

index c5feac4..08a4225 100644 (file)
 
 static int adp_probe(AVProbeData *p)
 {
-    int i;
+    int i, changes = 0;
+    char last = 0;
 
     if (p->buf_size < 32)
         return 0;
 
-    for (i = 0; i < p->buf_size - 3; i+=32)
+    for (i = 0; i < p->buf_size - 3; i+=32) {
         if (p->buf[i] != p->buf[i+2] || p->buf[i+1] != p->buf[i+3])
             return 0;
+        if (p->buf[i] != last)
+            changes++;
+        last = p->buf[i];
+    }
+    if (changes <= 1)
+        return 0;
 
     return p->buf_size < 260 ? 1 : AVPROBE_SCORE_MAX / 4;
 }