From 1894edeb745c7eac13e2a1f4e7cfa10cbf9f04f5 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 1 Mar 2006 12:04:22 +0000 Subject: [PATCH] fix demuxing of XviD_with_3_AAC-HE_audio_streams.avi Originally committed as revision 5085 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/avidec.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libavformat/avidec.c b/libavformat/avidec.c index c022b466ad..ca66ba4b09 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -203,7 +203,10 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) /* using frame_period is bad idea */ frame_period = get_le32(pb); bit_rate = get_le32(pb) * 8; - url_fskip(pb, 4 * 4); + get_le32(pb); + avi->non_interleaved |= get_le32(pb) & AVIF_MUSTUSEINDEX; + + url_fskip(pb, 2 * 4); n = get_le32(pb); for(i=0;i=0){ int64_t pos= best_st->index_entries[i].pos; pos += best_ast->packet_size - best_ast->remaining; - url_fseek(&s->pb, pos, SEEK_SET); + url_fseek(&s->pb, pos + 8, SEEK_SET); // av_log(NULL, AV_LOG_DEBUG, "pos=%Ld\n", pos); - if(best_ast->remaining) - avi->stream_index= best_stream_index; - else - avi->stream_index= -1; + avi->stream_index= best_stream_index; + if(!best_ast->remaining) + best_ast->remaining= best_st->index_entries[i].size; } }