From ee653b8a26dcd7b89de046fa6a13baa1c6ca7c27 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 20 Feb 2015 22:08:02 +0100 Subject: demux: timeline: honor quit requests --- demux/demux_mkv_timeline.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'demux/demux_mkv_timeline.c') diff --git a/demux/demux_mkv_timeline.c b/demux/demux_mkv_timeline.c index 71f5b16031..06dcfbe296 100644 --- a/demux/demux_mkv_timeline.c +++ b/demux/demux_mkv_timeline.c @@ -47,6 +47,7 @@ struct tl_ctx { struct mp_log *log; struct mpv_global *global; + struct timeline *tl; struct demuxer *demuxer; @@ -174,7 +175,11 @@ static bool check_file_seg(struct tl_ctx *ctx, struct demuxer ***sources, .matroska_was_valid = &was_valid, .disable_cache = true, }; - struct demuxer *d = demux_open_url(filename, ¶ms, NULL, ctx->global); + struct mp_cancel *cancel = ctx->tl->cancel; + if (mp_cancel_test(cancel)) + return false; + + struct demuxer *d = demux_open_url(filename, ¶ms, cancel, ctx->global); if (!d) return false; @@ -212,7 +217,7 @@ static bool check_file_seg(struct tl_ctx *ctx, struct demuxer ***sources, { free_demuxer_and_stream(d); params.disable_cache = false; - d = demux_open_url(filename, ¶ms, NULL, ctx->global); + d = demux_open_url(filename, ¶ms, cancel, ctx->global); if (!d) continue; } @@ -518,6 +523,7 @@ void build_ordered_chapter_timeline(struct timeline *tl) *ctx = (struct tl_ctx){ .log = tl->log, .global = tl->global, + .tl = tl, .demuxer = demuxer, }; -- cgit v1.2.3