From 822b247d10fe14c83e8d31223a3922f68695a196 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 17 Dec 2017 22:11:10 +0100 Subject: [PATCH] player: show demuxer cache buffered amount in bytes in the status line I don't want to add another field to display stream and demuxer cache separately, so just add them up. This strangely makes sense, since the forward buffered stream cache amount consists of data not read by the demuxer yet. (If the demuxer cache has buffered the full stream, the forward buffered stream cache amount is 0.) --- DOCS/man/input.rst | 4 ++++ DOCS/man/mpv.rst | 6 ++++-- player/osd.c | 9 +++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index 4e81a3ce2d..b67b490d8b 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -1273,6 +1273,9 @@ Property list buffering amount, while the seek ranges represent the buffered data that can actually be used for cached seeking. + ``fw-bytes`` is the number of bytes of packets buffered in the range + starting from the current decoding position. + When querying the property with the client API using ``MPV_FORMAT_NODE``, or with Lua ``mp.get_property_native``, this will return a mpv_node with the following contents: @@ -1284,6 +1287,7 @@ Property list MPV_FORMAT_NODE_MAP "start" MPV_FORMAT_DOUBLE "end" MPV_FORMAT_DOUBLE + "fw-bytes" MPV_FORMAT_INT64 Other fields (might be changed or removed in the future): diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst index d19d9a6db6..12c3ec8cdf 100644 --- a/DOCS/man/mpv.rst +++ b/DOCS/man/mpv.rst @@ -683,8 +683,10 @@ listed. (``drop-frame-count`` property.) - Cache state, e.g. ``Cache: 2s+134KB``. Visible if the stream cache is enabled. The first value shows the amount of video buffered in the demuxer in seconds, - the second value shows *additional* data buffered in the stream cache in - kilobytes. (``demuxer-cache-duration`` and ``cache-used`` properties.) + the second value shows the sum of the demuxer forward cache size and the + *additional* data buffered in the stream cache in kilobytes. + (``demuxer-cache-duration``, ``demuxer-cache-state``, ``cache-used`` + properties.) PROTOCOLS diff --git a/player/osd.c b/player/osd.c index 9477dd3f38..e9fda355c4 100644 --- a/player/osd.c +++ b/player/osd.c @@ -261,11 +261,12 @@ static void term_osd_print_status_lazy(struct MPContext *mpctx) } else { saddf(&line, "%2ds", (int)s.ts_duration); } - if (info.size > 0) { - if (info.fill >= 1024 * 1024) { - saddf(&line, "+%lldMB", (long long)(info.fill / 1024 / 1024)); + int64_t cache_size = s.fw_bytes + info.fill; + if (cache_size > 0) { + if (cache_size >= 1024 * 1024) { + saddf(&line, "+%lldMB", (long long)(cache_size / 1024 / 1024)); } else { - saddf(&line, "+%lldKB", (long long)(info.fill / 1024)); + saddf(&line, "+%lldKB", (long long)(cache_size / 1024)); } } }