From 7ccc636f03189f1f1b68ee812fb8f965fd21bfb0 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 4 Oct 2008 22:26:43 +0000 Subject: [PATCH] Favor even chunk sizes in ambiguous cases. Fixes transcode_069_produces_uneven_chunk_size.avi. Originally committed as revision 15557 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/avidec.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 1a9a11c439..eaccd41fe5 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -52,6 +52,7 @@ typedef struct { int64_t movi_end; int64_t fsize; int64_t movi_list; + int64_t last_pkt_pos; int index_loaded; int is_odml; int non_interleaved; @@ -701,6 +702,7 @@ resync: if(size > ast->remaining) size= ast->remaining; + avi->last_pkt_pos= url_ftell(pb); av_get_packet(pb, pkt, size); if(ast->has_pal && pkt->data && pkt->size<(unsigned)INT_MAX/2){ @@ -782,6 +784,9 @@ resync: n= get_stream_idx(d); + if(!((i-avi->last_pkt_pos)&1) && get_stream_idx(d+1) < s->nb_streams) + continue; + //parse ##dc/##wb if(n < s->nb_streams){ AVStream *st;