diff options
author | mosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-05-21 06:50:08 +0000 |
---|---|---|
committer | mosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-05-21 06:50:08 +0000 |
commit | d8500a1a3bb20842102c71154dc5ce86ab7aab39 (patch) | |
tree | 13fae85f180d4843b9afafe60285e017b66c3288 /libmpdemux/demux_mkv.c | |
parent | f6c5a0788c45f34964961111a2c674462ab5c494 (diff) | |
download | mpv-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.c | 4 |
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) |