From 32a8bd12a6db6f05218cda9bd6f8cd1a97069748 Mon Sep 17 00:00:00 2001 From: Klaas de Waal Date: Wed, 8 Dec 2021 21:50:06 +0100 Subject: [PATCH] SatIP code cleanup More descriptive function names and a bit of comment added. No functional changes. --- .../libs/libmythtv/recorders/satipchannel.cpp | 25 +- .../libs/libmythtv/recorders/satipchannel.h | 7 +- .../libmythtv/recorders/satiprecorder.cpp | 5 +- .../libs/libmythtv/recorders/satiprecorder.h | 6 +- mythtv/libs/libmythtv/recorders/satiprtsp.cpp | 222 ++++++++++-------- mythtv/libs/libmythtv/recorders/satiprtsp.h | 71 +++--- .../recorders/satipsignalmonitor.cpp | 1 - .../libmythtv/recorders/satipstreamhandler.h | 10 +- .../libs/libmythtv/recorders/satiputils.cpp | 14 +- mythtv/libs/libmythtv/recorders/satiputils.h | 6 +- mythtv/libs/libmythtv/recorders/v4lchannel.h | 4 +- 11 files changed, 206 insertions(+), 165 deletions(-) diff --git a/mythtv/libs/libmythtv/recorders/satipchannel.cpp b/mythtv/libs/libmythtv/recorders/satipchannel.cpp index fa01e12d33d..2e7bf901bb0 100644 --- a/mythtv/libs/libmythtv/recorders/satipchannel.cpp +++ b/mythtv/libs/libmythtv/recorders/satipchannel.cpp @@ -39,7 +39,9 @@ bool SatIPChannel::Open(void) LOG(VB_CHANNEL, LOG_INFO, LOC + QString("Open(%1)").arg(m_device)); if (IsOpen()) + { return true; + } QMutexLocker locker(&m_tuneLock); @@ -71,7 +73,7 @@ void SatIPChannel::Close(void) { m_streamHandler->RemoveListener(m_streamData); } - SatIPStreamHandler::Return(m_streamHandler, m_inputId); + SatIPStreamHandler::Return(m_streamHandler, GetInputID()); } } @@ -86,15 +88,28 @@ bool SatIPChannel::Tune(const QString &channum) return false; } -bool SatIPChannel::Tune(const DTVMultiplex &tuning) +bool SatIPChannel::EnterPowerSavingMode(void) { - LOG(VB_CHANNEL, LOG_INFO, LOC + QString("Tune(frequency=%1)").arg(tuning.m_frequency)); - m_streamHandler->Tune(tuning); return true; } bool SatIPChannel::IsOpen(void) const { QMutexLocker locker(&m_streamLock); - return m_streamHandler != nullptr; + bool result = m_streamHandler != nullptr; + LOG(VB_CHANNEL, LOG_DEBUG, LOC + QString("< %1 IsOpen:%2").arg(__func__).arg(result)); + return result; +} + +bool SatIPChannel::Tune(const DTVMultiplex &tuning) +{ + LOG(VB_CHANNEL, LOG_INFO, LOC + QString("Tune(frequency=%1)").arg(tuning.m_frequency)); + + if (m_streamHandler->Tune(tuning)) + { + SetSIStandard(tuning.m_sistandard); + return true; + } + LOG(VB_GENERAL, LOG_ERR, LOC + QString("Tune failed")); + return false; } diff --git a/mythtv/libs/libmythtv/recorders/satipchannel.h b/mythtv/libs/libmythtv/recorders/satipchannel.h index 90ed1807ae3..3339996f0f7 100644 --- a/mythtv/libs/libmythtv/recorders/satipchannel.h +++ b/mythtv/libs/libmythtv/recorders/satipchannel.h @@ -1,5 +1,5 @@ -#ifndef _SATIP_CHANNEL_H_ -#define _SATIP_CHANNEL_H_ +#ifndef SATIPCHANNEL_H +#define SATIPCHANNEL_H // Qt headers #include @@ -18,6 +18,7 @@ class SatIPChannel : public DTVChannel // Commands bool Open(void) override; // ChannelBase void Close(void) override; // ChannelBase + bool EnterPowerSavingMode(void) override; // DTVChannel using DTVChannel::Tune; bool Tune(const DTVMultiplex& tuning) override; // DTVChannel @@ -41,4 +42,4 @@ class SatIPChannel : public DTVChannel MPEGStreamData *m_streamData {nullptr}; }; -#endif // _SATIP_CHANNEL_H_ +#endif // SATIPCHANNEL_H diff --git a/mythtv/libs/libmythtv/recorders/satiprecorder.cpp b/mythtv/libs/libmythtv/recorders/satiprecorder.cpp index 6221e720e7c..0466f88b92d 100644 --- a/mythtv/libs/libmythtv/recorders/satiprecorder.cpp +++ b/mythtv/libs/libmythtv/recorders/satiprecorder.cpp @@ -18,6 +18,7 @@ SatIPRecorder::SatIPRecorder(TVRec *rec, SatIPChannel *channel) , m_channel(channel) , m_inputId(rec->GetInputId()) { + LOG(VB_RECORD, LOG_INFO, LOC + QString("ctor %1").arg(m_channel->GetDevice())); } bool SatIPRecorder::Open(void) @@ -32,7 +33,7 @@ bool SatIPRecorder::Open(void) if (m_channel->GetFormat().compare("MPTS") == 0) { - // MPTS only. Use TSStreamData to write out unfiltered data. + // MPTS only. Use TSStreamData to write out unfiltered data. LOG(VB_RECORD, LOG_INFO, LOC + "Using TSStreamData"); SetStreamData(new TSStreamData(m_inputId)); m_recordMptsOnly = true; @@ -73,7 +74,6 @@ void SatIPRecorder::run(void) { LOG(VB_RECORD, LOG_INFO, LOC + "run -- begin"); - /* Create video socket. */ if (!Open()) { m_error = "Failed to open SatIPRecorder device"; @@ -148,6 +148,7 @@ void SatIPRecorder::run(void) m_recordingWait.wakeAll(); LOG(VB_RECORD, LOG_INFO, LOC + "run -- end"); + LOG(VB_GENERAL, LOG_INFO, LOC + QString("< %1").arg(__func__)); } bool SatIPRecorder::PauseAndWait(std::chrono::milliseconds timeout) diff --git a/mythtv/libs/libmythtv/recorders/satiprecorder.h b/mythtv/libs/libmythtv/recorders/satiprecorder.h index e95a02b8792..9b4c30b0226 100644 --- a/mythtv/libs/libmythtv/recorders/satiprecorder.h +++ b/mythtv/libs/libmythtv/recorders/satiprecorder.h @@ -1,5 +1,5 @@ -#ifndef SATIPRECORDER_H_ -#define SATIPRECORDER_H_ +#ifndef SATIPRECORDER_H +#define SATIPRECORDER_H // Qt includes #include @@ -33,4 +33,4 @@ class SatIPRecorder : public DTVRecorder int m_inputId {0}; }; -#endif // SATIPRECORDER_H_ +#endif // SATIPRECORDER_H diff --git a/mythtv/libs/libmythtv/recorders/satiprtsp.cpp b/mythtv/libs/libmythtv/recorders/satiprtsp.cpp index c564a0d2cf1..4395fcf985e 100644 --- a/mythtv/libs/libmythtv/recorders/satiprtsp.cpp +++ b/mythtv/libs/libmythtv/recorders/satiprtsp.cpp @@ -33,7 +33,6 @@ // Local functions static uint SetUDPReceiveBufferSize(QUdpSocket *socket, uint rcvbuffersize); - SatIPRTSP::SatIPRTSP(SatIPStreamHandler *handler) : m_streamHandler(handler) { @@ -45,8 +44,8 @@ SatIPRTSP::SatIPRTSP(SatIPStreamHandler *handler) // Use RTPPacketBuffer if buffering and re-ordering needed m_buffer = new UDPPacketBuffer(0); - m_readHelper = new SatIPRTSPReadHelper(this); - m_writeHelper = new SatIPRTSPWriteHelper(this, handler); + m_readHelper = new SatIPReadHelper(this); + m_writeHelper = new SatIPWriteHelper(this, handler); if (!m_readHelper->m_socket->bind(QHostAddress::AnyIPv4, 0, QAbstractSocket::DefaultForPlatform)) @@ -63,10 +62,10 @@ SatIPRTSP::SatIPRTSP(SatIPStreamHandler *handler) // Control socket is next higher port port++; - m_rtcpReadHelper = new SatIPRTCPReadHelper(this); - if (!m_rtcpReadHelper->m_socket->bind(QHostAddress::AnyIPv4, - port, - QAbstractSocket::DefaultForPlatform)) + m_controlReadHelper = new SatIPControlReadHelper(this); + if (!m_controlReadHelper->m_socket->bind(QHostAddress::AnyIPv4, + port, + QAbstractSocket::DefaultForPlatform)) { LOG(VB_GENERAL, LOG_ERR, LOC + QString("Failed to bind RTCP socket to port %1").arg(port)); } @@ -95,7 +94,7 @@ SatIPRTSP::SatIPRTSP(SatIPStreamHandler *handler) SatIPRTSP::~SatIPRTSP() { - delete m_rtcpReadHelper; + delete m_controlReadHelper; delete m_writeHelper; delete m_readHelper; delete m_buffer; @@ -270,7 +269,7 @@ bool SatIPRTSP::sendMessage(const QUrl& url, const QString& msg, QStringList *ad QTcpSocket ctrl_socket; ctrl_socket.connectToHost(url.host(), url.port()); - bool ok = ctrl_socket.waitForConnected(30 * 1000); + bool ok = ctrl_socket.waitForConnected(10 * 1000); if (!ok) { LOG(VB_GENERAL, LOG_ERR, LOC + QString("Could not connect to server %1:%2").arg(url.host()).arg(url.port())); @@ -416,31 +415,36 @@ void SatIPRTSP::timerEvent(QTimerEvent* timerEvent) sendMessage(url, "OPTIONS"); } -// --- RTSP RTP ReadHelper --------------------------------------------------- +// === RTSP RTP ReadHelper =================================================== // -// Receive RTP packets with stream data on UDP socket. -// Read packets when signalled via readyRead on QUdpSocket. +// Read RTP stream data from the UDP socket and store it in the packet buffer. +// This should be done as fast as possible to prevent packet loss due to +// network buffer overflow and therefore this has to run on a separate thread. // +// TODO put this on a separate thread +// --------------------------------------------------------------------------- + #define LOC_RH QString("SatIPRTSP[%1]: ").arg(m_parent->m_streamHandler->m_inputId) -SatIPRTSPReadHelper::SatIPRTSPReadHelper(SatIPRTSP* p) - : QObject(p) +SatIPReadHelper::SatIPReadHelper(SatIPRTSP* parent) + : QObject(parent) , m_socket(new QUdpSocket(this)) - , m_parent(p) + , m_parent(parent) { LOG(VB_RECORD, LOG_INFO, LOC_RH + QString("Starting read helper for UDP (RTP) socket")); - // Call ReadPending when there is a message received on m_socket - connect(m_socket, &QUdpSocket::readyRead, this, &SatIPRTSPReadHelper::ReadPending); + // Call ReadPending when there are RTP data packets received on m_socket + connect(m_socket, &QIODevice::readyRead, + this, &SatIPReadHelper::ReadPending); } -SatIPRTSPReadHelper::~SatIPRTSPReadHelper() +SatIPReadHelper::~SatIPReadHelper() { delete m_socket; } -void SatIPRTSPReadHelper::ReadPending() +void SatIPReadHelper::ReadPending() { while (m_socket->hasPendingDatagrams()) { @@ -455,96 +459,30 @@ void SatIPRTSPReadHelper::ReadPending() } } -// --- RTSP RTCP ReadHelper -------------------------------------------------- +// === SatIPWriteHelper ====================================================== // -// Receive RTCP packets with control messages on UDP socket -// Receive tuner state: lock and signal strength -// -#define LOC_RTCP QString("SatIPRTCP[%1]: ").arg(m_parent->m_streamHandler->m_inputId) - -SatIPRTCPReadHelper::SatIPRTCPReadHelper(SatIPRTSP* p) - : QObject(p) - , m_socket(new QUdpSocket(this)) - , m_parent(p) -{ - LOG(VB_RECORD, LOG_INFO, LOC_RTCP + - QString("Starting read helper for UDP (RTCP) socket")); +// Read the RTP packets out of the buffer, check for correctness and discard +// packets if needed. Then send it along to the streamdata listeners and +// the MPTS writer. This is done every 100 ms. +// The buffer is filled by the SatIPReadHelper which reads from the UDP socket +// and writes into the buffer. +// --------------------------------------------------------------------------- - // Call ReadPending when there is a message received on m_socket - connect(m_socket, &QUdpSocket::readyRead, this, &SatIPRTCPReadHelper::ReadPending); -} +#define LOC_WH QString("SatIP_WH[%1]: ").arg(m_streamHandler->m_inputId) -SatIPRTCPReadHelper::~SatIPRTCPReadHelper() -{ - delete m_socket; -} - -// Process a RTCP packet received on m_socket -void SatIPRTCPReadHelper::ReadPending() -{ - while (m_socket->hasPendingDatagrams()) - { -#if 0 - LOG(VB_RECORD, LOG_INFO, "SatIPRTSP_RH " + - QString("Processing RTCP packet(pendingDatagramSize:%1)") - .arg(m_socket->pendingDatagramSize())); -#endif - - QHostAddress sender; - quint16 senderPort = 0; - - QByteArray buf = QByteArray(m_socket->pendingDatagramSize(), Qt::Uninitialized); - m_socket->readDatagram(buf.data(), buf.size(), &sender, &senderPort); - - SatIPRTCPPacket pkt = SatIPRTCPPacket(buf); - if (!pkt.IsValid()) - { - LOG(VB_GENERAL, LOG_ERR, LOC_RTCP + "Invalid RTCP packet received"); - continue; - } - - QStringList data = pkt.Data().split(";"); - bool found = false; - int i = 0; - - while (!found && i < data.length()) - { - const QString& item = data.at(i); - - if (item.startsWith("tuner=")) - { - found = true; - QStringList tuner = item.split(","); - - if (tuner.length() > 3) - { - int level = tuner.at(1).toInt(); // [0, 255] - bool lock = tuner.at(2).toInt() != 0; // [0 , 1] - int quality = tuner.at(3).toInt(); // [0, 15] - - LOG(VB_RECORD, LOG_DEBUG, LOC_RTCP + - QString("Tuner lock:%1 level:%2 quality:%3").arg(lock).arg(level).arg(quality)); - - m_parent->SetSigmonValues(lock, level); - } - } - i++; - } - } -} - -// --- SatIPRTSPWriteHelper -------------------------------------------------- -// -#define LOC_WH QString("SatIPRTSP[%1]: ").arg(m_streamHandler->m_inputId) - -SatIPRTSPWriteHelper::SatIPRTSPWriteHelper(SatIPRTSP* parent, SatIPStreamHandler* handler) +SatIPWriteHelper::SatIPWriteHelper(SatIPRTSP* parent, SatIPStreamHandler* handler) : m_parent(parent) , m_streamHandler(handler) { m_timer = startTimer(100ms); } -void SatIPRTSPWriteHelper::timerEvent(QTimerEvent* /*event*/) +SatIPWriteHelper::~SatIPWriteHelper() +{ + killTimer(m_timer); +} + +void SatIPWriteHelper::timerEvent(QTimerEvent* /*event*/) { while (m_parent->m_buffer->HasAvailablePacket()) { @@ -623,6 +561,90 @@ void SatIPRTSPWriteHelper::timerEvent(QTimerEvent* /*event*/) m_parent->m_validOld = m_parent->m_valid; } +// === RTSP RTCP ControlReadHelper =========================================== +// +// Read RTCP packets with control messages from the UDP socket. +// Determine tuner state: lock and signal strength +// --------------------------------------------------------------------------- + +#define LOC_CRH QString("SatIP_CRH[%1]: ").arg(m_parent->m_streamHandler->m_inputId) + +SatIPControlReadHelper::SatIPControlReadHelper(SatIPRTSP* p) + : QObject(p) + , m_socket(new QUdpSocket(this)) + , m_parent(p) +{ + LOG(VB_RECORD, LOG_INFO, LOC_CRH + + QString("Starting read helper for TCP (RTCP) socket")); + + // Call ReadPending when there is a message received on m_socket + bool result = (bool) connect(m_socket, &QUdpSocket::readyRead, this, &SatIPControlReadHelper::ReadPending); + + LOG(VB_RECORD, LOG_DEBUG, LOC_CRH + QString("connect:%1").arg(result)); +} + +SatIPControlReadHelper::~SatIPControlReadHelper() +{ + delete m_socket; +} + +// Process a RTCP packet received on m_socket +void SatIPControlReadHelper::ReadPending() +{ + while (m_socket->hasPendingDatagrams()) + { +#if 0 + LOG(VB_RECORD, LOG_INFO, LOC_CRH + + QString("Processing RTCP packet(pendingDatagramSize:%1)") + .arg(m_socket->pendingDatagramSize())); +#endif + QHostAddress sender; + quint16 senderPort = 0; + + QByteArray buf = QByteArray(m_socket->pendingDatagramSize(), Qt::Uninitialized); + m_socket->readDatagram(buf.data(), buf.size(), &sender, &senderPort); + + SatIPRTCPPacket pkt = SatIPRTCPPacket(buf); + if (!pkt.IsValid()) + { + LOG(VB_GENERAL, LOG_ERR, LOC_CRH + "Invalid RTCP packet received"); + continue; + } + + QStringList data = pkt.Data().split(";"); + bool found = false; + int i = 0; + +#if 0 + LOG(VB_RECORD, LOG_DEBUG, LOC_CRH + QString(">2 %1 ").arg(__func__) + data.join('^')); +#endif + while (!found && i < data.length()) + { + const QString& item = data.at(i); + + if (item.startsWith("tuner=")) + { + found = true; + QStringList tuner = item.split(","); + + if (tuner.length() > 3) + { + int level = tuner.at(1).toInt(); // [0, 255] + bool lock = tuner.at(2).toInt() != 0; // [0 , 1] + int quality = tuner.at(3).toInt(); // [0, 15] + + LOG(VB_RECORD, LOG_DEBUG, LOC_CRH + + QString("Tuner lock:%1 level:%2 quality:%3").arg(lock).arg(level).arg(quality)); + + m_parent->SetSigmonValues(lock, level); + } + } + i++; + } + } +} + +// --------------------------------------------------------------------------- // Set receive buffer size of UDP socket // // Note that the size returned by ReceiverBufferSizeSocketOption is diff --git a/mythtv/libs/libmythtv/recorders/satiprtsp.h b/mythtv/libs/libmythtv/recorders/satiprtsp.h index eb5c9dc04a8..16881434e6b 100644 --- a/mythtv/libs/libmythtv/recorders/satiprtsp.h +++ b/mythtv/libs/libmythtv/recorders/satiprtsp.h @@ -9,12 +9,13 @@ // Qt includes #include #include -#include #include -#include +#include +#include +#include #include #include -#include +#include // MythTV includes #include "mythchrono.h" @@ -22,18 +23,17 @@ class SatIPRTSP; class SatIPStreamHandler; -using Headers = QMap; -// --- SatIPRTSPReadHelper --------------------------------------------------- +// --- SatIPReadHelper ------------------------------------------------------- -class SatIPRTSPReadHelper : public QObject +class SatIPReadHelper : public QObject { friend class SatIPRTSP; Q_OBJECT public: - explicit SatIPRTSPReadHelper(SatIPRTSP *p); - ~SatIPRTSPReadHelper() override; + explicit SatIPReadHelper(SatIPRTSP *p); + ~SatIPReadHelper() override; public slots: void ReadPending(void); @@ -45,56 +45,57 @@ class SatIPRTSPReadHelper : public QObject SatIPRTSP *m_parent {nullptr}; }; -// --- SatIPRTCPReadHelper --------------------------------------------------- +// --- SatIPWriteHelper ------------------------------------------------------ -class SatIPRTCPReadHelper : public QObject +class SatIPWriteHelper : public QObject { - friend class SatIPRTSP; Q_OBJECT public: - explicit SatIPRTCPReadHelper(SatIPRTSP *p); - ~SatIPRTCPReadHelper() override; - - public slots: - void ReadPending(void); + explicit SatIPWriteHelper(SatIPRTSP* parent, SatIPStreamHandler* handler); + ~SatIPWriteHelper() override; protected: - QUdpSocket *m_socket {nullptr}; + void timerEvent(QTimerEvent* /*event*/) override; // QObject private: - SatIPRTSP *m_parent {nullptr}; + SatIPRTSP *m_parent {nullptr}; + SatIPStreamHandler *m_streamHandler {nullptr}; + int m_timer {0}; + uint m_lastSequenceNumber {0}; + uint m_lastTimeStamp {0}; + uint m_previousLastSequenceNumber {0}; }; -// --- SatIPRTSPWriteHelper -------------------------------------------------- +// --- SatIPControlReadHelper ------------------------------------------------ -class SatIPRTSPWriteHelper : public QObject +class SatIPControlReadHelper : public QObject { + friend class SatIPRTSP; Q_OBJECT public: - SatIPRTSPWriteHelper(SatIPRTSP* parent, SatIPStreamHandler* handler); + explicit SatIPControlReadHelper(SatIPRTSP *p); + ~SatIPControlReadHelper() override; + + public slots: + void ReadPending(void); protected: - void timerEvent(QTimerEvent* /*event*/) override; // QObject + QUdpSocket *m_socket {nullptr}; private: - SatIPRTSP *m_parent {nullptr}; - SatIPStreamHandler *m_streamHandler {nullptr}; - int m_timer {0}; - uint m_lastSequenceNumber {0}; - uint m_lastTimeStamp {0}; - uint m_previousLastSequenceNumber {0}; + SatIPRTSP *m_parent {nullptr}; }; // --- SatIPRTSP ------------------------------------------------------------- class SatIPRTSP : public QObject { - friend class SatIPRTSPReadHelper; - friend class SatIPRTCPReadHelper; - friend class SatIPRTSPWriteHelper; friend class SatIPSignalMonitor; + friend class SatIPReadHelper; + friend class SatIPWriteHelper; + friend class SatIPControlReadHelper; Q_OBJECT @@ -134,7 +135,7 @@ class SatIPRTSP : public QObject uint m_cseq {0}; QString m_sessionid; QString m_streamid; - Headers m_headers; + QMap m_headers; int m_timer {0}; std::chrono::milliseconds m_timeout {0ms}; @@ -147,9 +148,9 @@ class SatIPRTSP : public QObject bool m_hasLock {false}; int m_signalStrength {0}; - SatIPRTSPReadHelper *m_readHelper {nullptr}; - SatIPRTSPWriteHelper *m_writeHelper {nullptr}; - SatIPRTCPReadHelper *m_rtcpReadHelper {nullptr}; + SatIPReadHelper *m_readHelper {nullptr}; + SatIPWriteHelper *m_writeHelper {nullptr}; + SatIPControlReadHelper *m_controlReadHelper {nullptr}; }; #endif // SATIPRTSP_H diff --git a/mythtv/libs/libmythtv/recorders/satipsignalmonitor.cpp b/mythtv/libs/libmythtv/recorders/satipsignalmonitor.cpp index 37187d816ee..7f77a4ef5df 100644 --- a/mythtv/libs/libmythtv/recorders/satipsignalmonitor.cpp +++ b/mythtv/libs/libmythtv/recorders/satipsignalmonitor.cpp @@ -101,7 +101,6 @@ void SatIPSignalMonitor::UpdateValues(void) (isLocked ? "Locked" : "Lost")); } - EmitStatus(); if (IsAllGood()) { diff --git a/mythtv/libs/libmythtv/recorders/satipstreamhandler.h b/mythtv/libs/libmythtv/recorders/satipstreamhandler.h index a7af75d6f9f..8c8827e5a7c 100644 --- a/mythtv/libs/libmythtv/recorders/satipstreamhandler.h +++ b/mythtv/libs/libmythtv/recorders/satipstreamhandler.h @@ -1,7 +1,7 @@ // -*- Mode: c++ -*- -#ifndef _SATIPSTREAMHANDLER_H_ -#define _SATIPSTREAMHANDLER_H_ +#ifndef SATIPSTREAMHANDLER_H +#define SATIPSTREAMHANDLER_H // Qt headers #include @@ -27,9 +27,9 @@ class DeviceReadBuffer; class SatIPStreamHandler : public StreamHandler { - friend class SatIPRTSPWriteHelper; - friend class SatIPRTSPReadHelper; friend class SatIPSignalMonitor; + friend class SatIPWriteHelper; + friend class SatIPReadHelper; public: static SatIPStreamHandler *Get(const QString &devname, int inputid); @@ -81,4 +81,4 @@ class SatIPStreamHandler : public StreamHandler SatIPRTSP *m_rtsp {nullptr}; }; -#endif // _SATIPSTREAMHANDLER_H_ +#endif // SATIPSTREAMHANDLER_H diff --git a/mythtv/libs/libmythtv/recorders/satiputils.cpp b/mythtv/libs/libmythtv/recorders/satiputils.cpp index ae5628a78d8..05f8b0611d8 100644 --- a/mythtv/libs/libmythtv/recorders/satiputils.cpp +++ b/mythtv/libs/libmythtv/recorders/satiputils.cpp @@ -15,13 +15,15 @@ #define LOC QString("SatIP: ") -static constexpr std::chrono::milliseconds SEARCH_TIME_MS { 3s }; -#define SATIP_URI "urn:ses-com:device:SatIPServer:1" +namespace { + const QString SATIP_URI = "urn:ses-com:device:SatIPServer:1"; + constexpr std::chrono::milliseconds SEARCH_TIME_MS { 3s }; +} QStringList SatIP::probeDevices(void) { - const std::chrono::milliseconds milliSeconds = SEARCH_TIME_MS; - auto seconds = duration_cast(milliSeconds); + const std::chrono::milliseconds totalSearchTime = SEARCH_TIME_MS; + auto seconds = duration_cast(totalSearchTime); LOG(VB_GENERAL, LOG_INFO, LOC + QString("Using UPNP to search for Sat>IP servers (%1 secs)") .arg(seconds.count())); @@ -31,10 +33,10 @@ QStringList SatIP::probeDevices(void) MythTimer totalTime; totalTime.start(); MythTimer searchTime; searchTime.start(); - while (totalTime.elapsed() < milliSeconds) + while (totalTime.elapsed() < totalSearchTime) { std::this_thread::sleep_for(25ms); - std::chrono::milliseconds ttl = milliSeconds - totalTime.elapsed(); + std::chrono::milliseconds ttl = totalSearchTime - totalTime.elapsed(); if (searchTime.elapsed() > 249ms && ttl > 1s) { auto ttl_s = duration_cast(ttl); diff --git a/mythtv/libs/libmythtv/recorders/satiputils.h b/mythtv/libs/libmythtv/recorders/satiputils.h index c93c145a31b..595f9f14f18 100644 --- a/mythtv/libs/libmythtv/recorders/satiputils.h +++ b/mythtv/libs/libmythtv/recorders/satiputils.h @@ -1,5 +1,5 @@ -#ifndef _SATIP_UTILS_H_ -#define _SATIP_UTILS_H_ +#ifndef SATIPUTILS_H +#define SATIPUTILS_H // Qt headers #include @@ -29,4 +29,4 @@ class SatIP static QStringList doUPNPsearch(void); }; -#endif // _SATIP_UTILS_H +#endif // SATIPUTILS_H diff --git a/mythtv/libs/libmythtv/recorders/v4lchannel.h b/mythtv/libs/libmythtv/recorders/v4lchannel.h index 4ebd9f5f3cb..42dce75b1d9 100644 --- a/mythtv/libs/libmythtv/recorders/v4lchannel.h +++ b/mythtv/libs/libmythtv/recorders/v4lchannel.h @@ -1,7 +1,7 @@ // -*- Mode: c++ -*- -#ifndef CHANNEL_H -#define CHANNEL_H +#ifndef V4LCHANNEL_H +#define V4LCHANNEL_H #include