summaryrefslogtreecommitdiff
path: root/libavformat/mpegts.c
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2016-05-01 15:39:13 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2016-05-01 15:39:13 +0200
commit88a849c714c17ad80d411f68e6575dfa1c8e8358 (patch)
tree27c9106f67871e281434a05d54f65602ea0b5b94 /libavformat/mpegts.c
parent00ffbdfb68ca3ff89d1735017a5f0db418b7a85b (diff)
lavf/mpegts: Return small probe score for very short transport streams.
Fixes Debian bug 823098.
Diffstat (limited to 'libavformat/mpegts.c')
-rw-r--r--libavformat/mpegts.c13
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