From: Tobias Güntner Date: Wed, 25 Nov 2009 15:05:57 +0000 (+0100) Subject: Fix prebuffering after seek. X-Git-Tag: 1.1.0-ff~1307 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=722b9d0efed6161666b7a8993809e0c760be221b;p=vlc Fix prebuffering after seek. Signed-off-by: Laurent Aimar --- diff --git a/src/input/stream.c b/src/input/stream.c index 00ecbae76c..64bf2db82f 100644 --- a/src/input/stream.c +++ b/src/input/stream.c @@ -1428,13 +1428,14 @@ static void AStreamPrebufferStream( stream_t *s ) int64_t i_date = mdate(); int i_read; + int i_buffered = tk->i_end - tk->i_start; - if( s->b_die || tk->i_end >= STREAM_CACHE_PREBUFFER_SIZE ) + if( s->b_die || i_buffered >= STREAM_CACHE_PREBUFFER_SIZE ) { int64_t i_byterate; /* Update stat */ - p_sys->stat.i_bytes = tk->i_end - tk->i_start; + p_sys->stat.i_bytes = i_buffered; p_sys->stat.i_read_time = i_date - i_start; i_byterate = ( INT64_C(1000000) * p_sys->stat.i_bytes ) / (p_sys->stat.i_read_time+1); @@ -1448,9 +1449,9 @@ static void AStreamPrebufferStream( stream_t *s ) } /* */ - i_read = STREAM_CACHE_TRACK_SIZE - tk->i_end; + i_read = STREAM_CACHE_TRACK_SIZE - i_buffered; i_read = __MIN( p_sys->stream.i_read_size, i_read ); - i_read = AReadStream( s, &tk->p_buffer[tk->i_end], i_read ); + i_read = AReadStream( s, &tk->p_buffer[i_buffered], i_read ); if( i_read < 0 ) continue; else if( i_read == 0 )