diff --git a/src/input/DeviceData.h b/src/input/DeviceData.h index cbb7341..1f6855f 100644 --- a/src/input/DeviceData.h +++ b/src/input/DeviceData.h @@ -131,6 +131,11 @@ class DeviceData : /// @param params void parseAndUpdatePidsTable(const TransportParamVector& params); + /// + void copyFilterPidsTable(const DeviceData &source) { + _filter.copyPidTable(source._filter); + } + int hasLock() const; fe_status_t getSignalStatus() const; diff --git a/src/input/Transformation.cpp b/src/input/Transformation.cpp index 8b7bce2..02dc8ba 100644 --- a/src/input/Transformation.cpp +++ b/src/input/Transformation.cpp @@ -222,6 +222,10 @@ const DeviceData &Transformation::transformDeviceData(const DeviceData &deviceDa snr = 15; } _transformedDeviceData.setMonitorData(status, strength, snr, ber, ublocks); + + // copy the pid filtering list + _transformedDeviceData.copyFilterPidsTable(deviceData); + } return (_transform && _enabled && _fileParsed) ? _transformedDeviceData : deviceData; } diff --git a/src/mpegts/Filter.h b/src/mpegts/Filter.h index a1cba76..94a324f 100644 --- a/src/mpegts/Filter.h +++ b/src/mpegts/Filter.h @@ -95,6 +95,13 @@ class Filter { return _sdt; } + /// + void copyPidTable(const Filter &source) { + base::MutexLock lock(_mutex); + _pidTable = source._pidTable; + return; + } + // ========================================================================= // =========================================================================