diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/mplayer.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/mplayer.c b/core/mplayer.c index 684991127b..52aa34058c 100644 --- a/core/mplayer.c +++ b/core/mplayer.c @@ -443,8 +443,12 @@ static void preselect_demux_streams(struct MPContext *mpctx) { // Disable all streams, just to be sure no unwanted streams are selected. for (int n = 0; n < mpctx->num_sources; n++) { - for (int type = 0; type < STREAM_TYPE_COUNT; type++) - demuxer_switch_track(mpctx->sources[n], type, NULL); + for (int type = 0; type < STREAM_TYPE_COUNT; type++) { + struct track *track = mpctx->current_track[type]; + if (!(track && track->demuxer == mpctx->sources[n] && + demuxer_stream_is_selected(track->demuxer, track->stream))) + demuxer_switch_track(mpctx->sources[n], type, NULL); + } } for (int type = 0; type < STREAM_TYPE_COUNT; type++) { |