[vdr] vdr-1.7.15 problem with live TV [1.7.11 or older OK]

Simon Baxter linuxtv at nzbaxters.com
Fri Sep 3 11:40:29 CEST 2010


>>  // 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


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? 




More information about the vdr mailing list