Re: [vdr] Blank screen when switching channels on same transponderwithDpid

2006-08-12 Thread Klaus Schmidinger

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

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


RE: [vdr] Blank screen when switching channels on same transponderwithDpid

2006-08-11 Thread Tomas Berglund
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 ;-) 

@@ -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))) {





> -Ursprungligt meddelande-
> Från: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] För Tomas Berglund
> Skickat: den 11 augusti 2006 01:38
> Till: 'VDR Mailing List'
> Ämne: RE: [vdr] Blank screen when switching channels on same 
> transponderwithDpid
> 
> 
> Just an idea... In dvbdevice.c line 863, additional Dpid(0) 
> is set. When I tune between ch1 and ch2 twice the screen goes 
> blank. Can
> it be because Dpid(0) is never deleted in DelPid() ??
> 
> In the log Dpid(0) 4614 is set but never deleted. 
> Attached log below: 
> 
> 
> Aug 11 01:30:37 htpc vdr: [4829] switching to channel 1
> Aug 11 01:30:37 htpc vdr: [4829] 0 D  4358 1 4102 1 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 E 0 0 4102 1 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 D 0 0 4102 1 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 E 0 00 0 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 D 0 00 0 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 E 0 00 00 0 
> 7942 10 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 D 0 00 00 0 
> 7942 10 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 E 0 00 00 0
> 0 00 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 C 0 00 0 4102 1
> 0 00 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 C 0 0 4102 1 4102 1
> 0 00 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] 0 C  4358 1 4102 1 4102 1
> 0 00 0 *0 00 0
> Aug 11 01:30:37 htpc vdr: [4829] DEBUG: Set additional live 
> audio PIDs, Apid(1) 0, Dpid(0) 4614
> Aug 11 01:30:37 htpc vdr: [4829] 0 C  4358 1 4102 1 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] switching to channel 2
> Aug 11 01:31:36 htpc vdr: [4829] 0 D  4358 1 4102 1 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 E 0 0 4102 1 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 D 0 0 4102 1 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 E 0 00 0 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 D 0 00 0 4102 1 
> 7942 10 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 E 0 00 00 0 
> 7942 10 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 D 0 00 00 0 
> 7942 10 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 E 0 00 00 0
> 0 00 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 C 0 00 0 4103 1
> 0 00 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 C 0 0 4103 1 4103 1
> 0 00 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] 0 C  4359 1 4103 1 4103 1
> 0 00 0 *0 00 0
> Aug 11 01:31:36 htpc vdr: [4829] DEBUG: Set additional live 
> audio PIDs, Apid(1) 0, Dpid(0) 4615
> Aug 11 01:31:36 htpc vdr: [4829] 0 C  4359 1 4103 1 4103 1 
> 7943 10 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] switching to channel 1
> Aug 11 01:31:41 htpc vdr: [4829] 0 D  4359 1 4103 1 4103 1 
> 7943 10 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] 0 E 0 0 4103 1 4103 1 
> 7943 10 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] 0 D 0 0 4103 1 4103 1 
> 7943 10 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] 0 E 0 00 0 4103 1 
> 7943 10 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] 0 D 0 00 0 4103 1 
> 7943 10 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] 0 E 0 00 00 0 
> 7943 10 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] 0 D 0 00 00 0 
> 7943 10 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] 0 E 0 00 00 0
> 0 00 0 *0 00 0
> Aug 11 01:31:41 htpc vdr: [4829] 0 C 0 00 0 4102 1
> 0 00 0 *0 00