diff options
Diffstat (limited to 'stream/cache2.c')
-rw-r--r-- | stream/cache2.c | 8 |
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 :( |