1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-21 10:51:51 +00:00
mpv/stream
wm4 c59ca06a0f stream_file: cache file size
Some cache logic in demux.c queries the raw byte stream size on every
packet read. This is because it reports the value to the user. (It has
to be polled like this because there is no change notification in most
underlying I/O APIs, and also the user can't just block on the demuxer
thread to update it explicitly.)

This causes a very high number of get_size calls with low packet sizes,
so cache the size, and update it on every read. Reads only happen
approximately all 64KB read with default settings, which is way less
frequent than every packet in such extreme cases.

In theory, this could in theory cause problems in some cases. Actually
this is whole commit complete non-sense, because why micro-optimize for
broken cases like patent troll codecs. I don't need to justify it
anyway.

As a minor detail, off_t is actually specified as signed, so the off_t
cast is never needed.
2020-02-14 16:07:13 +01: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 stream_cdda: fix operation 2020-02-02 02:15:51 +01:00
stream_concat.c stream_concat, stream_memory: more stream_origin stuff 2019-12-23 11:03:44 +01:00
stream_dvb.c stream_dvb: Remove implicit fallthroughs and consistify debug messages. 2019-12-28 19:16:07 +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: cache file size 2020-02-14 16:07:13 +01:00
stream_lavf.c stream_lavf: remove version from user agent 2020-01-26 14:24:47 +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_smb.c stream, demux: redo origin policy thing 2019-12-20 13:00:39 +01:00
stream.c stream, demux: redo origin policy thing 2019-12-20 13:00:39 +01:00
stream.h stream, demux: redo origin policy thing 2019-12-20 13:00:39 +01:00