2018-06-23 14:43 GMT+02:00, Michael Niedermayer <mich...@niedermayer.cc>: > On Thu, Jun 21, 2018 at 10:09:14PM +0000, Carl Eugen Hoyos wrote: >> ffmpeg | branch: master | Carl Eugen Hoyos <ceffm...@gmail.com> | Fri Jun >> 22 00:08:13 2018 +0200| [40b7e6071815fc416a4efc5dc1616f5460a3aacb] | >> committer: Carl Eugen Hoyos >> >> lavf/amr: Make the heuristic for auto-detection even stricter. >> >> Fixes ticket #7270. >> >> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=40b7e6071815fc416a4efc5dc1616f5460a3aacb >> --- >> >> libavformat/amr.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/libavformat/amr.c b/libavformat/amr.c >> index f954803d46..6cc06bceac 100644 >> --- a/libavformat/amr.c >> +++ b/libavformat/amr.c >> @@ -201,7 +201,7 @@ static int amrnb_probe(AVProbeData *p) >> i++; >> } >> } >> - if (valid > 100 && valid > invalid) >> + if (valid > 100 && valid >> 4 > invalid) >> return AVPROBE_SCORE_EXTENSION / 2 + 1; >> return 0; >> } >> @@ -258,8 +258,8 @@ static int amrwb_probe(AVProbeData *p) >> i++; >> } >> } >> - if (valid > 100 && valid > invalid) >> - return AVPROBE_SCORE_EXTENSION / 2 - 1; >> + if (valid > 100 && valid >> 4 > invalid) >> + return AVPROBE_SCORE_EXTENSION / 2 + 1; > > This breaks detecting the h263 file: > > https://samples.ffmpeg.org/V-codecs/h263/h263-raw/messenger.h263
Attached patch fixes the existing heuristic to avoid detection of files like this one. Sorry, Carl Eugen
From 3bfac3c9a525e8ce92c025ee2853a600d71e64d5 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos <ceffm...@gmail.com> Date: Mon, 25 Jun 2018 23:20:09 +0200 Subject: [PATCH] lavf/amr: Fix heuristic to avoid detection of repeated bytes. --- libavformat/amr.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libavformat/amr.c b/libavformat/amr.c index 6cc06bc..de34705 100644 --- a/libavformat/amr.c +++ b/libavformat/amr.c @@ -184,12 +184,11 @@ static int amrnb_probe(AVProbeData *p) while (i < p->buf_size) { mode = b[i] >> 3 & 0x0F; if (mode < 9 && (b[i] & 0x4) == 0x4) { - int last = mode; + int last = b[i]; int size = amrnb_packed_size[mode]; while (size--) { if (b[++i] != last) break; - last = b[i]; } if (size > 0) { valid++; @@ -241,12 +240,11 @@ static int amrwb_probe(AVProbeData *p) while (i < p->buf_size) { mode = b[i] >> 3 & 0x0F; if (mode < 10 && (b[i] & 0x4) == 0x4) { - int last = mode; + int last = b[i]; int size = amrwb_packed_size[mode]; while (size--) { if (b[++i] != last) break; - last = b[i]; } if (size > 0) { valid++; -- 1.7.10.4
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel