mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-13 18:55:08 +00:00
lavf: if id3v2 tag is present and all else fails, guess by file extension
This commit is contained in:
parent
5371803dd5
commit
56a1000917
@ -371,7 +371,7 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score
|
|||||||
{
|
{
|
||||||
AVProbeData lpd = *pd;
|
AVProbeData lpd = *pd;
|
||||||
AVInputFormat *fmt1 = NULL, *fmt;
|
AVInputFormat *fmt1 = NULL, *fmt;
|
||||||
int score;
|
int score, id3 = 0;
|
||||||
|
|
||||||
if (lpd.buf_size > 10 && ff_id3v2_match(lpd.buf, ID3v2_DEFAULT_MAGIC)) {
|
if (lpd.buf_size > 10 && ff_id3v2_match(lpd.buf, ID3v2_DEFAULT_MAGIC)) {
|
||||||
int id3len = ff_id3v2_tag_len(lpd.buf);
|
int id3len = ff_id3v2_tag_len(lpd.buf);
|
||||||
@ -379,6 +379,7 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score
|
|||||||
lpd.buf += id3len;
|
lpd.buf += id3len;
|
||||||
lpd.buf_size -= id3len;
|
lpd.buf_size -= id3len;
|
||||||
}
|
}
|
||||||
|
id3 = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt = NULL;
|
fmt = NULL;
|
||||||
@ -399,6 +400,16 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score
|
|||||||
}else if (score == *score_max)
|
}else if (score == *score_max)
|
||||||
fmt = NULL;
|
fmt = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* a hack for files with huge id3v2 tags -- try to guess by file extension. */
|
||||||
|
if (!fmt && id3 && *score_max < AVPROBE_SCORE_MAX/4) {
|
||||||
|
while ((fmt = av_iformat_next(fmt)))
|
||||||
|
if (fmt->extensions && av_match_ext(lpd.filename, fmt->extensions)) {
|
||||||
|
*score_max = AVPROBE_SCORE_MAX/4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return fmt;
|
return fmt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user