changeset 15533:ddf15d233d58

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>
author mosu
date Sat, 21 May 2005 06:50:08 +0000
parents f05963f1dff6
children 77c0e983c155
files libmpdemux/demux_mkv.c
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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)