diff options
author | wm4 <wm4@nowhere> | 2016-01-18 18:34:44 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-01-18 18:43:55 +0100 |
commit | 46bcdb7039cdf146966075f268c68b0fcee5ebbf (patch) | |
tree | d2af1617afd4c4b2999500f29a6ad5730d371c12 /player/loadfile.c | |
parent | 5986861c9cbe33509b9a18ad048bbc0de7ba8dbe (diff) | |
download | mpv-46bcdb7039cdf146966075f268c68b0fcee5ebbf.tar.bz2 mpv-46bcdb7039cdf146966075f268c68b0fcee5ebbf.tar.xz |
demux: disable stream cache if no tracks are selected
Slightly helps with timeline stuff, like EDL. There is no need to keep
network (or even just disk I/O) busy for all segments at the same time,
because 1. the data won't be needed any time soon, and 2. will probably
be discarded anyway if the stream is seeked when segment is resumed.
Partially fixes #2692.
Diffstat (limited to 'player/loadfile.c')
-rw-r--r-- | player/loadfile.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/player/loadfile.c b/player/loadfile.c index 7a33fd7478..7d5a5f847d 100644 --- a/player/loadfile.c +++ b/player/loadfile.c @@ -312,7 +312,10 @@ bool timeline_switch_to_time(struct MPContext *mpctx, double pts) if (mpctx->demuxer) { demux_stop_thread(mpctx->demuxer); - demux_flush(mpctx->demuxer); + for (int i = 0; i < demux_get_num_stream(mpctx->demuxer); i++) { + struct sh_stream *sh = demux_get_stream(mpctx->demuxer, i); + demuxer_select_track(mpctx->demuxer, sh, false); + } } mpctx->demuxer = n->source; |