summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-09-10 14:10:44 +0200
committerwm4 <wm4@nowhere>2015-09-10 14:15:45 +0200
commit2492b5f1198161a04b046554df79390eb312ca5c (patch)
treedf27c35d28d6ae49c439e2322a15310e7d124bc9
parentd3bd5c9541af3618130f5269005f7b6fdf8e209a (diff)
downloadmpv-2492b5f1198161a04b046554df79390eb312ca5c.tar.bz2
mpv-2492b5f1198161a04b046554df79390eb312ca5c.tar.xz
cache: do not include backbuffer size in total stream cache size
This causes weirdness with the "cache-size" property and option. Only the read handler of the property included the backbuffer, while all others did not. Make it consistent, and subtract the backbuffer size from the cache size. Fixes #2305.
-rw-r--r--DOCS/man/input.rst4
-rw-r--r--stream/cache.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst
index c49587eabf..b1ac03734c 100644
--- a/DOCS/man/input.rst
+++ b/DOCS/man/input.rst
@@ -1111,11 +1111,13 @@ Property list
Network cache fill state (0-100.0).
``cache-size`` (RW)
- Total network cache size in KB. This is similar to ``--cache``. This allows
+ Network cache size in KB. This is similar to ``--cache``. This allows
to set the cache size at runtime. Currently, it's not possible to enable
or disable the cache at runtime using this property, just to resize an
existing cache.
+ This does not include the backbuffer size (changed after mpv 0.10.0).
+
Note that this tries to keep the cache contents as far as possible. To make
this easier, the cache resizing code will allocate the new cache while the
old cache is still allocated.
diff --git a/stream/cache.c b/stream/cache.c
index 43b7eba329..c4eaa6e261 100644
--- a/stream/cache.c
+++ b/stream/cache.c
@@ -367,7 +367,7 @@ static int cache_get_cached_control(stream_t *cache, int cmd, void *arg)
struct priv *s = cache->priv;
switch (cmd) {
case STREAM_CTRL_GET_CACHE_SIZE:
- *(int64_t *)arg = s->buffer_size;
+ *(int64_t *)arg = s->buffer_size - s->back_size;
return STREAM_OK;
case STREAM_CTRL_GET_CACHE_FILL:
*(int64_t *)arg = s->max_filepos - s->read_filepos;