From d8500a1a3bb20842102c71154dc5ce86ab7aab39 Mon Sep 17 00:00:00 2001 From: mosu Date: Sat, 21 May 2005 06:50:08 +0000 Subject: 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 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15534 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_mkv.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libmpdemux/demux_mkv.c') 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) -- cgit v1.2.3