This class extracts PSI/SI sections and tables from TS packets. More...
Classes | |
struct | EtidContext |
This internal structure contains the analysis context for one TID/TIDext into one PID. More... | |
struct | PidContext |
This internal structure contains the analysis context for one PID. More... | |
struct | Status |
Demux status information. More... | |
Public Member Functions | |
QtsSectionDemux (QtsTableHandlerInterface *tableHandler=0, QtsSectionHandlerInterface *sectionHandler=0, const QtsPidSet &pidFilter=QtsNoPid) | |
Constructor. More... | |
void | getStatus (Status &status) const |
Get the current status of the demux. More... | |
bool | hasErrors () const |
Check if the demux has errors. More... | |
virtual void | reset () Q_DECL_OVERRIDE |
Reset the analysis context (partially built sections and tables). More... | |
virtual void | resetPid (QtsPid pid) Q_DECL_OVERRIDE |
Reset the analysis context for one single PID. More... | |
void | setSectionHandler (QtsSectionHandlerInterface *handler) |
Set the section handler. More... | |
void | setTableHandler (QtsTableHandlerInterface *handler) |
Set the table handler. More... | |
![]() | |
QtsDemux (const QtsPidSet &pidFilter=QtsAllPids) | |
Constructor. More... | |
virtual | ~QtsDemux () |
Virtual destructor. More... | |
virtual void | addPid (QtsPid pid) |
Add a PID to filter. More... | |
void | feedPacket (const QtsTsPacket &packet) |
Feed the demux with a TS packet. More... | |
int | filteredPidCount () const |
Get the number of PID's which are filtered by the demux. More... | |
qint64 | lastPcr () const |
Get the last PCR found in the stream. More... | |
QtsPacketCounter | packetCount () const |
Get the number of process TS packets. More... | |
virtual void | removePid (QtsPid pid) |
Remove a PID to filter. More... | |
void | resetPacketCount () |
Reset the number of process TS packets. More... | |
virtual void | setPidFilter (const QtsPidSet &pidFilter) |
Set the list of PID's to filter. More... | |
Private Types | |
typedef QMap< QtsExtTableId, EtidContext > | EtidContextMap |
Map of EtidContext index by ETID. More... | |
typedef QMap< QtsPid, PidContext > | PidContextMap |
Map of PidContext index by PID. More... | |
Private Member Functions | |
void | processTsPacket (const QtsTsPacket &packet) Q_DECL_OVERRIDE |
Feed the demux with a TS packet (PID already filtered). More... | |
Private Attributes | |
bool | _inHandler |
True when in the context of a table/section handler. More... | |
QtsPid | _pidInHandler |
PID which is currently processed by handler. More... | |
PidContextMap | _pids |
State of the PID's analysis. More... | |
bool | _resetPending |
Delayed reset(). More... | |
QtsSectionHandlerInterface * | _sectionHandler |
Handler to invoke for each section. More... | |
Status | _status |
State of the demux. More... | |
QtsTableHandlerInterface * | _tableHandler |
Handler to invoke for each new table. More... | |
This class extracts PSI/SI sections and tables from TS packets.
General notes:
|
private |
Map of EtidContext index by ETID.
|
private |
Map of PidContext index by PID.
QtsSectionDemux::QtsSectionDemux | ( | QtsTableHandlerInterface * | tableHandler = 0 , |
QtsSectionHandlerInterface * | sectionHandler = 0 , |
||
const QtsPidSet & | pidFilter = QtsNoPid |
||
) |
Constructor.
[in] | tableHandler | Handler to invoke for each new table. Default: none. |
[in] | sectionHandler | Handler to invoke for each section. Default: none. |
[in] | pidFilter | Set of PID's to filter. Default: none. |
|
inline |
Set the table handler.
[in] | handler | The table handler. |
|
inline |
Set the section handler.
[in] | handler | The section handler. |
|
virtual |
Reset the analysis context (partially built sections and tables).
Useful when the transport stream changes. The PID filter and the handlers are not modified.
Reimplemented from QtsDemux.
Reimplemented in QtsStandaloneTableDemux.
|
virtual |
Reset the analysis context for one single PID.
[in] | pid | PID to reset. |
Reimplemented from QtsDemux.
Reimplemented in QtsStandaloneTableDemux.
|
inline |
Get the current status of the demux.
[out] | status | Receives the current status of the demux. |
|
inline |
Check if the demux has errors.
|
privatevirtual |
Feed the demux with a TS packet (PID already filtered).
[in] | packet | The TS packet to process. |
Implements QtsDemux.
|
private |
Handler to invoke for each new table.
|
private |
Handler to invoke for each section.
|
private |
State of the PID's analysis.
|
private |
State of the demux.
|
private |
True when in the context of a table/section handler.
|
private |
PID which is currently processed by handler.
|
private |
Delayed reset().