summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/input.rst4
-rw-r--r--DOCS/man/mpv.rst6
-rw-r--r--player/osd.c9
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));
}
}
}