diff options
author | Kenneth Aafløy <kenneth@aafloy.net> | 2005-07-08 09:14:05 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2005-07-08 09:14:05 +0000 |
commit | 6fd93ce27133a9d19be614d4ae68d026143f79d7 (patch) | |
tree | e1dd13d8fa4ef4b6576356457d8fc25889bf730a | |
parent | 9c98cdbc8adcd559d4b7d2aa885d4efe51788bcf (diff) | |
download | ffmpeg-6fd93ce27133a9d19be614d4ae68d026143f79d7.tar.gz |
avformat/av_seek_frame_binary with growing file patch by (Kenneth Aafløy: kenneth, aafloy net)
Originally committed as revision 4423 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavformat/utils.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 5dfeaaf36f..6e7cd3e58c 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1198,7 +1198,7 @@ int av_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts AVInputFormat *avif= s->iformat; int64_t pos_min, pos_max, pos, pos_limit; int64_t ts_min, ts_max, ts; - int64_t start_pos; + int64_t start_pos, filesize; int index, no_change; AVStream *st; @@ -1256,7 +1256,8 @@ int av_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts if(ts_max == AV_NOPTS_VALUE){ int step= 1024; - pos_max = url_fsize(&s->pb) - 1; + filesize = url_fsize(&s->pb); + pos_max = filesize - 1; do{ pos_max -= step; ts_max = avif->read_timestamp(s, stream_index, &pos_max, pos_max + step); @@ -1272,6 +1273,8 @@ int av_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts break; ts_max= tmp_ts; pos_max= tmp_pos; + if(tmp_pos >= filesize) + break; } pos_limit= pos_max; } |