diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-07-16 14:01:53 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-07-16 14:01:53 +0000 |
commit | 434cf0c9eb362a6778d60366759ed3c502f04138 (patch) | |
tree | 126a67519318742705bed1cb2aa53bc318ad0b85 /libmpdemux | |
parent | 4ab613d1a3ba6cda5c1d127e343f32506f6a9490 (diff) | |
download | mpv-434cf0c9eb362a6778d60366759ed3c502f04138.tar.bz2 mpv-434cf0c9eb362a6778d60366759ed3c502f04138.tar.xz |
Avoid crash if a non-existent audio track is selected with -aid
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23790 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_mkv.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index a18018a1a4..4eaa1891c7 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -2520,6 +2520,11 @@ demux_mkv_open (demuxer_t *demuxer) else if (demuxer->audio->id != -2) /* -2 = no audio at all */ track = demux_mkv_find_track_by_num (mkv_d, demuxer->audio->id, MATROSKA_TRACK_AUDIO); + if (track && demuxer->a_streams[track->tnum]) + { + demuxer->audio->id = track->tnum; + demuxer->audio->sh = demuxer->a_streams[track->tnum]; + } else { mp_msg (MSGT_DEMUX, MSGL_INFO, MSGTR_MPDEMUX_MKV_NoAudioTrackFound); @@ -2534,11 +2539,6 @@ demux_mkv_open (demuxer_t *demuxer) continue; if(demuxer->a_streams[track->tnum]) { - if(track && mkv_d->tracks[i] == track) - { - demuxer->audio->id = track->tnum; - demuxer->audio->sh = demuxer->a_streams[track->tnum]; - } mkv_d->last_aid++; if(mkv_d->last_aid == MAX_A_STREAMS) break; |