From b5b742579514a34ff945dde718624ede7adcd3a1 Mon Sep 17 00:00:00 2001 From: mosu Date: Sun, 1 Feb 2004 10:58:50 +0000 Subject: 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 --- libmpdemux/demux_mkv.c | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) (limited to 'libmpdemux/demux_mkv.c') 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) { -- cgit v1.2.3