aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-11-23 21:56:16 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-11-23 21:56:16 +0100
commit98d1e9f915fe3ef9d60cdee1b901d400440b0089 (patch)
tree6baa51caaf1c42c1a8158440ddf99b1a81ab2e94 /libavformat/utils.c
parent6a3a54f5e382bd06e9097fe4094fb623c76cc2dd (diff)
downloadffmpeg-98d1e9f915fe3ef9d60cdee1b901d400440b0089.tar.gz
lavf: give more weight to the extension during probing if there is a id3
tag that is larger than the probe buffer. Fixes Ticket336 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index b7386ed233..13d7928818 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -309,14 +309,15 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score
{
AVProbeData lpd = *pd;
AVInputFormat *fmt1 = NULL, *fmt;
- int score, score_max=0;
+ int score, nodat = 0, score_max=0;
if (lpd.buf_size > 10 && ff_id3v2_match(lpd.buf, ID3v2_DEFAULT_MAGIC)) {
int id3len = ff_id3v2_tag_len(lpd.buf);
if (lpd.buf_size > id3len + 16) {
lpd.buf += id3len;
lpd.buf_size -= id3len;
- }
+ }else
+ nodat = 1;
}
fmt = NULL;
@@ -327,7 +328,7 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score
if (fmt1->read_probe) {
score = fmt1->read_probe(&lpd);
if(fmt1->extensions && av_match_ext(lpd.filename, fmt1->extensions))
- score = FFMAX(score, 1);
+ score = FFMAX(score, nodat ? AVPROBE_SCORE_MAX/4-1 : 1);
} else if (fmt1->extensions) {
if (av_match_ext(lpd.filename, fmt1->extensions)) {
score = 50;