summaryrefslogtreecommitdiffstats
path: root/stream
diff options
context:
space:
mode:
Diffstat (limited to 'stream')
-rw-r--r--stream/cache2.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/stream/cache2.c b/stream/cache2.c
index 05905a6ded..b492a17cd8 100644
--- a/stream/cache2.c
+++ b/stream/cache2.c
@@ -179,9 +179,11 @@ static int cache_fill(cache_vars_t *s)
if(read<s->min_filepos || read>s->max_filepos){
// seek...
mp_msg(MSGT_CACHE,MSGL_DBG2,"Out of boundaries... seeking to 0x%"PRIX64" \n",(int64_t)read);
- // streaming: drop cache contents only if seeking backward or too much fwd:
- if(s->stream->type!=STREAMTYPE_STREAM ||
- read<s->min_filepos || read>=s->max_filepos+s->seek_limit)
+ // drop cache contents only if seeking backward or too much fwd.
+ // This is also done for on-disk files, since it loses the backseek cache.
+ // That in turn can cause major bandwidth increase and performance
+ // issues with e.g. mov or badly interleaved files
+ if(read<s->min_filepos || read>=s->max_filepos+s->seek_limit)
{
s->offset= // FIXME!?
s->min_filepos=s->max_filepos=read; // drop cache content :(