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