ff_gen_search: fix infinite loop
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 18 Jun 2013 18:50:15 +0000 (20:50 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Tue, 18 Jun 2013 21:46:14 +0000 (23:46 +0200)
Fixes Ticket2639

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

libavformat/utils.c

index d9c95cf..ed83f28 100644 (file)
@@ -1868,7 +1868,7 @@ int64_t ff_gen_search(AVFormatContext *s, int stream_index, int64_t target_ts,
             pos_max = FFMAX(0, pos_max - step);
             ts_max = ff_read_timestamp(s, stream_index, &pos_max, limit, read_timestamp);
             step += step;
-        }while(ts_max == AV_NOPTS_VALUE && pos_max > 0);
+        }while(ts_max == AV_NOPTS_VALUE && 2*limit > step);
         if (ts_max == AV_NOPTS_VALUE)
             return -1;