[FFmpeg-cvslog] r19798 - trunk/libavformat/avidec.c
cehoyos
subversion
Wed Sep 9 18:26:25 CEST 2009
Author: cehoyos
Date: Wed Sep 9 18:26:24 2009
New Revision: 19798
Log:
Fix a bug with reading non-interleaved AVI if one the streams is
shorter.
Patch by Maksym Veremeyenko, verem m1stereo tv
Modified:
trunk/libavformat/avidec.c
Modified: trunk/libavformat/avidec.c
==============================================================================
--- trunk/libavformat/avidec.c Wed Sep 9 18:25:12 2009 (r19797)
+++ trunk/libavformat/avidec.c Wed Sep 9 18:26:24 2009 (r19798)
@@ -679,12 +679,18 @@ static int avi_read_packet(AVFormatConte
AVStream *st = s->streams[i];
AVIStream *ast = st->priv_data;
int64_t ts= ast->frame_offset;
+ int64_t last_ts;
if(!st->nb_index_entries)
continue;
if(ast->sample_size)
ts /= ast->sample_size;
+
+ last_ts = st->index_entries[st->nb_index_entries - 1].timestamp;
+ if(!ast->remaining && ts > last_ts)
+ continue;
+
ts = av_rescale_q(ts, st->time_base, AV_TIME_BASE_Q);
// av_log(s, AV_LOG_DEBUG, "%"PRId64" %d/%d %"PRId64"\n", ts, st->time_base.num, st->time_base.den, ast->frame_offset);
More information about the ffmpeg-cvslog
mailing list