Tomas Berglund wrote: > Now I can switch channels with Dpid without problem. The following patch in cDvbDevice::SetChannelDevice fixes it. > The PRINTPIDs debug function now show adding and deleting Dpids. > > But when I select the Dolby track my kernel panics... Well.. I'm not Klaus ;-) Just tried you patch, and my system also freezed. > @@ -849,15 +857,16 @@ > > if (TurnOnLivePIDs) { > SetAudioBypass(false); > - if (!(AddPid(Channel->Ppid(), ptPcr) && AddPid(Channel->Vpid(), ptVideo) && AddPid(Channel->Apid(0), ptAudio))) { > + if (!(AddPid(Channel->Ppid(), ptPcr) && AddPid(Channel->Vpid(), ptVideo) && AddPid(Channel->Apid(0), ptAudio) && > AddPid(Channel->Dpid(0), ptDolby))) { I guess the basic problem is with your CAM, which probably only supports a very limited number of PIDs to decode at the same time. There is indeed an unsymmetry in the way VDR handles the additional live audio PIDs, which doesn't matter too much if the CAM is powerful enough to handle many PIDs. Once you switch to a different transponder the problem should be gone, since then all PIDs are cleared in the CAM. What I could suggest as a quick workaround is this: --- dvbdevice.c 2006/06/11 09:03:55 1.159 +++ dvbdevice.c 2006/08/12 12:42:12 @@ -856,7 +856,8 @@ //XXX quick workaround for additional live audio PIDs: if (ciHandler) { ciHandler->SetPid(Channel->Apid(1), true); - ciHandler->SetPid(Channel->Dpid(0), true); + if (Setup.UseDolbyDigital) + ciHandler->SetPid(Channel->Dpid(0), true); } if (IsPrimaryDevice()) AddPid(Channel->Tpid(), ptTeletext); This would at least not set the DPID if you don't use Dolby. The change you have suggested above actually sets up a PID filter in the DVB device for the DPID, which apparently causes trouble when actually trying to switch to live Dolby. I can see that this is a bit messy right now, but improving the CAM handling is the first thing I'm going to do in version 1.5... Klaus