MythTV
master
|
#include <streamhandler.h>
Public Member Functions | |
virtual void | AddListener (MPEGStreamData *data, bool allow_section_reader=false, bool needs_buffering=false, const QString &output_file=QString()) |
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... | |
Protected Types | |
using | StreamDataList = QHash< MPEGStreamData *, QString > |
Protected Member Functions | |
StreamHandler (QString device, int inputid) | |
~StreamHandler () override | |
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 PIDInfo * | CreatePIDInfo (uint pid, uint stream_type, int pes_type) |
void | WriteMPTS (const 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... | |
![]() | |
virtual void | run (void) |
Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More... | |
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 () |
MThread (const MThread &)=delete | |
MThread & | operator= (const MThread &)=delete |
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 p=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 (std::chrono::milliseconds time=std::chrono::milliseconds::max()) |
Wait for the MThread to exit, with a maximum timeout. More... | |
![]() | |
virtual | ~DeviceReaderCB ()=default |
Protected Attributes | |
QString | m_device |
int | m_inputId |
bool | m_needsBuffering {false} |
bool | m_allowSectionReader {false} |
QMutex | m_addRmLock |
QMutex | m_startStopLock |
volatile bool | m_runningDesired {false} |
volatile bool | m_bError {false} |
bool | m_running {false} |
bool | m_restarting {false} |
bool | m_usingBuffering {false} |
bool | m_usingSectionReader {false} |
QWaitCondition | m_runningStateChanged |
QRecursiveMutex | m_pidLock |
std::vector< uint > | m_eitPids |
PIDInfoMap | m_pidInfo |
uint | m_openPidFilters {0} |
bool | m_filtersChanged {false} |
MythTimer | m_cycleTimer |
ThreadedFileWriter * | m_mptsTfw {nullptr} |
QSet< QString > | m_mptsFiles |
QString | m_mptsBaseFile |
QMutex | m_mptsLock |
QRecursiveMutex | m_listenerLock |
StreamDataList | m_streamDataList |
![]() | |
MThreadInternal * | m_thread {nullptr} |
QRunnable * | m_runnable {nullptr} |
bool | m_prologExecuted {true} |
bool | m_epilogExecuted {true} |
Additional Inherited Members | |
![]() | |
static void | setTerminationEnabled (bool enabled=true) |
static void | usleep (std::chrono::microseconds time) |
template<typename R , typename P > | |
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > | usleep (std::chrono::duration< R, P > time) |
static void | ThreadSetup (const QString &name) |
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) |
Definition at line 58 of file streamhandler.h.
|
protected |
Definition at line 149 of file streamhandler.h.
|
inlineexplicitprotected |
Definition at line 75 of file streamhandler.h.
|
overrideprotected |
Definition at line 17 of file streamhandler.cpp.
|
virtual |
Reimplemented in IPTVStreamHandler, HDHRStreamHandler, ASIStreamHandler, and SatIPStreamHandler.
Definition at line 35 of file streamhandler.cpp.
Referenced by SatIPStreamHandler::AddListener(), ASIStreamHandler::AddListener(), HDHRStreamHandler::AddListener(), IPTVStreamHandler::AddListener(), DVBRecorder::PauseAndWait(), ExternalRecorder::PauseAndWait(), DVBRecorder::run(), V4L2encRecorder::run(), ExternalRecorder::run(), V4L2encSignalMonitor::UpdateValues(), ExternalSignalMonitor::UpdateValues(), and DVBSignalMonitor::UpdateValues().
|
virtual |
Definition at line 80 of file streamhandler.cpp.
Referenced by SatIPChannel::Close(), IPTVChannel::CloseStreamHandler(), SatIPRecorder::PauseAndWait(), DVBRecorder::PauseAndWait(), HDHRRecorder::PauseAndWait(), CetonRecorder::PauseAndWait(), ExternalRecorder::PauseAndWait(), SatIPRecorder::run(), HDHRRecorder::run(), CetonRecorder::run(), DVBRecorder::run(), V4L2encRecorder::run(), ExternalRecorder::run(), ASIRecorder::run(), IPTVChannel::SetStreamData(), SatIPSignalMonitor::Stop(), ASISignalMonitor::Stop(), HDHRSignalMonitor::Stop(), V4L2encSignalMonitor::Stop(), CetonSignalMonitor::Stop(), ExternalSignalMonitor::Stop(), and DVBSignalMonitor::Stop().
bool StreamHandler::IsRunning | ( | void | ) | const |
Definition at line 163 of file streamhandler.cpp.
Referenced by IPTVChannel::IsOpen(), SatIPRecorder::run(), HDHRRecorder::run(), CetonRecorder::run(), DVBRecorder::run(), ExternalRecorder::run(), ASIRecorder::run(), V4L2encStreamHandler::Status(), SatIPSignalMonitor::UpdateValues(), ExternalSignalMonitor::UpdateValues(), and DVBSignalMonitor::UpdateValues().
|
inline |
Definition at line 67 of file streamhandler.h.
Referenced by ExternalRecChannelFetcher::ExternalRecChannelFetcher(), ExternalSignalMonitor::ExternalSignalMonitor(), IPTVChannel::IsOpen(), ExternalChannel::Open(), and V4L2encSignalMonitor::UpdateValues().
|
virtual |
Called with _listener_lock locked just after adding new output file.
Definition at line 362 of file streamhandler.cpp.
Referenced by SatIPRecorder::StartNewFile(), HDHRRecorder::StartNewFile(), DVBRecorder::StartNewFile(), and ASIRecorder::StartNewFile().
|
virtual |
Called with _listener_lock locked just before removing old output file.
Definition at line 404 of file streamhandler.cpp.
Referenced by RemoveListener().
|
protected |
Definition at line 117 of file streamhandler.cpp.
Referenced by AddListener().
|
protected |
Definition at line 155 of file streamhandler.cpp.
Referenced by RemoveListener(), HTTPTSStreamHandler::Return(), HLSStreamHandler::Return(), IPTVStreamHandler::Return(), HLSStreamHandler::run(), HLSStreamHandler::~HLSStreamHandler(), HTTPTSStreamHandler::~HTTPTSStreamHandler(), and ~StreamHandler().
|
protected |
Definition at line 173 of file streamhandler.cpp.
Referenced by HTTPTSStreamHandler::run(), V4L2encStreamHandler::run(), HLSStreamHandler::run(), SatIPStreamHandler::run(), ASIStreamHandler::run(), HDHRStreamHandler::run(), ExternalStreamHandler::run(), IPTVStreamHandler::run(), DVBStreamHandler::RunSR(), and DVBStreamHandler::RunTS().
Definition at line 191 of file streamhandler.cpp.
Referenced by DVBStreamHandler::SupportsTSMonitoring(), and UpdateFiltersFromStreamData().
Definition at line 208 of file streamhandler.cpp.
Referenced by RemoveAllPIDFilters(), DVBStreamHandler::SupportsTSMonitoring(), and UpdateFiltersFromStreamData().
|
protected |
Definition at line 240 of file streamhandler.cpp.
Referenced by SatIPStreamHandler::run(), ASIStreamHandler::run(), HDHRStreamHandler::run(), ExternalStreamHandler::run(), DVBStreamHandler::RunSR(), and DVBStreamHandler::RunTS().
|
protected |
Definition at line 259 of file streamhandler.cpp.
Referenced by UpdateFiltersFromStreamData().
|
protected |
Definition at line 290 of file streamhandler.cpp.
Referenced by SatIPStreamHandler::run(), ASIStreamHandler::run(), HDHRStreamHandler::run(), ExternalStreamHandler::run(), DVBStreamHandler::RunSR(), and DVBStreamHandler::RunTS().
|
inlineprotectedvirtual |
Reimplemented in HDHRStreamHandler, and SatIPStreamHandler.
Definition at line 92 of file streamhandler.h.
Referenced by RemoveAllPIDFilters().
|
inlineprotectedvirtual |
Reimplemented in DVBStreamHandler.
Definition at line 93 of file streamhandler.h.
Referenced by AddPIDFilter(), RemovePIDFilter(), and UpdateFiltersFromStreamData().
|
protected |
Definition at line 343 of file streamhandler.cpp.
Referenced by DVBStreamHandler::CycleFiltersByPriority().
|
inlineoverrideprotectedvirtual |
Implements DeviceReaderCB.
Definition at line 98 of file streamhandler.h.
|
inlineoverrideprotectedvirtual |
Implements DeviceReaderCB.
Definition at line 99 of file streamhandler.h.
|
inlineprotectedvirtual |
Reimplemented in DVBStreamHandler.
Definition at line 101 of file streamhandler.h.
Referenced by UpdateFiltersFromStreamData().
|
protected |
Write out a copy of the raw MPTS.
Definition at line 355 of file streamhandler.cpp.
Referenced by SatIPDataReadHelper::ReadPending(), ASIStreamHandler::run(), HDHRStreamHandler::run(), and DVBStreamHandler::RunTS().
|
protectedvirtual |
At minimum this sets _running_desired, this may also send signals to anything that might be blocking the run() loop.
Reimplemented in ASIStreamHandler.
Definition at line 184 of file streamhandler.cpp.
Referenced by ASIStreamHandler::SetRunningDesired(), Start(), and Stop().
|
protected |
Definition at line 113 of file streamhandler.h.
Referenced by CetonStreamHandler::CetonStreamHandler(), HDHRStreamHandler::Connect(), DVBStreamHandler::CycleFiltersByPriority(), ExternalStreamHandler::ExternalStreamHandler(), ASIStreamHandler::Open(), V4L2encStreamHandler::Open(), ExternalStreamHandler::OpenApp(), ASIStreamHandler::PriorityEvent(), RemovePIDFilter(), HTTPTSStreamHandler::Return(), HLSStreamHandler::Return(), CetonStreamHandler::Return(), V4L2encStreamHandler::Return(), DVBStreamHandler::Return(), ASIStreamHandler::Return(), IPTVStreamHandler::Return(), V4L2encStreamHandler::run(), ASIStreamHandler::run(), ExternalStreamHandler::run(), DVBStreamHandler::RunTS(), V4L2encStreamHandler::SetBitrateForResolution(), V4L2encStreamHandler::StartEncoding(), DVBStreamHandler::SupportsTSMonitoring(), ExternalStreamHandler::UpdateDescription(), and V4L2encStreamHandler::V4L2encStreamHandler().
|
protected |
Definition at line 114 of file streamhandler.h.
Definition at line 115 of file streamhandler.h.
Referenced by AddListener(), DVBStreamHandler::RunSR(), DVBStreamHandler::RunTS(), and Start().
Definition at line 116 of file streamhandler.h.
Referenced by AddListener(), DVBStreamHandler::run(), and Start().
|
protected |
Definition at line 118 of file streamhandler.h.
Referenced by AddListener(), RemoveListener(), and ~StreamHandler().
|
mutableprotected |
Definition at line 120 of file streamhandler.h.
Referenced by AddListener(), IsRunning(), V4L2encStreamHandler::run(), ASIStreamHandler::run(), DVBStreamHandler::RunTS(), SetRunning(), and Start().
Definition at line 121 of file streamhandler.h.
Referenced by HTTPTSStreamHandler::run(), HLSStreamHandler::run(), V4L2encStreamHandler::run(), SatIPStreamHandler::run(), ASIStreamHandler::run(), HDHRStreamHandler::run(), ExternalStreamHandler::run(), DVBStreamHandler::RunSR(), DVBStreamHandler::RunTS(), ASIStreamHandler::SetRunningDesired(), SetRunningDesired(), and Start().
Definition at line 126 of file streamhandler.h.
Referenced by HasError(), ExternalStreamHandler::OpenApp(), ExternalStreamHandler::ProcessVer1(), ExternalStreamHandler::ProcessVer2(), V4L2encStreamHandler::run(), SatIPStreamHandler::run(), ASIStreamHandler::run(), HDHRStreamHandler::run(), ExternalStreamHandler::run(), DVBStreamHandler::RunSR(), DVBStreamHandler::RunTS(), Start(), ExternalStreamHandler::StartStreaming(), ExternalStreamHandler::StopStreaming(), HDHRStreamHandler::TunerSet(), and V4L2encStreamHandler::V4L2encStreamHandler().
Definition at line 127 of file streamhandler.h.
Referenced by IsRunning(), DVBStreamHandler::RunTS(), SetRunning(), Start(), and ~StreamHandler().
Definition at line 128 of file streamhandler.h.
Referenced by IsRunning(), and Start().
Definition at line 129 of file streamhandler.h.
Referenced by DVBStreamHandler::RunTS(), SetRunning(), and Start().
Definition at line 130 of file streamhandler.h.
Referenced by DVBStreamHandler::CycleFiltersByPriority(), DVBStreamHandler::RunTS(), SetRunning(), and Start().
|
protected |
Definition at line 131 of file streamhandler.h.
Referenced by V4L2encStreamHandler::run(), SetRunning(), and Start().
|
mutableprotected |
Definition at line 136 of file streamhandler.h.
Referenced by AddPIDFilter(), DVBStreamHandler::CycleFiltersByPriority(), RemoveAllPIDFilters(), RemovePIDFilter(), DVBStreamHandler::RunSR(), SatIPStreamHandler::UpdateFilters(), HDHRStreamHandler::UpdateFilters(), and UpdateFiltersFromStreamData().
|
protected |
Definition at line 138 of file streamhandler.h.
Referenced by Start(), and UpdateListeningForEIT().
|
protected |
Definition at line 139 of file streamhandler.h.
Referenced by AddPIDFilter(), DVBStreamHandler::CycleFiltersByPriority(), RemoveAllPIDFilters(), RemovePIDFilter(), DVBStreamHandler::RunSR(), SatIPStreamHandler::UpdateFilters(), HDHRStreamHandler::UpdateFilters(), and UpdateFiltersFromStreamData().
|
protected |
Definition at line 140 of file streamhandler.h.
Referenced by DVBStreamHandler::CycleFiltersByPriority(), and RemovePIDFilter().
Definition at line 141 of file streamhandler.h.
Referenced by AddPIDFilter(), RemovePIDFilter(), and HDHRStreamHandler::UpdateFilters().
|
protected |
Definition at line 142 of file streamhandler.h.
Referenced by DVBStreamHandler::CycleFiltersByPriority(), and UpdateFiltersFromStreamData().
|
protected |
Definition at line 144 of file streamhandler.h.
Referenced by AddNamedOutputFile(), RemoveNamedOutputFile(), and WriteMPTS().
|
protected |
Definition at line 145 of file streamhandler.h.
Referenced by AddNamedOutputFile(), and RemoveNamedOutputFile().
|
protected |
Definition at line 146 of file streamhandler.h.
Referenced by AddNamedOutputFile().
|
protected |
Definition at line 147 of file streamhandler.h.
Referenced by AddNamedOutputFile(), and RemoveNamedOutputFile().
|
mutableprotected |
Definition at line 153 of file streamhandler.h.
Referenced by AddListener(), CetonStreamHandler::EnterPowerSavingMode(), GetPIDPriority(), SatIPDataReadHelper::ReadPending(), RemoveListener(), ExternalStreamHandler::ReplayStream(), V4L2encStreamHandler::run(), HLSStreamHandler::run(), ASIStreamHandler::run(), HDHRStreamHandler::run(), ExternalStreamHandler::run(), DVBStreamHandler::RunSR(), DVBStreamHandler::RunTS(), V4L2encStreamHandler::StartEncoding(), IPTVStreamHandlerWriteHelper::timerEvent(), UpdateFiltersFromStreamData(), UpdateListeningForEIT(), HTTPReader::WriteBytes(), and ~StreamHandler().
|
protected |
Definition at line 155 of file streamhandler.h.
Referenced by AddListener(), CetonStreamHandler::EnterPowerSavingMode(), GetPIDPriority(), SatIPDataReadHelper::ReadPending(), RemoveListener(), ExternalStreamHandler::ReplayStream(), V4L2encStreamHandler::run(), HLSStreamHandler::run(), ASIStreamHandler::run(), HDHRStreamHandler::run(), ExternalStreamHandler::run(), DVBStreamHandler::RunSR(), DVBStreamHandler::RunTS(), IPTVStreamHandlerWriteHelper::timerEvent(), UpdateFiltersFromStreamData(), UpdateListeningForEIT(), HTTPReader::WriteBytes(), and ~StreamHandler().