avidec: Fix infinite loop caused by rounding of timestamps in non interleaved avis.
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 16 Dec 2011 04:13:58 +0000 (05:13 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 3 Jan 2012 17:28:15 +0000 (18:28 +0100)
Fixes Ticket775
Bug found by: Diana Elena Muscalu

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit e098fba5d9c9d52aaddd83e63dd910ff20b841d2)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/avidec.c

index 116099a..9c4dff6 100644 (file)
@@ -1050,7 +1050,7 @@ static int avi_read_packet(AVFormatContext *s, AVPacket *pkt)
             return AVERROR_EOF;
 
         best_ast = best_st->priv_data;
-        best_ts = av_rescale_q(best_ts, (AVRational){FFMAX(1, best_ast->sample_size), AV_TIME_BASE}, best_st->time_base);
+        best_ts = best_ast->frame_offset;
         if(best_ast->remaining)
             i= av_index_search_timestamp(best_st, best_ts, AVSEEK_FLAG_ANY | AVSEEK_FLAG_BACKWARD);
         else{