summaryrefslogtreecommitdiffstats
path: root/common/playlist.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2018-05-18 22:19:10 +0200
committerwm4 <wm4@nowhere>2018-05-24 19:56:35 +0200
commit76dc5d9aa92f5c91c728004214f7b08c3a85a5f6 (patch)
tree5e7514e6376067c98645b921eb698381aa496b0b /common/playlist.c
parent12d1404b04e90f5357882e5c1048d92305248cb9 (diff)
downloadmpv-76dc5d9aa92f5c91c728004214f7b08c3a85a5f6.tar.bz2
mpv-76dc5d9aa92f5c91c728004214f7b08c3a85a5f6.tar.xz
command: make loadlist command async and abortable
Don't allow it to freeze everything when loading a playlist from network (although you definitely shouldn't do that, but whatever). This also affects the really obscure --ordered-chapters-files option. The --playlist option on the other hand has no choice but to freeze the shit, because there's no concept of aborting the player during command line parsing.
Diffstat (limited to 'common/playlist.c')
-rw-r--r--common/playlist.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/common/playlist.c b/common/playlist.c
index b2b297d671..5504b185bc 100644
--- a/common/playlist.c
+++ b/common/playlist.c
@@ -275,13 +275,14 @@ struct playlist_entry *playlist_entry_from_index(struct playlist *pl, int index)
}
}
-struct playlist *playlist_parse_file(const char *file, struct mpv_global *global)
+struct playlist *playlist_parse_file(const char *file, struct mp_cancel *cancel,
+ struct mpv_global *global)
{
struct mp_log *log = mp_log_new(NULL, global->log, "!playlist_parser");
mp_verbose(log, "Parsing playlist file %s...\n", file);
struct demuxer_params p = {.force_format = "playlist"};
- struct demuxer *d = demux_open_url(file, &p, NULL, global);
+ struct demuxer *d = demux_open_url(file, &p, cancel, global);
if (!d) {
talloc_free(log);
return NULL;