1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-16 12:02:39 +00:00
mpv/options
wm4 f37f4de849 stream: turn into a ring buffer, make size configurable
In some corner cases (see #6802), it can be beneficial to use a larger
stream buffer size. Use this as argument to rewrite everything for no
reason.

Turn stream.c itself into a ring buffer, with configurable size. The
latter would have been easily achievable with minimal changes, and the
ring buffer is the hard part. There is no reason to have a ring buffer
at all, except possibly if ffmpeg don't fix their awful mp4 demuxer, and
some subtle issues with demux_mkv.c wanting to seek back by small
offsets (the latter was handled with small stream_peek() calls, which
are unneeded now).

In addition, this turns small forward seeks into reads (where data is
simply skipped). Before this commit, only stream_skip() did this (which
also mean that stream_skip() simply calls stream_seek() now).

Replace all stream_peek() calls with something else (usually
stream_read_peek()). The function was a problem, because it returned a
pointer to the internal buffer, which is now a ring buffer with
wrapping. The new function just copies the data into a buffer, and in
some cases requires callers to dynamically allocate memory. (The most
common case, demux_lavf.c, required a separate buffer allocation anyway
due to FFmpeg "idiosyncrasies".) This is the bulk of the demuxer_*
changes.

I'm not happy with this. There still isn't a good reason why there
should be a ring buffer, that is complex, and most of the time just
wastes half of the available memory. Maybe another rewrite soon.

It also contains bugs; you're an alpha tester now.
2019-11-06 21:36:02 +01:00
..
m_config.c m_config: log applying profiles 2019-11-01 01:29:44 +01:00
m_config.h m_config: remove m_config_create_shadow 2019-09-19 20:37:05 +02:00
m_option.c m_option: remove an unused function 2019-10-31 17:42:41 +01:00
m_option.h m_option: remove an unused function 2019-10-31 17:42:41 +01:00
m_property.c command: move property multiply code to m_property.c 2018-03-26 19:47:08 +02:00
m_property.h command: move property multiply code to m_property.c 2018-03-26 19:47:08 +02:00
options.c stream: turn into a ring buffer, make size configurable 2019-11-06 21:36:02 +01:00
options.h stream: turn into a ring buffer, make size configurable 2019-11-06 21:36:02 +01:00
parse_commandline.c Remove optical disc fancification layers 2019-09-13 17:31:59 +02:00
parse_commandline.h player: get rid of mpv_global.opts 2018-05-24 19:56:35 +02:00
parse_configfile.c options: change license of most files to LGPL (except options.c/.h) 2017-06-12 20:55:17 +02:00
parse_configfile.h options: change license of most files to LGPL (except options.c/.h) 2017-06-12 20:55:17 +02:00
path.c options/path: fix url detection per RFC3986 2019-04-05 20:48:24 +03:00
path.h path: don't access global option struct 2018-05-24 19:56:35 +02:00