mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-28 02:12:28 +00:00
mov: Drop dref when unable to parse
Some entries might be either empty or contain types we do not parse (eg. 'url '). In both cases, if an 'alis' is not the first entry, external references are not loaded, so make sure that the array starts with an 'alis' dref.
This commit is contained in:
parent
303f931938
commit
b5f963bfec
@ -482,7 +482,7 @@ static int mov_read_dref(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
||||
return AVERROR(ENOMEM);
|
||||
sc->drefs_count = entries;
|
||||
|
||||
for (i = 0; i < sc->drefs_count; i++) {
|
||||
for (i = 0; i < entries; i++) {
|
||||
MOVDref *dref = &sc->drefs[i];
|
||||
uint32_t size = avio_rb32(pb);
|
||||
int64_t next = avio_tell(pb) + size - 4;
|
||||
@ -577,6 +577,11 @@ static int mov_read_dref(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
||||
} else
|
||||
avio_skip(pb, len);
|
||||
}
|
||||
} else {
|
||||
av_log(c->fc, AV_LOG_DEBUG, "Unknown dref type 0x08%x size %d\n",
|
||||
dref->type, size);
|
||||
entries--;
|
||||
i--;
|
||||
}
|
||||
avio_seek(pb, next, SEEK_SET);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user