summaryrefslogtreecommitdiff
path: root/libavformat/amr.c
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <ceffmpeg@gmail.com>2018-04-05 00:41:55 +0200
committerCarl Eugen Hoyos <ceffmpeg@gmail.com>2018-04-06 00:21:22 +0200
commit233f52fd2534e6844fd5831e3a6c7ca3a1c8fc2d (patch)
treea268e737ab548b6b7e83ef5851e3ea5cd2ebee6f /libavformat/amr.c
parent92fe0bf1e8f83899ae8123bf1adc82dd6211f33a (diff)
downloadffmpeg-233f52fd2534e6844fd5831e3a6c7ca3a1c8fc2d.tar.gz
lavf/amr: Stricter heuristic for auto-detection.
Fixes ticket #7125.
Diffstat (limited to 'libavformat/amr.c')
-rw-r--r--libavformat/amr.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libavformat/amr.c b/libavformat/amr.c
index 8b4d736d2f..f954803d46 100644
--- a/libavformat/amr.c
+++ b/libavformat/amr.c
@@ -178,7 +178,7 @@ AVInputFormat ff_amr_demuxer = {
#if CONFIG_AMRNB_DEMUXER
static int amrnb_probe(AVProbeData *p)
{
- int mode, i = 0, valid = 0;
+ int mode, i = 0, valid = 0, invalid = 0;
const uint8_t *b = p->buf;
while (i < p->buf_size) {
@@ -197,10 +197,11 @@ static int amrnb_probe(AVProbeData *p)
}
} else {
valid = 0;
+ invalid++;
i++;
}
}
- if (valid > 100)
+ if (valid > 100 && valid > invalid)
return AVPROBE_SCORE_EXTENSION / 2 + 1;
return 0;
}
@@ -234,7 +235,7 @@ AVInputFormat ff_amrnb_demuxer = {
#if CONFIG_AMRWB_DEMUXER
static int amrwb_probe(AVProbeData *p)
{
- int mode, i = 0, valid = 0;
+ int mode, i = 0, valid = 0, invalid = 0;
const uint8_t *b = p->buf;
while (i < p->buf_size) {
@@ -253,10 +254,11 @@ static int amrwb_probe(AVProbeData *p)
}
} else {
valid = 0;
+ invalid++;
i++;
}
}
- if (valid > 100)
+ if (valid > 100 && valid > invalid)
return AVPROBE_SCORE_EXTENSION / 2 - 1;
return 0;
}