diff options
-rw-r--r-- | DOCS/man/input.rst | 4 | ||||
-rw-r--r-- | DOCS/man/mpv.rst | 6 | ||||
-rw-r--r-- | 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)); } } } |