mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
probe for 'junk' and 'pict', changed the scores.
Originally committed as revision 3888 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
edaf11e87a
commit
2497479f2b
@ -1616,6 +1616,7 @@ static int mov_probe(AVProbeData *p)
|
|||||||
{
|
{
|
||||||
unsigned int offset;
|
unsigned int offset;
|
||||||
uint32_t tag;
|
uint32_t tag;
|
||||||
|
int score = 0;
|
||||||
|
|
||||||
/* check file header */
|
/* check file header */
|
||||||
if (p->buf_size <= 12)
|
if (p->buf_size <= 12)
|
||||||
@ -1624,26 +1625,33 @@ static int mov_probe(AVProbeData *p)
|
|||||||
for(;;) {
|
for(;;) {
|
||||||
/* ignore invalid offset */
|
/* ignore invalid offset */
|
||||||
if ((offset + 8) > (unsigned int)p->buf_size)
|
if ((offset + 8) > (unsigned int)p->buf_size)
|
||||||
return 0;
|
return score;
|
||||||
tag = mov_to_tag(p->buf + offset + 4);
|
tag = mov_to_tag(p->buf + offset + 4);
|
||||||
switch(tag) {
|
switch(tag) {
|
||||||
|
/* check for obvious tags */
|
||||||
case MKTAG( 'm', 'o', 'o', 'v' ):
|
case MKTAG( 'm', 'o', 'o', 'v' ):
|
||||||
case MKTAG( 'w', 'i', 'd', 'e' ):
|
|
||||||
case MKTAG( 'f', 'r', 'e', 'e' ):
|
|
||||||
case MKTAG( 'm', 'd', 'a', 't' ):
|
case MKTAG( 'm', 'd', 'a', 't' ):
|
||||||
case MKTAG( 'p', 'n', 'o', 't' ): /* detect movs with preview pics like ew.mov and april.mov */
|
case MKTAG( 'p', 'n', 'o', 't' ): /* detect movs with preview pics like ew.mov and april.mov */
|
||||||
case MKTAG( 'u', 'd', 't', 'a' ): /* Packet Video PVAuthor adds this and a lot of more junk */
|
case MKTAG( 'u', 'd', 't', 'a' ): /* Packet Video PVAuthor adds this and a lot of more junk */
|
||||||
return AVPROBE_SCORE_MAX;
|
return AVPROBE_SCORE_MAX;
|
||||||
|
/* those are more common words, so rate then a bit less */
|
||||||
|
case MKTAG( 'w', 'i', 'd', 'e' ):
|
||||||
|
case MKTAG( 'f', 'r', 'e', 'e' ):
|
||||||
|
case MKTAG( 'j', 'u', 'n', 'k' ):
|
||||||
|
case MKTAG( 'p', 'i', 'c', 't' ):
|
||||||
|
return AVPROBE_SCORE_MAX - 5;
|
||||||
case MKTAG( 'f', 't', 'y', 'p' ):
|
case MKTAG( 'f', 't', 'y', 'p' ):
|
||||||
case MKTAG( 's', 'k', 'i', 'p' ):
|
case MKTAG( 's', 'k', 'i', 'p' ):
|
||||||
offset = to_be32(p->buf+offset) + offset;
|
offset = to_be32(p->buf+offset) + offset;
|
||||||
|
/* if we only find those cause probedata is too small at least rate them */
|
||||||
|
score = AVPROBE_SCORE_MAX - 50;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* unrecognized tag */
|
/* unrecognized tag */
|
||||||
return 0;
|
return score;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return score;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
||||||
|
Loading…
Reference in New Issue
Block a user