1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-10 00:49:32 +00:00
mpv/demux
wm4 1c63869d0a demux: restore some of the DVD/BD/CDDA interaction layers
This partially reverts commit a9d83eac40
("Remove optical disc fancification layers").

Mostly due to the timestamp crap, this was never really going to work.
The playback layer is sensitive to timestamps, and derives the playback
time directly from the low level packet timestamps. DVD/BD works
differently, and libdvdnav/libbluray do not make it easy at all to
compensate for this. Which is why it never worked well, but not doing it
at all is even more awful.

demux_disc.c tried this and rewrote packet timestamps from low level TS
to playback time. So restore demux_disc.c, which should bring behavior
back to the old often non-working but slightly better state.

I did not revert anything that affects components above the demuxer
layer. For example, the properties for switching DVD angles or listing
disc titles are still gone. (Disc titles could be reimplemented as
editions. But not by me.)

This commit modifies the reverted code a bit; this can't be avoided,
because the internal API changed quite a bit. The old seek resync in
demux_lavf.c (which was a hack) is replaced with a hack. SEEK_FORCE and
demux_params.external_stream are new additions.

Some of this could/should be further cleaned up. If you don't want
"proper" DVD/BD support to disappear, you should probably volunteer.

Now why am I wasting my time for this? Just because some idiot users are
too lazy to rip their ever-wearing out shitty physical discs? Then why
should I not be lazy and drop support completely? They won't even be
thankful for me maintaining this horrible garbage for no compensation.
2019-10-03 00:22:18 +02:00
..
cache.c demux: add a on-disk cache 2019-09-19 20:37:05 +02:00
cache.h demux: add a on-disk cache 2019-09-19 20:37:05 +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_cue: auto-detect CUE sheet charset 2019-09-21 15:18:20 +02:00
demux_disc.c demux: restore some of the DVD/BD/CDDA interaction layers 2019-10-03 00:22:18 +02:00
demux_edl.c demux_edl: fix assertion failure on exit in obscure ytdl cases 2019-09-19 20:37:04 +02:00
demux_lavf.c demux: restore some of the DVD/BD/CDDA interaction layers 2019-10-03 00:22:18 +02:00
demux_libarchive.c demux: sort filenames naturally when playing a directory / archive 2019-09-29 01:13:00 +03: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_edl, cue, mkv: slightly nicer file format indication 2019-09-19 20:37:04 +02:00
demux_mkv.c demux_mkv: better behavior/warnings on partial files/unseekable streams 2019-10-01 21:27:25 +02:00
demux_null.c demux_null: mark as seekable 2018-01-06 14:42:22 -08:00
demux_playlist.c demux: sort filenames naturally when playing a directory / archive 2019-09-29 01:13:00 +03:00
demux_raw.c demux_raw: fix operation with demuxer cache and backward playback 2019-09-19 20:37:04 +02:00
demux_timeline.c demux: propagate streaming flag through demux_timeline 2019-09-20 17:01:35 +02:00
demux.c demux: restore some of the DVD/BD/CDDA interaction layers 2019-10-03 00:22:18 +02:00
demux.h demux: restore some of the DVD/BD/CDDA interaction layers 2019-10-03 00:22:18 +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 packet: fix theoretical UB if called on "empty" packets 2019-09-19 20:37:05 +02:00
packet.h demux: add a on-disk cache 2019-09-19 20:37:05 +02:00
stheader.h demux, demux_mkv: fix seeking in cache with large codec delay 2019-09-19 20:37:04 +02:00
timeline.c demux_edl, cue, mkv: slightly nicer file format indication 2019-09-19 20:37:04 +02:00
timeline.h demux_edl, cue, mkv: slightly nicer file format indication 2019-09-19 20:37:04 +02:00