mpv/stream
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
..
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.c stream: rearrange open functions 2019-09-29 00:46:54 +02:00
stream.h demux: restore some of the DVD/BD/CDDA interaction layers 2019-10-03 00:22:18 +02:00
stream_avdevice.c demux, stream: rip out the classic stream cache 2018-08-31 12:55:22 +02:00
stream_bluray.c demux: restore some of the DVD/BD/CDDA interaction layers 2019-10-03 00:22:18 +02:00
stream_cb.c stream_cb: add cancel_fn callback 2019-09-27 13:00:45 -07:00
stream_cdda.c demux: restore some of the DVD/BD/CDDA interaction layers 2019-10-03 00:22:18 +02:00
stream_concat.c stream: rearrange open functions 2019-09-29 00:46:54 +02:00
stream_dvb.c stream_dvb: Remove now replaced stream-control code for good. 2019-10-02 01:25:45 +02:00
stream_dvdnav.c demux: restore some of the DVD/BD/CDDA interaction layers 2019-10-03 00:22:18 +02: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: remove unnecessary short write logic 2019-09-14 13:00:10 +02:00
stream_lavf.c stream_lavf: add support for gopher 2019-09-29 14:27:00 +02:00
stream_libarchive.c stream_libarchive: Always use LC_CTYPE_MASK for libarchive 2019-09-21 12:53:47 +02:00
stream_libarchive.h stream_libarchive: Fix locale includes on macOS 2017-12-03 21:54:12 +01:00
stream_memory.c stream: rearrange open functions 2019-09-29 00:46:54 +02: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_smb: remove unnecessary short write logic 2019-09-14 13:00:43 +02:00