From ba4569cf702c72fd85e11abeb52ba06e860ed2ea Mon Sep 17 00:00:00 2001 From: wm4 Date: Tue, 22 Mar 2016 22:29:15 +0100 Subject: command: change "cache-speed" OSD formatting Also change the property to an int, since using double is questionable and pointless. --- DOCS/man/input.rst | 4 ++-- player/command.c | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index 63506e7a4e..4244997111 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -1197,8 +1197,8 @@ Property list ``cache-speed`` (R) Current I/O read speed between the cache and the lower layer (like network). - This is a float (using ``MPV_FORMAT_DOUBLE`` in the client API) and gives - the value bytes per seconds over a 1 second window. + This gives the number bytes per seconds over a 1 second window (using + the type ``MPV_FORMAT_INT64`` for the client API). ``cache-idle`` (R) Returns ``yes`` if the cache is idle, which means the cache is filled as diff --git a/player/command.c b/player/command.c index 9d8528571a..07b9128cc8 100644 --- a/player/command.c +++ b/player/command.c @@ -1437,12 +1437,17 @@ static int mp_property_cache_speed(void *ctx, struct m_property *prop, if (!mpctx->demuxer) return M_PROPERTY_UNAVAILABLE; - double speed = -1; - demux_stream_control(mpctx->demuxer, STREAM_CTRL_GET_CACHE_SPEED, &speed); - if (speed < 0) + double f_speed = -1; + demux_stream_control(mpctx->demuxer, STREAM_CTRL_GET_CACHE_SPEED, &f_speed); + if (f_speed < 0) return M_PROPERTY_UNAVAILABLE; + int64_t speed = llrint(f_speed); - return m_property_double_ro(action, arg, speed); + if (action == M_PROPERTY_PRINT) { + *(char **)arg = talloc_strdup_append(format_file_size(speed), "/s"); + return M_PROPERTY_OK; + } + return m_property_int64_ro(action, arg, speed); } static int mp_property_cache_idle(void *ctx, struct m_property *prop, -- cgit v1.2.3