From 3a78eefc88ecb354d1415f43bbf19d57caa31918 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 22 Oct 2016 17:17:04 +0200 Subject: demux_mkv: don't recursively resolve timeline for opened reference files Instead, resolve all references and so on in the top-level timeline. --- demux/demux.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'demux/demux.c') diff --git a/demux/demux.c b/demux/demux.c index 6041ada753..5072eb9f05 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -1287,16 +1287,18 @@ static struct demuxer *open_given_type(struct mpv_global *global, demux_changed(in->d_thread, DEMUX_EVENT_ALL); demux_update(demuxer); stream_control(demuxer->stream, STREAM_CTRL_SET_READAHEAD, &(int){false}); - struct timeline *tl = timeline_load(global, log, demuxer); - if (tl) { - struct demuxer_params params2 = {0}; - params2.timeline = tl; - struct demuxer *sub = open_given_type(global, log, - &demuxer_desc_timeline, stream, - ¶ms2, DEMUX_CHECK_FORCE); - if (sub) - return sub; - timeline_destroy(tl); + if (!(params && params->disable_timeline)) { + struct timeline *tl = timeline_load(global, log, demuxer); + if (tl) { + struct demuxer_params params2 = {0}; + params2.timeline = tl; + struct demuxer *sub = + open_given_type(global, log, &demuxer_desc_timeline, stream, + ¶ms2, DEMUX_CHECK_FORCE); + if (sub) + return sub; + timeline_destroy(tl); + } } return demuxer; } -- cgit v1.2.3