From patchwork Sat Aug 12 13:05:52 2006 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Klaus Schmidinger X-Patchwork-Id: 12372 Received: from raven.cadsoft.de ([217.7.101.211]) by www.linuxtv.org with esmtp (Exim 4.50) id 1GBtBb-0004ih-Oj for vdr@linuxtv.org; Sat, 12 Aug 2006 15:05:55 +0200 Received: from [192.168.100.10] (hawk.cadsoft.de [192.168.100.10]) by raven.cadsoft.de (8.13.3/8.13.3) with ESMTP id k7CD5svF001960 for ; Sat, 12 Aug 2006 15:05:54 +0200 Message-ID: <44DDD230.2050803@cadsoft.de> Date: Sat, 12 Aug 2006 15:05:52 +0200 From: Klaus Schmidinger Organization: CadSoft Computer GmbH User-Agent: Thunderbird 1.5.0.4 (X11/20060516) MIME-Version: 1.0 To: vdr@linuxtv.org Subject: Re: [vdr] Blank screen when switching channels on same transponderwithDpid References: <000001c6bd95$ed832710$1400a8c0@enterprise> In-Reply-To: <000001c6bd95$ed832710$1400a8c0@enterprise> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (raven.cadsoft.de [192.168.1.1]); Sat, 12 Aug 2006 15:05:55 +0200 (CEST) X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: VDR Mailing List List-Id: VDR Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Aug 2006 13:05:55 -0000 Status: O X-Status: X-Keywords: X-UID: 10403 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: 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 --- 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);