MythTV  0.26-pre
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
StreamHandler Class Reference

#include <streamhandler.h>

Inheritance diagram for StreamHandler:
MThread DeviceReaderCB ASIStreamHandler CetonStreamHandler DVBStreamHandler HDHRStreamHandler

List of all members.

Public Member Functions

virtual void AddListener (MPEGStreamData *data, bool allow_section_reader=false, bool needs_drb=false, QString output_file=QString())
virtual void RemoveListener (MPEGStreamData *data)
bool IsRunning (void) const

Protected Types

typedef QMap< MPEGStreamData
*, QString > 
StreamDataList

Protected Member Functions

 StreamHandler (const QString &device)
 ~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
virtual void ReaderPaused (int fd)
virtual void PriorityEvent (int fd)
virtual PIDInfoCreatePIDInfo (uint pid, uint stream_type, int pes_type)
virtual void AddNamedOutputFile (const QString &filename)
 Called with _listener_lock locked just after adding new output file.
virtual void RemoveNamedOutputFile (const QString &filename)
 Called with _listener_lock locked just before removing old output file.
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.

Protected Attributes

QString _device
bool _needs_buffering
bool _allow_section_reader
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
QMutex _listener_lock
StreamDataList _stream_data_list

Detailed Description

Definition at line 50 of file streamhandler.h.


Member Typedef Documentation

typedef QMap<MPEGStreamData*,QString> StreamHandler::StreamDataList [protected]

Definition at line 118 of file streamhandler.h.


Constructor & Destructor Documentation

StreamHandler::StreamHandler ( const QString &  device) [protected]

Definition at line 8 of file streamhandler.cpp.

Definition at line 27 of file streamhandler.cpp.


Member Function Documentation

void StreamHandler::AddListener ( MPEGStreamData data,
bool  allow_section_reader = false,
bool  needs_drb = false,
QString  output_file = QString() 
) [virtual]
void StreamHandler::Start ( void  ) [protected]

Definition at line 134 of file streamhandler.cpp.

Referenced by AddListener().

void StreamHandler::Stop ( void  ) [protected]

Definition at line 174 of file streamhandler.cpp.

Referenced by RemoveListener(), and ~StreamHandler().

void StreamHandler::SetRunning ( bool  running,
bool  using_buffering,
bool  using_section_reader 
) [protected]
bool StreamHandler::AddPIDFilter ( PIDInfo info) [protected]

Definition at line 276 of file streamhandler.cpp.

Referenced by UpdateFiltersFromStreamData().

virtual bool StreamHandler::UpdateFilters ( void  ) [inline, protected, virtual]

Reimplemented in HDHRStreamHandler.

Definition at line 77 of file streamhandler.h.

Referenced by RemoveAllPIDFilters().

virtual void StreamHandler::CycleFiltersByPriority ( void  ) [inline, protected, virtual]

Reimplemented in DVBStreamHandler.

Definition at line 78 of file streamhandler.h.

Referenced by AddPIDFilter(), RemovePIDFilter(), and UpdateFiltersFromStreamData().

PIDPriority StreamHandler::GetPIDPriority ( uint  pid) const [protected]

Definition at line 365 of file streamhandler.cpp.

Referenced by DVBStreamHandler::CycleFiltersByPriority().

virtual void StreamHandler::ReaderPaused ( int  fd) [inline, protected, virtual]

Implements DeviceReaderCB.

Definition at line 83 of file streamhandler.h.

virtual void StreamHandler::PriorityEvent ( int  fd) [inline, protected, virtual]

Implements DeviceReaderCB.

Reimplemented in ASIStreamHandler.

Definition at line 84 of file streamhandler.h.

virtual PIDInfo* StreamHandler::CreatePIDInfo ( uint  pid,
uint  stream_type,
int  pes_type 
) [inline, protected, virtual]

Reimplemented in DVBStreamHandler.

Definition at line 86 of file streamhandler.h.

Referenced by UpdateFiltersFromStreamData().

virtual void StreamHandler::AddNamedOutputFile ( const QString &  filename) [inline, protected, virtual]

Called with _listener_lock locked just after adding new output file.

Reimplemented in ASIStreamHandler.

Definition at line 91 of file streamhandler.h.

Referenced by AddListener().

virtual void StreamHandler::RemoveNamedOutputFile ( const QString &  filename) [inline, protected, virtual]

Called with _listener_lock locked just before removing old output file.

Reimplemented in ASIStreamHandler.

Definition at line 93 of file streamhandler.h.

Referenced by RemoveListener().

virtual void StreamHandler::SetRunningDesired ( bool  desired) [inline, protected, virtual]

At minimum this sets _running_desired, this may also send signals to anything that might be blocking the run() loop.

Note:
: The _start_stop_lock must be held when this is called.

Reimplemented in ASIStreamHandler, and DVBStreamHandler.

Definition at line 97 of file streamhandler.h.

Referenced by Start(), and Stop().


Member Data Documentation

QString StreamHandler::_device [protected]

Definition at line 102 of file streamhandler.h.

Referenced by AddListener(), DVBStreamHandler::run(), and Start().

QMutex StreamHandler::_start_stop_lock [mutable, protected]
volatile bool StreamHandler::_running_desired [protected]
volatile bool StreamHandler::_error [protected]

Definition at line 107 of file streamhandler.h.

Referenced by IsRunning(), SetRunning(), Start(), Stop(), and ~StreamHandler().

Definition at line 108 of file streamhandler.h.

Referenced by SetRunning(), and Start().

Definition at line 109 of file streamhandler.h.

Referenced by DVBStreamHandler::CycleFiltersByPriority(), SetRunning(), and Start().

QWaitCondition StreamHandler::_running_state_changed [protected]

Definition at line 110 of file streamhandler.h.

Referenced by SetRunning(), Start(), and Stop().

QMutex StreamHandler::_pid_lock [mutable, protected]
vector<uint> StreamHandler::_eit_pids [protected]

Definition at line 113 of file streamhandler.h.

Referenced by Start(), and UpdateListeningForEIT().

Definition at line 115 of file streamhandler.h.

Referenced by DVBStreamHandler::CycleFiltersByPriority(), and RemovePIDFilter().

QMutex StreamHandler::_listener_lock [mutable, protected]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends