Re: [vdr] vdr-1.7.15 problem with live TV [1.7.11 or older OK] [PROGRESS :) ]

2010-09-05 Thread Simon Baxter

On 05.09.2010 21:59, Simon Baxter wrote:

Looks like there are TS packets in your stream that are marked as
"scrambled", but not unscrambled by the CAM.

Do you have any CAM in your system at all?


Yes.  System has 2x TT-1501-C cards and Alphacrypt CAMS


Are the channels where this happens scrambled?

Yes


Do these channels have separate VPID and PPID?

channels.conf looks like:
ONE;T:578000:C0M64:C:6900:1305+1205=2:1405=...@4:579:606:1005:182:10:0
TV2;T:578000:C0M64:C:6900:1306+1206=2:1406=...@4:580:606:1006:182:10:0
TV3;T:578000:C0M64:C:6900:1303=2:14...@4:712:606,5601:1003:182:10:0



Does the problem go away if, instead of the above change, you
comment out the line

  (Channel->Ppid() == Channel->Vpid() || AddPid(Channel->Ppid())) &&

in cReceiver::AddPids()?





Yes - that fixes the problem

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


Re: [vdr] vdr-1.7.15 problem with live TV [1.7.11 or older OK] [PROGRESS :) ]

2010-09-05 Thread Klaus Schmidinger
On 05.09.2010 21:59, Simon Baxter wrote:
>> Looks like there are TS packets in your stream that are marked as
>> "scrambled", but not unscrambled by the CAM.
>>
>> Do you have any CAM in your system at all?
> 
> Yes.  System has 2x TT-1501-C cards and Alphacrypt CAMS
> 
>> Are the channels where this happens scrambled?
> Yes
> 
>> Do these channels have separate VPID and PPID?
> channels.conf looks like:
> ONE;T:578000:C0M64:C:6900:1305+1205=2:1405=...@4:579:606:1005:182:10:0
> TV2;T:578000:C0M64:C:6900:1306+1206=2:1406=...@4:580:606:1006:182:10:0
> TV3;T:578000:C0M64:C:6900:1303=2:14...@4:712:606,5601:1003:182:10:0
> 
> 
>> Does the problem go away if, instead of the above change, you
>> comment out the line
>>
>>   (Channel->Ppid() == Channel->Vpid() || AddPid(Channel->Ppid())) &&
>>
>> in cReceiver::AddPids()?
> 
> I can't find that in cReceiver::AddPids()
> 
> Do you mean in "bool cReceiver::SetPids(const cChannel *Channel)":
> bool cReceiver::SetPids(const cChannel *Channel)
> {
>  numPids = 0;
>  if (Channel) {
> channelID = Channel->GetChannelID();
> return AddPid(Channel->Vpid()) &&
> //(Channel->Ppid() == Channel->Vpid() ||
> AddPid(Channel->Ppid())) &&

Yes.

Klaus

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


Re: [vdr] vdr-1.7.15 problem with live TV [1.7.11 or older OK] [PROGRESS :) ]

2010-09-05 Thread Simon Baxter

Looks like there are TS packets in your stream that are marked as
"scrambled", but not unscrambled by the CAM.

Do you have any CAM in your system at all?


Yes.  System has 2x TT-1501-C cards and Alphacrypt CAMS


Are the channels where this happens scrambled?

Yes


Do these channels have separate VPID and PPID?

channels.conf looks like:
ONE;T:578000:C0M64:C:6900:1305+1205=2:1405=...@4:579:606:1005:182:10:0
TV2;T:578000:C0M64:C:6900:1306+1206=2:1406=...@4:580:606:1006:182:10:0
TV3;T:578000:C0M64:C:6900:1303=2:14...@4:712:606,5601:1003:182:10:0



Does the problem go away if, instead of the above change, you
comment out the line

  (Channel->Ppid() == Channel->Vpid() || AddPid(Channel->Ppid())) &&

in cReceiver::AddPids()?


I can't find that in cReceiver::AddPids()

Do you mean in "bool cReceiver::SetPids(const cChannel *Channel)":
bool cReceiver::SetPids(const cChannel *Channel)
{
 numPids = 0;
 if (Channel) {
channelID = Channel->GetChannelID();
return AddPid(Channel->Vpid()) &&
//(Channel->Ppid() == Channel->Vpid() || 
AddPid(Channel->Ppid())) &&



? 



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


Re: [vdr] vdr-1.7.15 problem with live TV [1.7.11 or older OK] [PROGRESS :) ]

2010-09-05 Thread Klaus Schmidinger
On 09/03/10 22:12, Simon Baxter wrote:
> ...
> So I've managed to get vdr-1.7.15 working just fine now, by disabling
> this scramble check in device.c.  Bit of a dirty hack!!!
> 
> 
> 
>> Here's what I changed in device.c
>>
>> void cDevice::Action(void)
>> {
>>  if (Running() && OpenDvr()) {
>> while (Running()) {
>>   // Read data from the DVR device:
>>   uchar *b = NULL;
>>   if (GetTSPacket(b)) {
>>  if (b) {
>> int Pid = TsPid(b);
>> // Check whether the TS packets are scrambled:
>> bool DetachReceivers = false;
>> bool DescramblingOk = false;
>> int CamSlotNumber = 0;
>> if (startScrambleDetection) {
>>   cCamSlot *cs = CamSlot();
>>CamSlotNumber = cs ? cs->SlotNumber() : 0;
>> //if (CamSlotNumber) {
>> //   bool Scrambled = b[3] & TS_SCRAMBLING_CONTROL;
>> //   int t = time(NULL) - startScrambleDetection;
>> //   if (Scrambled) {
>> //  if (t > TS_SCRAMBLING_TIMEOUT)
>> // DetachReceivers = true;
>> //  }
>> //   else if (t > TS_SCRAMBLING_TIME_OK) {
>> //  DescramblingOk = true;
>> //  startScrambleDetection = 0;
>> //  }
>> //   }
>> }
>> // Distribute the packet to all attached receivers:
>> Lock();

Looks like there are TS packets in your stream that are marked as
"scrambled", but not unscrambled by the CAM.

Do you have any CAM in your system at all?

Are the channels where this happens scrambled?

Do these channels have separate VPID and PPID?

Does the problem go away if, instead of the above change, you
comment out the line

   (Channel->Ppid() == Channel->Vpid() || AddPid(Channel->Ppid())) &&

in cReceiver::AddPids()?

Klaus

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


Re: [vdr] vdr-1.7.15 problem with live TV [1.7.11 or older OK] [PROGRESS :) ]

2010-09-03 Thread Simon Baxter

 // Check whether the TS packets are scrambled:

Maybe some packets have the TS_SCRAMBLING_CONTROL bits set here.
This could be caused by recording the PCR packets since version 1.7.12.
To debug this, just disable this check, and/or put in some debug 
printouts.




Thanks Klaus

I've commented out the below section in device.c, and I now get continuous 
video, but some video skips and lots of:
Sep  3 21:36:29 freddy vdr: [31301] cVideoRepacker: operating in MPEG1/2 
mode
Sep  3 21:36:29 freddy vdr: [31301] cVideoRepacker: switching to MPEG1/2 
mode
Sep  3 21:36:29 freddy vdr: [31301] cVideoRepacker: operating in MPEG1/2 
mode


This cVideoRepacker problem has also been fixed with the attached patch.

So I've managed to get vdr-1.7.15 working just fine now, by disabling this 
scramble check in device.c.  Bit of a dirty hack!!!





Here's what I changed in device.c

void cDevice::Action(void)
{
 if (Running() && OpenDvr()) {
while (Running()) {
  // Read data from the DVR device:
  uchar *b = NULL;
  if (GetTSPacket(b)) {
 if (b) {
int Pid = TsPid(b);
// Check whether the TS packets are scrambled:
bool DetachReceivers = false;
bool DescramblingOk = false;
int CamSlotNumber = 0;
if (startScrambleDetection) {
  cCamSlot *cs = CamSlot();
   CamSlotNumber = cs ? cs->SlotNumber() : 0;
//if (CamSlotNumber) {
//   bool Scrambled = b[3] & TS_SCRAMBLING_CONTROL;
//   int t = time(NULL) - startScrambleDetection;
//   if (Scrambled) {
//  if (t > TS_SCRAMBLING_TIMEOUT)
// DetachReceivers = true;
//  }
//   else if (t > TS_SCRAMBLING_TIME_OK) {
//  DescramblingOk = true;
//  startScrambleDetection = 0;
//  }
//   }
}
// Distribute the packet to all attached receivers:
Lock();


Any ideas?

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



vdr-xine-0.9.3-1.7.12.diff
Description: Binary data
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr