1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-20 22:40:52 +00:00
mpv/demux
wm4 390772b58f demux_timeline: report network speed of slave connections
demux_timeline doesn't do any transport accesses itself. The slave
demuxers do this (these will actually access the stream layer and
perform e.g. network accesses). As a consequence, demux_timeline always
reported 0 bytes read, and network speed display didn't work.

Fix this by awkwardly reporting the amount of read bytes upwards. This
is not very nice, and requires explicit calls whenever the slave "might"
have read data.

Due to the way the reporting is done, it only works if the slaves do not
run demuxer threads, which makes things even less nice. (Fortunately
they don't anyway, because it would be a waste of resources.) Some
identifiers contain the word "hack" as a warning.

Some of the stupidity comes from the fact that demux.c itself resets the
stats randomly in order to calculate the bytes_per_second value, which
is useless for a slave, but of course is still done, because demux.c
itself is not aware of whether it's on the slave or top-level layer.

Unfortunately, this must do.

In theory, the demuxer thread/cache layer should be separated from
demuxer implementations. This would get rid of all the awkwardness and
nonsense. For example, the only threading involved would be the caching
layer, completely separate from demuxers themselves. It'd be the only
thing calculates speed rates for the player frontend, too (instead of
doing it for each demuxer, even if unused).
2019-09-19 20:37:04 +02:00
..
codec_tags.c codec_tags: fix wrong buffer size 2019-07-03 17:47:24 +03:00
codec_tags.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
cue.c demux: support cue sheets longer than 100 minutes 2019-04-01 23:39:08 +02:00
cue.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
demux_cue.c demux: change hack for closing subtitle files early 2019-09-19 20:37:04 +02:00
demux_edl.c demux_edl: add a special header to disable chapter generation 2019-09-19 20:37:04 +02:00
demux_lavf.c demux: slightly cleanup network speed reporting 2019-09-19 20:37:04 +02:00
demux_libarchive.c demux: change hack for closing subtitle files early 2019-09-19 20:37:04 +02:00
demux_mf.c demux: return packets directly from demuxer instead of using sh_stream 2019-09-19 20:37:04 +02:00
demux_mkv_timeline.c demux_mkv: copy attachments (fonts) from ordered chapter sources 2019-06-12 23:34:47 +03:00
demux_mkv.c demux: return packets directly from demuxer instead of using sh_stream 2019-09-19 20:37:04 +02:00
demux_null.c demux_null: mark as seekable 2018-01-06 14:42:22 -08:00
demux_playlist.c demux: change hack for closing subtitle files early 2019-09-19 20:37:04 +02:00
demux_raw.c demux: return packets directly from demuxer instead of using sh_stream 2019-09-19 20:37:04 +02:00
demux_timeline.c demux_timeline: report network speed of slave connections 2019-09-19 20:37:04 +02:00
demux.c demux_timeline: report network speed of slave connections 2019-09-19 20:37:04 +02:00
demux.h demux_timeline: report network speed of slave connections 2019-09-19 20:37:04 +02:00
ebml.c demux_mkv: adjust log verbosity levels 2018-04-29 02:21:32 +03:00
ebml.h demux_mkv: rewrite packet reading to avoid 1 memcpy() 2017-11-05 18:13:34 +01:00
matroska.h ebml, matroska.h: change license to LGPL 2017-04-21 13:34:10 +02:00
packet.c demux/packet: fix demux_packet_shorten 2018-09-30 12:32:03 +03:00
packet.h demux: return packets directly from demuxer instead of using sh_stream 2019-09-19 20:37:04 +02:00
stheader.h player: expose hearing/visual impaired flags on audio tracks 2018-08-13 19:09:44 +02:00
timeline.c demux, demux_edl: add extension for tracks sourced from separate streams 2019-09-19 20:37:04 +02:00
timeline.h demux, demux_edl: add extension for tracks sourced from separate streams 2019-09-19 20:37:04 +02:00