[FFmpeg-cvslog] ff_gen_search: fix limit

Michael Niedermayer git at videolan.org
Tue Jun 18 23:56:49 CEST 2013


ffmpeg | branch: release/1.2 | Michael Niedermayer <michaelni at gmx.at> | Tue Jun 18 20:48:53 2013 +0200| [c77b3737b9d1bdc27a7ac9ae8d5655c5bb000304] | committer: Carl Eugen Hoyos

ff_gen_search: fix limit

The limit value could become slightly wrong in the last iteration

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

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c77b3737b9d1bdc27a7ac9ae8d5655c5bb000304
---

 libavformat/utils.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 1ba9258..d9c95cf 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1860,11 +1860,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)



More information about the ffmpeg-cvslog mailing list