void SCDEVICE::LateInit(void) { DEBUGLOG("%s", __FUNCTION__); int n = CardIndex(); if (DeviceNumber() != n) ERRORLOG("CardIndex - DeviceNumber mismatch! Put DVBAPI plugin first on VDR commandline!"); softcsa = (fd_ca < 0); if (softcsa) { if (HasDecoder()) INFOLOG("Card %s is a full-featured card but no ca device found!", devId); } else if (cScDevices::ForceBudget(n)) { INFOLOG("Budget mode forced on card %s", devId); softcsa = true; } if (softcsa) { INFOLOG("Using software decryption on card %s", devId); } }
cSatipDevice::cSatipDevice(unsigned int indexP) : deviceIndexM(indexP), isPacketDeliveredM(false), isOpenDvrM(false), deviceNameM(*cString::sprintf("%s %d", *DeviceType(), deviceIndexM)), channelM(), createdM(0), mutexM() { unsigned int bufsize = (unsigned int)SATIP_BUFFER_SIZE; bufsize -= (bufsize % TS_SIZE); info("Creating device CardIndex=%d DeviceNumber=%d [device %u]", CardIndex(), DeviceNumber(), deviceIndexM); tsBufferM = new cRingBufferLinear(bufsize + 1, TS_SIZE, false, *cString::sprintf("SATIP#%d TS", deviceIndexM)); if (tsBufferM) { tsBufferM->SetTimeouts(10, 10); tsBufferM->SetIoThrottle(); pTunerM = new cSatipTuner(*this, tsBufferM->Free()); } // Start section handler pSectionFilterHandlerM = new cSatipSectionFilterHandler(deviceIndexM, bufsize + 1); StartSectionHandler(); }