Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] AC3overDVB and multiple mp2 audio streams
Hi,
yesterday i tried to play a self-burned dvd with a converted vdr movie,
this movie has as first audio a DD stream, one german (second) and one
englisch (third) stream. When i disable ac3overdvb in the setup of vdr,
i could here a downsampled DD stream and the other two can't be heared,
if ac3overdvb is enabled i could only hear the DD audio and not the two
mp2 audio streams.
I found the problem is in the ac3overdvb patch. With the following patch
you can hear all 3 audio streams, if ac3overdvb is disabled. If
ac3overdvb is enabled you also hear only the first DD stream, i didn't
find where the problem is :(
The patch also work if ac3overdvb is enabled and you have a dvd with two
mp2 audios and no DD audio.
I toggle between the audio-streams by pressing key number 1 on keyboard
or remote.
following SW is tested:
linux-dvb.2003-11-08
vdr-1.2.6
ac3overdvbpatch
aio-patch
vdr-dvd-0.3.4-rc6 and rc10
and some other plugins
Gerald
diff -uN vdr-1.2.6-ac3-elchi-unpatched-alt/dvbdevice.c vdr-1.2.6-ac3-elchi-unpatched/dvbdevice.c
--- vdr-1.2.6-ac3-elchi-unpatched-alt/dvbdevice.c 2003-11-21 22:55:34.000000000 +0100
+++ vdr-1.2.6-ac3-elchi-unpatched/dvbdevice.c 2003-11-22 00:14:05.000000000 +0100
@@ -778,10 +778,10 @@
}
}
-static uchar trackId[] = { 0xC0, 0xC1, 0xBD };
-static bool trackDigital[] = { false,false,true };
-static const char *trackNames[] = { "Audio 1","Audio 2","Digital Audio" };
-static const char *tracks[4];
+static uchar trackId[] = { 0xC0, 0xC1, 0xC2, 0xBD };
+static bool trackDigital[] = { false,false,false,true };
+static const char *trackNames[] = { "Audio 1","Audio 2","Audio 3","Digital Audio" };
+static const char *tracks[5];
int cDvbDevice::ReplayNumAudioTracks(void) const
{
@@ -1234,7 +1234,7 @@
audioTrack=0xC0; trackSelected=false; skipMode=true; delayedUnmute=0;
// we use ruleset 0 for normal replay
SetRuleR(0xE0,0xEF,prPass,0); // pass all video streams
- SetRule (0xC0, prPass,0); // pass first audio stream
+ SetRuleR(0xC0,0xC2,prPass,0); // pass mp2 audio stream
SetRule (0xBD, prAct1,0); // snoop for digital audio
SetRule (0xBE, prPass,0); // pass padding stream
// we use ruleset 1 for trickmodes
Home |
Main Index |
Thread Index