mpv/player
wm4 12d1404b04 player: make various commands for managing external tracks abortable
Until now, they could be aborted only by ending playback, and calling
mpv_abort_async_command didn't do anything.

This requires furthering the mess how playback abort is done. The main
reason why mp_cancel exists at all is to avoid that a "frozen" demuxer
(blocked on network I/O or whatever) cannot freeze the core. The core
should always get its way. Previously, there was a single mp_cancel
handle, that could be signaled, and all demuxers would unfreeze. With
external files, we might want to abort loading of a certain external
file, which automatically means they need a separate mp_cancel. So give
every demuxer its own mp_cancel, and "slave" it to whatever parent
mp_cancel handles aborting.

Since the mpv demuxer API conflates creating the demuxer and reading the
file headers, mp_cancel strictly need to be created before the demuxer
is created (or we couldn't abort loading). Although we give every
demuxer its own mp_cancel (as "enforced" by cancel_and_free_demuxer),
it's still rather messy to create/destroy it along with the demuxer.
2018-05-24 19:56:35 +02:00
..
javascript js: use new hooks API (match f60826c3) 2018-04-07 16:02:20 -07:00
lua lua: expose mpv_abort_async_command() 2018-05-24 19:56:34 +02:00
audio.c build: make encoding mode non-optional 2018-05-03 01:08:44 +03:00
client.c misc: move some helper code from client.c 2018-05-24 19:56:34 +02:00
client.h command: add infrastructure for async commands 2018-05-24 19:56:34 +02:00
command.c player: make various commands for managing external tracks abortable 2018-05-24 19:56:35 +02:00
command.h command: add a way to abort asynchronous commands 2018-05-24 19:56:34 +02:00
configfiles.c player: silence config file loading message on resuming 2018-01-13 03:26:45 -08:00
core.h player: make various commands for managing external tracks abortable 2018-05-24 19:56:35 +02:00
external_files.c player: make track language matching case insensitive 2017-12-23 15:14:13 -07:00
external_files.h external_files: change license to LGPL 2017-06-20 14:22:10 +02:00
javascript.c js: use new hooks API (match f60826c3) 2018-04-07 16:02:20 -07:00
loadfile.c player: make various commands for managing external tracks abortable 2018-05-24 19:56:35 +02:00
lua.c lua: expose mpv_abort_async_command() 2018-05-24 19:56:34 +02:00
main.c misc: move mp_cancel from stream.c to thread_tools.c 2018-05-24 19:56:35 +02:00
misc.c player: use canonical playback time for video refreshes 2018-05-24 19:56:34 +02:00
osd.c build: make encoding mode non-optional 2018-05-03 01:08:44 +03:00
playloop.c player: don't reset last_seek_pts on playback state reset 2018-05-24 19:56:34 +02:00
screenshot.c command: add a way to abort asynchronous commands 2018-05-24 19:56:34 +02:00
screenshot.h command: move screenshot command stubs to screenshot.c 2018-05-24 19:56:34 +02:00
scripting.c scripting: change when/how player waits for scripts being loaded 2018-04-18 01:17:41 +03:00
sub.c video: make decoder wrapper a filter 2018-01-30 03:10:27 -08:00
video.c video: trust container FPS early on if possible 2018-05-24 19:56:34 +02:00