MythTV  master
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends | List of all members
IPTVStreamHandler Class Reference

#include <iptvstreamhandler.h>

Inheritance diagram for IPTVStreamHandler:
Inheritance graph
[legend]
Collaboration diagram for IPTVStreamHandler:
Collaboration graph
[legend]

Public Member Functions

void AddListener (MPEGStreamData *data, bool=false, bool=false, QString output_file=QString()) override
 
- Public Member Functions inherited from StreamHandler
virtual void RemoveListener (MPEGStreamData *data)
 
bool IsRunning (void) const
 
bool HasError (void) const
 
virtual bool AddNamedOutputFile (const QString &filename)
 Called with _listener_lock locked just after adding new output file. More...
 
virtual void RemoveNamedOutputFile (const QString &filename)
 Called with _listener_lock locked just before removing old output file. More...
 

Static Public Member Functions

static IPTVStreamHandlerGet (const IPTVTuningData &tuning, int inputid)
 
static void Return (IPTVStreamHandler *&ref, int inputid)
 

Protected Member Functions

 IPTVStreamHandler (const IPTVTuningData &tuning, 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. More...
 
- Protected Member Functions inherited from StreamHandler
 StreamHandler (const QString &device, int inputid)
 
 ~StreamHandler ()
 
void Start (void)
 
void Stop (void)
 
void SetRunning (bool running, bool using_buffering, bool using_section_reader)
 
bool AddPIDFilter (PIDInfo *info)
 
bool RemovePIDFilter (uint pid)
 
bool RemoveAllPIDFilters (void)
 
void UpdateListeningForEIT (void)
 
bool UpdateFiltersFromStreamData (void)
 
virtual bool UpdateFilters (void)
 
virtual void CycleFiltersByPriority ()
 
PIDPriority GetPIDPriority (uint pid) const
 
void ReaderPaused (int fd) override
 
void PriorityEvent (int fd) override
 
virtual PIDInfoCreatePIDInfo (uint pid, uint stream_type, int pes_type)
 
void WriteMPTS (unsigned char *buffer, uint len)
 Write out a copy of the raw MPTS. More...
 
virtual void SetRunningDesired (bool desired)
 At minimum this sets _running_desired, this may also send signals to anything that might be blocking the run() loop. More...
 
- Protected Member Functions inherited from MThread
int exec (void)
 Enters the qt event loop. call exit or quit to exit thread. More...
 
 MThread (const QString &objectName)
 Standard constructor. More...
 
 MThread (const QString &objectName, QRunnable *runnable)
 Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More...
 
virtual ~MThread ()
 
void RunProlog (void)
 Sets up a thread, call this if you reimplement run(). More...
 
void RunEpilog (void)
 Cleans up a thread's resources, call this if you reimplement run(). More...
 
QThread * qthread (void)
 Returns the thread, this will always return the same pointer no matter how often you restart the thread. More...
 
void setObjectName (const QString &name)
 
QString objectName (void) const
 
void setPriority (QThread::Priority priority)
 
QThread::Priority priority (void) const
 
bool isFinished (void) const
 
bool isRunning (void) const
 
void setStackSize (uint stackSize)
 
uint stackSize (void) const
 
void exit (int retcode=0)
 Use this to exit from the thread if you are using a Qt event loop. More...
 
void start (QThread::Priority=QThread::InheritPriority)
 Tell MThread to start running the thread in the near future. More...
 
void terminate (void)
 Kill a thread unsafely. More...
 
void quit (void)
 calls exit(0) More...
 
bool wait (unsigned long time=ULONG_MAX)
 Wait for the MThread to exit, with a maximum timeout. More...
 
- Protected Member Functions inherited from DeviceReaderCB
virtual ~DeviceReaderCB ()=default
 

Protected Attributes

IPTVTuningData m_tuning
 
QUdpSocket * m_sockets [IPTV_SOCKET_COUNT]
 
IPTVStreamHandlerReadHelperm_read_helpers [IPTV_SOCKET_COUNT]
 
QHostAddress m_sender [IPTV_SOCKET_COUNT]
 
IPTVStreamHandlerWriteHelperm_write_helper
 
PacketBufferm_buffer
 
bool m_use_rtp_streaming
 
ushort m_rtsp_rtp_port
 
ushort m_rtsp_rtcp_port
 
uint32_t m_rtsp_ssrc
 
QHostAddress m_rtcp_dest
 
- Protected Attributes inherited from StreamHandler
QString _device
 
int _inputid
 
bool _needs_buffering
 
bool _allow_section_reader
 
QMutex _add_rm_lock
 
QMutex _start_stop_lock
 
volatile bool _running_desired
 
volatile bool _error
 
bool _running
 
bool _using_buffering
 
bool _using_section_reader
 
QWaitCondition _running_state_changed
 
QMutex _pid_lock
 
vector< uint_eit_pids
 
PIDInfoMap _pid_info
 
uint _open_pid_filters
 
MythTimer _cycle_timer
 
ThreadedFileWriter_mpts_tfw
 
QSet< QString > _mpts_files
 
QString _mpts_base_file
 
QMutex _mpts_lock
 
QMutex _listener_lock
 
StreamDataList _stream_data_list
 
- Protected Attributes inherited from MThread
MThreadInternalm_thread
 
QRunnable * m_runnable
 
bool m_prolog_executed
 
bool m_epilog_executed
 

Static Protected Attributes

static QMutex s_iptvhandlers_lock
 
static QMap< QString, IPTVStreamHandler * > s_iptvhandlers
 
static QMap< QString, uints_iptvhandlers_refcnt
 
- Static Protected Attributes inherited from MThread
static const int kDefaultStartTimeout
 

Private Member Functions

void timerEvent (QTimerEvent *)
 

Friends

class IPTVStreamHandlerReadHelper
 
class IPTVStreamHandlerWriteHelper
 

Additional Inherited Members

- Protected Types inherited from StreamHandler
typedef QMap< MPEGStreamData *, QString > StreamDataList
 
- Static Protected Member Functions inherited from MThread
static void setTerminationEnabled (bool enabled=true)
 
static void sleep (unsigned long time)
 
static void msleep (unsigned long time)
 
static void usleep (unsigned long time)
 
static void ThreadSetup (const QString &)
 This is to be called on startup in those few threads that haven't been ported to MThread. More...
 
static void ThreadCleanup (void)
 This is to be called on exit in those few threads that haven't been ported to MThread. More...
 
static void Cleanup (void)
 This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More...
 
static void GetAllThreadNames (QStringList &list)
 
static void GetAllRunningThreadNames (QStringList &list)
 

Detailed Description

Definition at line 76 of file iptvstreamhandler.h.

Constructor & Destructor Documentation

◆ IPTVStreamHandler()

IPTVStreamHandler::IPTVStreamHandler ( const IPTVTuningData tuning,
int  inputid 
)
explicitprotected

Definition at line 108 of file iptvstreamhandler.cpp.

Referenced by Get().

Member Function Documentation

◆ Get()

IPTVStreamHandler * IPTVStreamHandler::Get ( const IPTVTuningData tuning,
int  inputid 
)
static

Definition at line 35 of file iptvstreamhandler.cpp.

Referenced by IPTVChannel::OpenStreamHandler().

◆ Return()

void IPTVStreamHandler::Return ( IPTVStreamHandler *&  ref,
int  inputid 
)
static

Definition at line 68 of file iptvstreamhandler.cpp.

Referenced by IPTVChannel::CloseStreamHandler().

◆ AddListener()

void IPTVStreamHandler::AddListener ( MPEGStreamData data,
bool  = false,
bool  = false,
QString  output_file = QString() 
)
inlineoverridevirtual

◆ run()

void IPTVStreamHandler::run ( void  )
overrideprotectedvirtual

Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.

Note
If you override this method you must call RunProlog before you do any work and RunEpilog before you exit the run method.

Reimplemented from MThread.

Definition at line 122 of file iptvstreamhandler.cpp.

◆ timerEvent()

void IPTVStreamHandler::timerEvent ( QTimerEvent *  )
private

Friends And Related Function Documentation

◆ IPTVStreamHandlerReadHelper

friend class IPTVStreamHandlerReadHelper
friend

Definition at line 78 of file iptvstreamhandler.h.

Referenced by run().

◆ IPTVStreamHandlerWriteHelper

friend class IPTVStreamHandlerWriteHelper
friend

Definition at line 79 of file iptvstreamhandler.h.

Referenced by run().

Member Data Documentation

◆ m_tuning

IPTVTuningData IPTVStreamHandler::m_tuning
protected

◆ m_sockets

QUdpSocket* IPTVStreamHandler::m_sockets[IPTV_SOCKET_COUNT]
protected

◆ m_read_helpers

IPTVStreamHandlerReadHelper* IPTVStreamHandler::m_read_helpers[IPTV_SOCKET_COUNT]
protected

Definition at line 101 of file iptvstreamhandler.h.

Referenced by IPTVStreamHandler(), and run().

◆ m_sender

QHostAddress IPTVStreamHandler::m_sender[IPTV_SOCKET_COUNT]
protected

Definition at line 102 of file iptvstreamhandler.h.

Referenced by run().

◆ m_write_helper

IPTVStreamHandlerWriteHelper* IPTVStreamHandler::m_write_helper
protected

Definition at line 103 of file iptvstreamhandler.h.

Referenced by run().

◆ m_buffer

PacketBuffer* IPTVStreamHandler::m_buffer
protected

◆ m_use_rtp_streaming

bool IPTVStreamHandler::m_use_rtp_streaming
protected

◆ m_rtsp_rtp_port

ushort IPTVStreamHandler::m_rtsp_rtp_port
protected

Definition at line 107 of file iptvstreamhandler.h.

Referenced by run().

◆ m_rtsp_rtcp_port

ushort IPTVStreamHandler::m_rtsp_rtcp_port
protected

Definition at line 107 of file iptvstreamhandler.h.

Referenced by run(), and IPTVStreamHandlerWriteHelper::SendRTCPReport().

◆ m_rtsp_ssrc

uint32_t IPTVStreamHandler::m_rtsp_ssrc
protected

Definition at line 108 of file iptvstreamhandler.h.

Referenced by run(), and IPTVStreamHandlerWriteHelper::SendRTCPReport().

◆ m_rtcp_dest

QHostAddress IPTVStreamHandler::m_rtcp_dest
protected

Definition at line 109 of file iptvstreamhandler.h.

Referenced by run(), and IPTVStreamHandlerWriteHelper::SendRTCPReport().

◆ s_iptvhandlers_lock

QMutex IPTVStreamHandler::s_iptvhandlers_lock
staticprotected

Definition at line 112 of file iptvstreamhandler.h.

Referenced by Get(), and Return().

◆ s_iptvhandlers

QMap< QString, IPTVStreamHandler * > IPTVStreamHandler::s_iptvhandlers
staticprotected

Definition at line 113 of file iptvstreamhandler.h.

Referenced by Get(), and Return().

◆ s_iptvhandlers_refcnt

QMap< QString, uint > IPTVStreamHandler::s_iptvhandlers_refcnt
staticprotected

Definition at line 114 of file iptvstreamhandler.h.

Referenced by Get(), and Return().


The documentation for this class was generated from the following files: