[FFmpeg-cvslog] r18942 - trunk/libavformat/avidec.c
michael
subversion
Mon May 25 20:28:26 CEST 2009
Author: michael
Date: Mon May 25 20:28:26 2009
New Revision: 18942
Log:
Workaround broken AVI files from DC-XZ6.
Fixes issue897.
Modified:
trunk/libavformat/avidec.c
Modified: trunk/libavformat/avidec.c
==============================================================================
--- trunk/libavformat/avidec.c Mon May 25 18:12:51 2009 (r18941)
+++ trunk/libavformat/avidec.c Mon May 25 20:28:26 2009 (r18942)
@@ -955,19 +955,30 @@ static int guess_ni_flag(AVFormatContext
int i;
int64_t last_start=0;
int64_t first_end= INT64_MAX;
+ int64_t oldpos= url_ftell(s->pb);
for(i=0; i<s->nb_streams; i++){
AVStream *st = s->streams[i];
int n= st->nb_index_entries;
+ unsigned int size;
if(n <= 0)
continue;
+ if(n >= 2){
+ int64_t pos= st->index_entries[0].pos;
+ url_fseek(s->pb, pos + 4, SEEK_SET);
+ size= get_le32(s->pb);
+ if(pos + size > st->index_entries[1].pos)
+ last_start= INT64_MAX;
+ }
+
if(st->index_entries[0].pos > last_start)
last_start= st->index_entries[0].pos;
if(st->index_entries[n-1].pos < first_end)
first_end= st->index_entries[n-1].pos;
}
+ url_fseek(s->pb, oldpos, SEEK_SET);
return last_start > first_end;
}
More information about the ffmpeg-cvslog
mailing list