From b3dd50cd0dbbda08610b75384128f5f47f5199d9 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 18 Jun 2013 20:48:53 +0200 Subject: [PATCH] ff_gen_search: fix limit The limit value could become slightly wrong in the last iteration Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 9d9d3d6575..686374d92a 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1770,11 +1770,13 @@ int64_t ff_gen_search(AVFormatContext *s, int stream_index, int64_t target_ts, if(ts_max == AV_NOPTS_VALUE){ int64_t step= 1024; + int64_t limit; filesize = avio_size(s->pb); pos_max = filesize - 1; do{ + limit = pos_max; pos_max = FFMAX(0, pos_max - step); - ts_max = ff_read_timestamp(s, stream_index, &pos_max, pos_max + step, read_timestamp); + ts_max = ff_read_timestamp(s, stream_index, &pos_max, limit, read_timestamp); step += step; }while(ts_max == AV_NOPTS_VALUE && pos_max > 0); if (ts_max == AV_NOPTS_VALUE)