summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-11-07 16:05:27 +0100
committerwm4 <wm4@nowhere>2019-11-07 22:53:13 +0100
commit19becc8ea911e74b5443420a8da411444f980725 (patch)
tree988baf142ea3ed3bd2dcea51bece2ca94ab2fa7d /demux
parent6487abde79684ace6e24a127d1f62febf40f0d9b (diff)
downloadmpv-19becc8ea911e74b5443420a8da411444f980725.tar.bz2
mpv-19becc8ea911e74b5443420a8da411444f980725.tar.xz
stats, demux: log byte level stream seeks
Diffstat (limited to 'demux')
-rw-r--r--demux/demux.c7
-rw-r--r--demux/demux.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/demux/demux.c b/demux/demux.c
index c6319281a0..40439b32a8 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -273,6 +273,7 @@ struct demux_internal {
int64_t slave_unbuffered_read_bytes; // value repoted from demuxer impl.
int64_t hack_unbuffered_read_bytes; // for demux_get_bytes_read_hack()
int64_t cache_unbuffered_read_bytes; // for demux_reader_state.bytes_per_second
+ int64_t byte_level_seeks; // for demux_reader_state.byte_level_seeks
};
struct timed_metadata {
@@ -3978,14 +3979,19 @@ static void update_bytes_read(struct demux_internal *in)
int64_t new = in->slave_unbuffered_read_bytes;
in->slave_unbuffered_read_bytes = 0;
+ int64_t new_seeks = 0;
+
struct stream *stream = demuxer->stream;
if (stream) {
new += stream->total_unbuffered_read_bytes;
stream->total_unbuffered_read_bytes = 0;
+ new_seeks += stream->total_stream_seeks;
+ stream->total_stream_seeks = 0;
}
in->cache_unbuffered_read_bytes += new;
in->hack_unbuffered_read_bytes += new;
+ in->byte_level_seeks += new_seeks;
}
// must be called not locked
@@ -4346,6 +4352,7 @@ void demux_get_reader_state(struct demuxer *demuxer, struct demux_reader_state *
.low_level_seeks = in->low_level_seeks,
.ts_last = in->demux_ts,
.bytes_per_second = in->bytes_per_second,
+ .byte_level_seeks = in->byte_level_seeks,
.file_cache_bytes = in->cache ? demux_cache_get_size(in->cache) : -1,
};
bool any_packets = false;
diff --git a/demux/demux.h b/demux/demux.h
index 3e3abbc84f..235744c6f7 100644
--- a/demux/demux.h
+++ b/demux/demux.h
@@ -47,6 +47,7 @@ struct demux_reader_state {
int64_t file_cache_bytes;
double seeking; // current low level seek target, or NOPTS
int low_level_seeks; // number of started low level seeks
+ uint64_t byte_level_seeks; // number of byte stream level seeks
double ts_last; // approx. timestamp of demuxer position
uint64_t bytes_per_second; // low level statistics
// Positions that can be seeked to without incurring the latency of a low