avidec: Fix demuxing of non seekable avis with multiple RIFFs

This solution uses the size of the first RIFF if its valid
to check frame size validity when the filesize could not be determined.
Feedback is welcome, other ideas and improvments as well!

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-03-28 17:22:35 +01:00
parent 5009863ab5
commit 27b7bfc7b5

View File

@ -944,7 +944,7 @@ start_sync:
n= get_stream_idx(d+2);
av_dlog(s, "%X %X %X %X %X %X %X %X %"PRId64" %u %d\n",
d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], i, size, n);
if(i + (uint64_t)size > avi->fsize || d[0] > 127)
if(i*(avi->io_fsize>0) + (uint64_t)size > avi->fsize || d[0] > 127)
continue;
//parse ix##