diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2016-05-01 15:39:13 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2016-05-01 15:39:13 +0200 |
commit | 88a849c714c17ad80d411f68e6575dfa1c8e8358 (patch) | |
tree | 27c9106f67871e281434a05d54f65602ea0b5b94 | |
parent | 00ffbdfb68ca3ff89d1735017a5f0db418b7a85b (diff) | |
download | ffmpeg-88a849c714c17ad80d411f68e6575dfa1c8e8358.tar.gz |
lavf/mpegts: Return small probe score for very short transport streams.
Fixes Debian bug 823098.
-rw-r--r-- | libavformat/mpegts.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index f8fe91ec60..1f3be96a65 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 |