yop_probe: check more fields to avoid detecting random data as yop

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2012-05-31 14:47:15 +02:00
parent 60de761657
commit 76170f5373
1 changed files with 6 additions and 1 deletions

View File

@ -38,10 +38,15 @@ typedef struct yop_dec_context {
static int yop_probe(AVProbeData *probe_packet)
{
if (AV_RB16(probe_packet->buf) == AV_RB16("YO") &&
probe_packet->buf[2]<10 &&
probe_packet->buf[3]<10 &&
probe_packet->buf[6] &&
probe_packet->buf[7] &&
!(probe_packet->buf[8] & 1) &&
!(probe_packet->buf[10] & 1))
!(probe_packet->buf[10] & 1) &&
AV_RL16(probe_packet->buf + 12 + 6) >= 920 &&
AV_RL16(probe_packet->buf + 12 + 6) < probe_packet->buf[12] * 3 + 4 + probe_packet->buf[7] * 2048
)
return AVPROBE_SCORE_MAX * 3 / 4;
return 0;