Go to the documentation of this file.
3 #ifndef IPTVSTREAMHANDLER_H
4 #define IPTVSTREAMHANDLER_H
8 #include <QHostAddress>
14 #include <QNetworkAccessManager>
20 static constexpr std::chrono::milliseconds
RTCP_TIMER { 10s };
90 const QString& output_file = QString()) override
99 void run(
void)
override;
104 std::array<IPTVStreamHandlerReadHelper*,IPTV_SOCKET_COUNT>
m_readHelpers {};
105 std::array<QHostAddress,IPTV_SOCKET_COUNT>
m_sender;
125 #endif // IPTVSTREAMHANDLER_H
static void Return(IPTVStreamHandler *&ref, int inputid)
void run(void) override
Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.
IPTVStreamHandler * m_parent
IPTVStreamHandler(const IPTVTuningData &tuning, int inputid)
std::array< IPTVStreamHandlerReadHelper *, IPTV_SOCKET_COUNT > m_readHelpers
~IPTVStreamHandlerWriteHelper() override
IPTVStreamHandlerWriteHelper(IPTVStreamHandler *p)
std::array< QUdpSocket *, IPTV_SOCKET_COUNT > m_sockets
uint m_lastSequenceNumber
void AddListener(MPEGStreamData *data, bool=false, bool=false, const QString &output_file=QString()) override
void timerEvent(QTimerEvent *event) override
static QMap< QString, IPTVStreamHandler * > s_iptvhandlers
IPTVStreamHandler * m_parent
uint m_previousLastSequenceNumber
static constexpr std::chrono::milliseconds RTCP_TIMER
Encapsulates data about MPEG stream and emits events for each table.
static QMap< QString, uint > s_iptvhandlers_refcnt
static IPTVStreamHandler * Get(const IPTVTuningData &tuning, int inputid)
std::array< QHostAddress, IPTV_SOCKET_COUNT > m_sender
void timerEvent(QTimerEvent *)
static constexpr size_t IPTV_SOCKET_COUNT
This class is intended to detect the presence of needed tables.
void SendRTCPReport(void)
virtual void AddListener(MPEGStreamData *data, bool allow_section_reader=false, bool needs_buffering=false, const QString &output_file=QString())
static QMutex s_iptvhandlers_lock
IPTVStreamHandlerReadHelper(IPTVStreamHandler *p, QUdpSocket *s, uint stream)
IPTVStreamHandlerWriteHelper * m_writeHelper