1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-29 03:02:53 +00:00
mpv/player
wm4 023b5964b0 demux, command: add a third stream recording mechanism
That's right, and it's probably not the end of it. I'll just claim that
I have no idea how to create a proper user interface for this, so I'm
creating multiple partially-orthogonal, of which some may work better in
each of its special use cases.

Until now, there was --record-file. You get relatively good control
about what is muxed, and it can use the cache. But it sucks that it's
bound to playback. If you pause while it's set, muxing stops. If you
seek while it's set, the output will be sort-of trashed, and that's by
design.

Then --stream-record was added. This is a bit better (especially for
live streams), but you can't really control well when muxing stops or
ends. In particular, it can't use the cache (it just dumps whatever the
underlying demuxer returns).

Today, the idea is that the user should just be able to select a time
range to dump to a file, and it should not affected by the user seeking
around in the cache. In addition, the stream may still be running, so
there's some need to continue dumping, even if it's redundant to
--stream-record.

One notable thing is that it uses the async command shit. Not sure
whether this is a good idea. Maybe not, but whatever. Also, a user can
always use the "async" prefix to pretend it doesn't.

Much of this was barely tested (especially the reinterleaving crap),
let's just hope it mostly works. I'm sure you can tolerate the one or
other crash?
2019-09-19 20:37:05 +02:00
..
javascript js: expose mpv_abort_async_command() (match dbe831bd) 2019-09-11 21:08:04 +03:00
lua stats.lua: add graphs for readahead time and total byte usage 2019-09-19 20:37:05 +02:00
audio.c player: ensure backward playback state is propagated on track switching 2019-09-19 20:37:05 +02:00
client.c client: fix potential mpv_cmd/async leak 2019-07-08 16:42:47 +02:00
client.h command: add infrastructure for async commands 2018-05-24 19:56:34 +02:00
command.c demux, command: add a third stream recording mechanism 2019-09-19 20:37:05 +02:00
command.h demux, command: add a third stream recording mechanism 2019-09-19 20:37:05 +02:00
configfiles.c Remove optical disc fancification layers 2019-09-13 17:31:59 +02:00
core.h demux, command: add a third stream recording mechanism 2019-09-19 20:37:05 +02:00
external_files.c external_files: add .lrc subtitle extension 2019-09-02 01:25:43 +03:00
external_files.h player: get rid of mpv_global.opts 2018-05-24 19:56:35 +02:00
javascript.c js: expose mpv_abort_async_command() (match dbe831bd) 2019-09-11 21:08:04 +03:00
loadfile.c demux, command: add a third stream recording mechanism 2019-09-19 20:37:05 +02:00
lua.c lua: expose mpv_abort_async_command() 2018-05-24 19:56:34 +02:00
main.c Implement backwards playback 2019-09-19 20:37:04 +02:00
misc.c player: fix --loop with backward playback 2019-09-19 20:37:05 +02:00
osd.c player: modify/simplify AB-loop behavior 2019-09-19 20:37:05 +02:00
playloop.c player: ensure backward playback state is propagated on track switching 2019-09-19 20:37:05 +02:00
screenshot.c screenshot: move message showing to common code 2019-09-19 20:37:05 +02:00
screenshot.h image_writer: move convert_image() to player/screenshot.c 2019-09-14 23:02:39 +02:00
scripting.c scripting: change when/how player waits for scripts being loaded 2018-04-18 01:17:41 +03:00
sub.c player: ensure backward playback state is propagated on track switching 2019-09-19 20:37:05 +02:00
video.c player: ensure backward playback state is propagated on track switching 2019-09-19 20:37:05 +02:00