1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-01 04:12:25 +00:00
mpv/stream
wm4 40c8df8a54 stream: actually drop unneeded buffer
The buffer can be larger than the normal size when "peeking" is used
(such as done with some file formats, where a large number of bytes masy
need to be "peeked" at the beginning, because FFmpeg). Once normal
operation resumes, it's supposed to free this buffer again. Apparently
this didn't happen as intended, because normal reading did have no way
to discard back buffer before/while resizing the buffer. There's only a
path for discarding the back buffer when actually reading.

It seems like this unfortunately needs 2 code paths for discarding old
data. Just put it into stream_resize_buffer(), where it's rather
non-tricky (discarding can be done by adjusting the copy offset when
moving data to the new allocation). The function now drops old data if
it doesn't fit into the allocation. The caller must ensure that the new
size is sufficient; the function signature changes only so the size of
the implicitly guaranteed kept part can be checked with assert().
2020-04-10 12:37:12 +02:00
..
cookies.c cookies: change license to LGPL 2017-05-11 07:29:01 +02:00
cookies.h cookies: change license to LGPL 2017-05-11 07:29:01 +02:00
dvb_tune.c dvb: Add multiple frontends support: MAX_FRONTENDS now 8. 2017-12-16 23:24:55 -08:00
dvb_tune.h dvb: Add multiple frontends support: MAX_FRONTENDS now 8. 2017-12-16 23:24:55 -08:00
dvbin.h stream_dvb: Remove now replaced stream-control code for good. 2019-10-02 01:25:45 +02:00
stream_avdevice.c stream, demux: redo origin policy thing 2019-12-20 13:00:39 +01:00
stream_bluray.c stream, demux: redo origin policy thing 2019-12-20 13:00:39 +01:00
stream_cb.c stream, demux: redo origin policy thing 2019-12-20 13:00:39 +01:00
stream_cdda.c options: change option macros and all option declarations 2020-03-18 19:52:01 +01:00
stream_concat.c stream_concat, stream_memory: more stream_origin stuff 2019-12-23 11:03:44 +01:00
stream_dvb.c options: change option macros and all option declarations 2020-03-18 19:52:01 +01:00
stream_dvdnav.c stream, demux: redo origin policy thing 2019-12-20 13:00:39 +01:00
stream_edl.c demux, stream: rip out the classic stream cache 2018-08-31 12:55:22 +02:00
stream_file.c stream_file: mark fd protocols as "unsafe" 2020-03-08 19:38:10 +01:00
stream_lavf.c options: change option macros and all option declarations 2020-03-18 19:52:01 +01:00
stream_libarchive.c stream_libarchive: disable tar support 2020-02-02 17:35:57 +01:00
stream_libarchive.h libarchive: some shitty hack to make opening slightly faster 2020-01-04 19:56:09 +01:00
stream_memory.c stream_concat, stream_memory: more stream_origin stuff 2019-12-23 11:03:44 +01:00
stream_mf.c demux, stream: rip out the classic stream cache 2018-08-31 12:55:22 +02:00
stream_null.c stream_null: change license to LGPL 2017-05-08 12:45:50 +02:00
stream.c stream: actually drop unneeded buffer 2020-04-10 12:37:12 +02:00
stream.h stream: fix whitespace within comment 2020-04-10 10:50:54 +02:00