summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authormosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-02-01 10:58:50 +0000
committermosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-02-01 10:58:50 +0000
commitb5b742579514a34ff945dde718624ede7adcd3a1 (patch)
treef15f6c1b355dfc806d88733d451427adf978923f /libmpdemux/demux_mkv.c
parentfe6034b159fe25e5a882d9b53dcfb2d1fa65eed2 (diff)
downloadmpv-b5b742579514a34ff945dde718624ede7adcd3a1.tar.bz2
mpv-b5b742579514a34ff945dde718624ede7adcd3a1.tar.xz
Do not open more than one audio/video/subtitle stream at the same time.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11902 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c35
1 files changed, 5 insertions, 30 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index da7071880a..91e14d6b36 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -1944,23 +1944,13 @@ demux_mkv_open (demuxer_t *demuxer)
track = demux_mkv_find_track_by_num (mkv_d, demuxer->video->id,
MATROSKA_TRACK_VIDEO);
- if (track)
- {
- for (i=0; i < mkv_d->num_tracks; i++)
- if (mkv_d->tracks[i]->type == MATROSKA_TRACK_VIDEO)
- {
- int def = (mkv_d->tracks[i] == track);
- if (demux_mkv_open_video (demuxer, mkv_d->tracks[i]) && def)
- demuxer->video->id = -2;
- else if (def)
+ if (track && !demux_mkv_open_video (demuxer, track))
{
mp_msg (MSGT_DEMUX, MSGL_INFO,
"[mkv] Will play video track %u\n", track->tnum);
demuxer->video->id = track->tnum;
demuxer->video->sh = demuxer->v_streams[track->tnum];
}
- }
- }
else
{
mp_msg (MSGT_DEMUX, MSGL_INFO, "[mkv] No video track found/wanted.\n");
@@ -2000,23 +1990,13 @@ demux_mkv_open (demuxer_t *demuxer)
track = demux_mkv_find_track_by_num (mkv_d, demuxer->audio->id,
MATROSKA_TRACK_AUDIO);
- if (track)
- {
- for (i=0; i < mkv_d->num_tracks; i++)
- if (mkv_d->tracks[i]->type == MATROSKA_TRACK_AUDIO)
- {
- int def = (mkv_d->tracks[i] == track);
- if (demux_mkv_open_audio (demuxer, mkv_d->tracks[i]) && def)
- demuxer->audio->id = -2;
- else if (def)
+ if (track && !demux_mkv_open_audio (demuxer, track))
{
mp_msg (MSGT_DEMUX, MSGL_INFO,
"[mkv] Will play audio track %u\n", track->tnum);
demuxer->audio->id = track->tnum;
demuxer->audio->sh = demuxer->a_streams[track->tnum];
}
- }
- }
else
{
mp_msg (MSGT_DEMUX, MSGL_INFO, "[mkv] No audio track found/wanted.\n");
@@ -2033,19 +2013,14 @@ demux_mkv_open (demuxer_t *demuxer)
track = demux_mkv_find_track_by_language (mkv_d, dvdsub_lang,
MATROSKA_TRACK_SUBTITLE);
- for (i=0; i < mkv_d->num_tracks; i++)
- if (mkv_d->tracks[i]->type == MATROSKA_TRACK_SUBTITLE)
- {
- int def = (mkv_d->tracks[i] == track);
- if (demux_mkv_open_sub (demuxer, mkv_d->tracks[i]) && def)
- demuxer->sub->id = -2;
- else if (def)
+ if (track && !demux_mkv_open_sub (demuxer, track))
{
mp_msg (MSGT_DEMUX, MSGL_INFO,
"[mkv] Will display subtitle track %u\n", track->tnum);
demuxer->sub->id = track->tnum;
}
- }
+ else
+ demuxer->sub->id = -2;
if (mkv_d->chapters)
{