summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorKenneth Aafløy <kenneth@aafloy.net>2005-07-08 09:14:05 +0000
committerMichael Niedermayer <michaelni@gmx.at>2005-07-08 09:14:05 +0000
commit6fd93ce27133a9d19be614d4ae68d026143f79d7 (patch)
treee1dd13d8fa4ef4b6576356457d8fc25889bf730a /libavformat
parent9c98cdbc8adcd559d4b7d2aa885d4efe51788bcf (diff)
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
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/utils.c7
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;
}