diff --git a/libavformat/adp.c b/libavformat/adp.c index c5feac4fa5..08a4225e46 100644 --- a/libavformat/adp.c +++ b/libavformat/adp.c @@ -26,14 +26,21 @@ 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; }