dvbdevice_linux.cpp (kaffeine-2.0.16) | : | dvbdevice_linux.cpp (kaffeine-2.0.17) | ||
---|---|---|---|---|
skipping to change at line 1062 | skipping to change at line 1062 | |||
dvb_fe_store_parm(dvbv5_parms, DTV_ISDBT_LAYERC_FEC, toDvbFecRate (isdbTTransponder->fecRate[2])); | dvb_fe_store_parm(dvbv5_parms, DTV_ISDBT_LAYERC_FEC, toDvbFecRate (isdbTTransponder->fecRate[2])); | |||
dvb_fe_store_parm(dvbv5_parms, DTV_ISDBT_LAYERC_MODULATION, toDvb Modulation(isdbTTransponder->modulation[2])); | dvb_fe_store_parm(dvbv5_parms, DTV_ISDBT_LAYERC_MODULATION, toDvb Modulation(isdbTTransponder->modulation[2])); | |||
dvb_fe_store_parm(dvbv5_parms, DTV_ISDBT_LAYERC_SEGMENT_COUNT, is dbTTransponder->segmentCount[2]); | dvb_fe_store_parm(dvbv5_parms, DTV_ISDBT_LAYERC_SEGMENT_COUNT, is dbTTransponder->segmentCount[2]); | |||
dvb_fe_store_parm(dvbv5_parms, DTV_ISDBT_LAYERA_TIME_INTERLEAVING , toDvbInterleaving(isdbTTransponder->interleaving[2])); | dvb_fe_store_parm(dvbv5_parms, DTV_ISDBT_LAYERA_TIME_INTERLEAVING , toDvbInterleaving(isdbTTransponder->interleaving[2])); | |||
freqMHz = isdbTTransponder->frequency / 1000000.; | freqMHz = isdbTTransponder->frequency / 1000000.; | |||
break; | break; | |||
} | } | |||
case DvbTransponderBase::Invalid: | case DvbTransponderBase::Invalid: | |||
qCWarning(logDev, "Invalid transmission type"); | qCWarning(logDev, "Invalid transmission type when tuning to %s", | |||
qPrintable(transponder.toString())); | ||||
return false; | return false; | |||
default: | default: | |||
qCWarning(logDev, "Unknown transmission type %d", transponder.get | qCWarning(logDev, "Unknown transmission type %d when tuning to %s | |||
TransmissionType()); | ", | |||
transponder.getTransmissionType(), | ||||
qPrintable(transponder.toString())); | ||||
return false; | return false; | |||
} | } | |||
if (dvb_fe_set_parms(dvbv5_parms) != 0) { | if (dvb_fe_set_parms(dvbv5_parms) != 0) { | |||
qCWarning(logDev, "ioctl FE_SET_PROPERTY failed for frontend %s", qPrintable(frontendPath)); | qCWarning(logDev, "ioctl FE_SET_PROPERTY failed for frontend %s", qPrintable(frontendPath)); | |||
return false; | return false; | |||
} | } | |||
startDvr(); | startDvr(); | |||
return true; | return true; | |||
skipping to change at line 1245 | skipping to change at line 1248 | |||
dvb_fe_retrieve_parm(dvbv5_parms, DTV_ISDBT_LAYERC_MODULATION, &v alue); | dvb_fe_retrieve_parm(dvbv5_parms, DTV_ISDBT_LAYERC_MODULATION, &v alue); | |||
isdbTTransponder->modulation[2] = IsdbTtoModulation(value); | isdbTTransponder->modulation[2] = IsdbTtoModulation(value); | |||
dvb_fe_retrieve_parm(dvbv5_parms, DTV_ISDBT_LAYERC_SEGMENT_COUNT, &value); | dvb_fe_retrieve_parm(dvbv5_parms, DTV_ISDBT_LAYERC_SEGMENT_COUNT, &value); | |||
isdbTTransponder->segmentCount[2] = (int)value; | isdbTTransponder->segmentCount[2] = (int)value; | |||
dvb_fe_retrieve_parm(dvbv5_parms, DTV_ISDBT_LAYERC_TIME_INTERLEAV ING, &value); | dvb_fe_retrieve_parm(dvbv5_parms, DTV_ISDBT_LAYERC_TIME_INTERLEAV ING, &value); | |||
isdbTTransponder->interleaving[2] = IsdbTtoInterleaving(value); | isdbTTransponder->interleaving[2] = IsdbTtoInterleaving(value); | |||
break; | break; | |||
} | } | |||
case DvbTransponderBase::Invalid: | case DvbTransponderBase::Invalid: | |||
qCWarning(logDev, "Invalid transmission type"); | dvb_fe_retrieve_parm(dvbv5_parms, DTV_FREQUENCY, &value); | |||
qCWarning(logDev, "Invalid transmission type when get props from | ||||
%.2f MHz", | ||||
value / 1000000.); | ||||
return false; | return false; | |||
default: | default: | |||
qCWarning(logDev, "Unknown transmission type %d", transponder.get | dvb_fe_retrieve_parm(dvbv5_parms, DTV_FREQUENCY, &value); | |||
TransmissionType()); | qCWarning(logDev, "Unknown transmission type %d when get props fr | |||
om %.2f MHz", | ||||
transponder.getTransmissionType(), | ||||
value / 1000000.); | ||||
return false; | return false; | |||
} | } | |||
return true; | return true; | |||
} | } | |||
float DvbLinuxDevice::getFrqMHz() | float DvbLinuxDevice::getFrqMHz() | |||
{ | { | |||
return freqMHz; | return freqMHz; | |||
} | } | |||
skipping to change at line 1373 | skipping to change at line 1381 | |||
break; | break; | |||
default: | default: | |||
return -1; | return -1; | |||
} | } | |||
return cnr; | return cnr; | |||
} | } | |||
bool DvbLinuxDevice::addPidFilter(int pid) | bool DvbLinuxDevice::addPidFilter(int pid) | |||
{ | { | |||
Q_ASSERT(frontendFd >= 0); | ||||
if (dmxFds.contains(pid)) { | if (dmxFds.contains(pid)) { | |||
qCWarning(logDev, "PID filter already set up for pid %d", pid); | qCWarning(logDev, "PID filter already set up for pid %d", pid); | |||
return false; | return false; | |||
} | } | |||
int dmxFd = open(QFile::encodeName(demuxPath).constData(), O_RDONLY | O_N ONBLOCK | O_CLOEXEC); | int dmxFd = open(QFile::encodeName(demuxPath).constData(), O_RDONLY | O_N ONBLOCK | O_CLOEXEC); | |||
if (dmxFd < 0) { | if (dmxFd < 0) { | |||
qCWarning(logDev, "Cannot open demux %s", qPrintable(demuxPath)); | qCWarning(logDev, "Cannot open demux %s", qPrintable(demuxPath)); | |||
return false; | return false; | |||
skipping to change at line 1407 | skipping to change at line 1413 | |||
close(dmxFd); | close(dmxFd); | |||
return false; | return false; | |||
} | } | |||
dmxFds.insert(pid, dmxFd); | dmxFds.insert(pid, dmxFd); | |||
return true; | return true; | |||
} | } | |||
void DvbLinuxDevice::removePidFilter(int pid) | void DvbLinuxDevice::removePidFilter(int pid) | |||
{ | { | |||
Q_ASSERT(frontendFd >= 0); | ||||
if (!dmxFds.contains(pid)) { | if (!dmxFds.contains(pid)) { | |||
qCWarning(logDev, "No PID filter set up for PID %i", pid); | qCWarning(logDev, "No PID filter set up for PID %i", pid); | |||
return; | return; | |||
} | } | |||
close(dmxFds.take(pid)); | close(dmxFds.take(pid)); | |||
} | } | |||
void DvbLinuxDevice::startDescrambling(const QByteArray &pmtSectionData) | void DvbLinuxDevice::startDescrambling(const QByteArray &pmtSectionData) | |||
{ | { | |||
End of changes. 6 change blocks. | ||||
10 lines changed or deleted | 15 lines changed or added |