summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 2706f3a9ea..55b5d0f1c0 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -1223,9 +1223,13 @@ void demuxer_switch_track(struct demuxer *demuxer, enum stream_type type,
assert(!stream || stream->type == type);
int index = stream ? stream->tid : -2;
if (type == STREAM_AUDIO) {
- demux_control(demuxer, DEMUXER_CTRL_SWITCH_AUDIO, &index);
+ if (demux_control(demuxer, DEMUXER_CTRL_SWITCH_AUDIO, &index)
+ == DEMUXER_CTRL_NOTIMPL)
+ demuxer->audio->id = index;
} else if (type == STREAM_VIDEO) {
- demux_control(demuxer, DEMUXER_CTRL_SWITCH_VIDEO, &index);
+ if (demux_control(demuxer, DEMUXER_CTRL_SWITCH_VIDEO, &index)
+ == DEMUXER_CTRL_NOTIMPL)
+ demuxer->video->id = index;
} else if (type == STREAM_SUB) {
int index2 = stream ? stream->stream_index : -2;
if (demuxer->ds[type]->id != index2)