Hi!
Debian uses the following as a regression test for aac in mpegts:
$ ffmpeg -f lavfi -i sine=d=0.1 -acodec aac -strict -2 out.ts
$ ffmpeg -i out.ts
(possibly simplified)
This worked in 2.8 when the default aac bitrate was 128k and the
length of the output file 2632 bytes. Since f0a82124 the bitrate
is 69k and the output file size 1880 bytes. For this size the
mpegts probe function never returns a positive value.
Attached patch fixes Debian bug 823098 here (and does not crash
probetest):
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823098
Please comment, Carl Eugen
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index f8fe91e..1f3be96 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -2482,7 +2482,7 @@ static int mpegts_probe(AVProbeData *p)
#define CHECK_COUNT 10
#define CHECK_BLOCK 100
- if (check_count < CHECK_COUNT)
+ if (!check_count)
return 0;
for (i = 0; i<check_count; i+=CHECK_BLOCK) {
@@ -2500,10 +2500,15 @@ static int mpegts_probe(AVProbeData *p)
ff_dlog(0, "TS score: %d %d\n", sumscore, maxscore);
- if (sumscore > 6) return AVPROBE_SCORE_MAX + sumscore - CHECK_COUNT;
- else if (maxscore > 6) return AVPROBE_SCORE_MAX/2 + sumscore - CHECK_COUNT;
- else
+ if (check_count >= CHECK_COUNT && sumscore > 6) {
+ return AVPROBE_SCORE_MAX + sumscore - CHECK_COUNT;
+ } else if (check_count >= CHECK_COUNT && maxscore > 6) {
+ return AVPROBE_SCORE_MAX/2 + sumscore - CHECK_COUNT;
+ } else if (sumscore > 6) {
+ return 2;
+ } else {
return 0;
+ }
}
/* return the 90kHz PCR and the extension for the 27MHz PCR. return
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel