# HG changeset patch # User mosu # Date 1116658208 0 # Node ID ddf15d233d5834e322a0ac3827cb1d66619ed81b # Parent f05963f1dff68b4399400f937abfc5463ff0e0a3 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 diff -r f05963f1dff6 -r ddf15d233d58 libmpdemux/demux_mkv.c --- a/libmpdemux/demux_mkv.c Fri May 20 23:22:54 2005 +0000 +++ b/libmpdemux/demux_mkv.c Sat May 21 06:50:08 2005 +0000 @@ -3305,6 +3305,8 @@ 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 @@ 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)