summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authormosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-21 06:50:08 +0000
committermosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-21 06:50:08 +0000
commitd8500a1a3bb20842102c71154dc5ce86ab7aab39 (patch)
tree13fae85f180d4843b9afafe60285e017b66c3288 /libmpdemux/demux_mkv.c
parentf6c5a0788c45f34964961111a2c674462ab5c494 (diff)
downloadmpv-d8500a1a3bb20842102c71154dc5ce86ab7aab39.tar.bz2
mpv-d8500a1a3bb20842102c71154dc5ce86ab7aab39.tar.xz
Do not switch to audio tracks whose codec private data differs from the main audio track's as this will most likely result in messed up audio output. Patch by Michael Behrisch <list () behrisch ! de>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15534 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index b0b7baf196..bf97e3a414 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -3305,6 +3305,8 @@ demux_mkv_control (demuxer_t *demuxer, int cmd, void *arg)
track = mkv_d->tracks[(idx+i)%num];
if ((track->type == MATROSKA_TRACK_AUDIO) &&
!strcmp(track->codec_id, otrack->codec_id) &&
+ (track->private_size == otrack->private_size) &&
+ !memcmp(track->private_data, otrack->private_data, track->private_size) &&
(track->a_channels == otrack->a_channels) &&
(track->a_bps == otrack->a_bps) &&
(track->a_sfreq == otrack->a_sfreq)) {
@@ -3315,6 +3317,8 @@ demux_mkv_control (demuxer_t *demuxer, int cmd, void *arg)
track = demux_mkv_find_track_by_num (mkv_d, *((int*)arg), MATROSKA_TRACK_AUDIO);
if (track == NULL ||
strcmp (track->codec_id, otrack->codec_id) ||
+ (track->private_size != otrack->private_size) ||
+ memcmp(track->private_data, otrack->private_data, track->private_size) ||
track->a_channels != otrack->a_channels ||
track->a_bps != otrack->a_bps ||
track->a_sfreq != otrack->a_sfreq)