avformat/mov: Support size = 1 and size = 0 special cases in probing

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2021-02-06 18:22:55 +01:00
parent 752f14ff94
commit fec4a2d232
1 changed files with 5 additions and 0 deletions

View File

@ -7117,6 +7117,11 @@ static int mov_probe(const AVProbeData *p)
if ((offset + 8) > (unsigned int)p->buf_size) if ((offset + 8) > (unsigned int)p->buf_size)
break; break;
size = AV_RB32(p->buf + offset); size = AV_RB32(p->buf + offset);
if (size == 1 && offset + 16 > (unsigned int)p->buf_size) {
size = AV_RB64(p->buf+offset + 8);
} else if (size == 0) {
size = p->buf_size - offset;
}
tag = AV_RL32(p->buf + offset + 4); tag = AV_RL32(p->buf + offset + 4);
switch(tag) { switch(tag) {
/* check for obvious tags */ /* check for obvious tags */