summaryrefslogtreecommitdiffstats
path: root/stream/stream.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-07-10 15:03:54 +0200
committerwm4 <wm4@nowhere>2013-07-10 15:05:24 +0200
commit175cd3cb570525fd4ed8f6ec66e3a66a461cc896 (patch)
treeefd5b88dfc15f077601aa899c45f5a21be69f925 /stream/stream.c
parent1d48b11478b346411d57b8fee1c242591f9b83c5 (diff)
downloadmpv-175cd3cb570525fd4ed8f6ec66e3a66a461cc896.tar.bz2
mpv-175cd3cb570525fd4ed8f6ec66e3a66a461cc896.tar.xz
options: add --cache-default option
Add this option, which lets users set the cache size without forcing it even when playing from the local filesystem. Also document the default value explicitly. The Matroska linked segments case is slightly simplified: they can never come from network (mostly because it'd be insane, and we can't even list files from network sources), so the cache will never be enabled automatically.
Diffstat (limited to 'stream/stream.c')
-rw-r--r--stream/stream.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/stream/stream.c b/stream/stream.c
index 3dc25d7880..c1e88a0796 100644
--- a/stream/stream.c
+++ b/stream/stream.c
@@ -172,11 +172,6 @@ static stream_t *open_stream_plugin(const stream_info_t *sinfo,
if (!s->read_chunk)
s->read_chunk = 4 * (s->sector_size ? s->sector_size : STREAM_BUFFER_SIZE);
- if (s->streaming && !s->cache_size) {
- // Set default cache size to use if user does not specify it.
- s->cache_size = 320;
- }
-
if (s->type <= -2)
mp_msg(MSGT_OPEN, MSGL_WARN, "Warning streams need a type !!!!\n");
if (!s->seek)
@@ -661,16 +656,22 @@ stream_t *open_memory_stream(void *data, int len)
return s;
}
+static int stream_enable_cache(stream_t **stream, int64_t size, int64_t min,
+ int64_t seek_limit);
+
+/**
+ * \return 1 on success, 0 if the function was interrupted and -1 on error, or
+ * if the cache is disabled
+ */
int stream_enable_cache_percent(stream_t **stream, int64_t stream_cache_size,
+ int64_t stream_cache_def_size,
float stream_cache_min_percent,
float stream_cache_seek_min_percent)
{
-
if (stream_cache_size == -1)
- stream_cache_size = (*stream)->cache_size;
+ stream_cache_size = (*stream)->streaming ? stream_cache_def_size : 0;
stream_cache_size = stream_cache_size * 1024; // input is in KiB
-
return stream_enable_cache(stream, stream_cache_size,
stream_cache_size *
(stream_cache_min_percent / 100.0),
@@ -678,12 +679,8 @@ int stream_enable_cache_percent(stream_t **stream, int64_t stream_cache_size,
(stream_cache_seek_min_percent / 100.0));
}
-/**
- * \return 1 on success, 0 if the function was interrupted and -1 on error, or
- * if the cache is disabled
- */
-int stream_enable_cache(stream_t **stream, int64_t size, int64_t min,
- int64_t seek_limit)
+static int stream_enable_cache(stream_t **stream, int64_t size, int64_t min,
+ int64_t seek_limit)
{
stream_t *orig = *stream;