|
|
@@ -157,7 +157,7 @@ static int read_braindead_odml_indx(AVFormatContext *s, int frame_num){ |
|
|
|
AVIStream *ast; |
|
|
|
int i; |
|
|
|
int64_t last_pos= -1; |
|
|
|
int64_t filesize= avio_size(s->pb); |
|
|
|
int64_t filesize= avi->fsize; |
|
|
|
|
|
|
|
av_dlog(s, "longs_pre_entry:%d index_type:%d entries_in_use:%d chunk_id:%X base:%16"PRIX64"\n", |
|
|
|
longs_pre_entry,index_type, entries_in_use, chunk_id, base); |
|
|
@@ -372,7 +372,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) |
|
|
|
av_log(avi, AV_LOG_DEBUG, "use odml:%d\n", avi->use_odml); |
|
|
|
|
|
|
|
avi->fsize = avio_size(pb); |
|
|
|
if(avi->fsize<=0) |
|
|
|
if(avi->fsize<=0 || avi->fsize < avi->riff_end) |
|
|
|
avi->fsize= avi->riff_end == 8 ? INT64_MAX : avi->riff_end; |
|
|
|
|
|
|
|
/* first list tag */ |
|
|
@@ -398,7 +398,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) |
|
|
|
if (tag1 == MKTAG('m', 'o', 'v', 'i')) { |
|
|
|
avi->movi_list = avio_tell(pb) - 4; |
|
|
|
if(size) avi->movi_end = avi->movi_list + size + (size & 1); |
|
|
|
else avi->movi_end = avio_size(pb); |
|
|
|
else avi->movi_end = avi->fsize; |
|
|
|
av_dlog(NULL, "movi end=%"PRIx64"\n", avi->movi_end); |
|
|
|
goto end_of_header; |
|
|
|
} |
|
|
@@ -731,7 +731,7 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) |
|
|
|
"I will ignore it and try to continue anyway.\n"); |
|
|
|
if (s->error_recognition >= FF_ER_EXPLODE) goto fail; |
|
|
|
avi->movi_list = avio_tell(pb) - 4; |
|
|
|
avi->movi_end = avio_size(pb); |
|
|
|
avi->movi_end = avi->fsize; |
|
|
|
goto end_of_header; |
|
|
|
} |
|
|
|
/* skip tag */ |
|
|
|