![]() |
TSDuck v3.46-4930
MPEG Transport Stream Toolkit
|
#include <tsContinuityAnalyzer.h>


Public Types | |
| using | SuperClass = AbstractDemux |
Public Member Functions | |
| ContinuityAnalyzer (DuckContext &duck, const PIDSet &pid_filter=NoPID()) | |
| virtual void | addPID (PID pid) |
| virtual void | addPIDs (const PIDSet &pids) |
| int | demuxId () const |
| DuckContext & | duck () |
| size_t | dupCount (PID pid) const |
| PacketCounter | errorCount () const |
| virtual void | feedPacket (const TSPacket &pkt) override |
| uint8_t | firstCC (PID pid) const |
| PacketCounter | fixCount () const |
| void | getLastPacket (PID pid, TSPacket &packet) const |
| virtual bool | isFilteredPID (PID pid) const |
| uint8_t | lastCC (PID pid) const |
| TSPacket | lastPacket (PID pid) const |
| virtual size_t | pidCount () const |
| PacketCounter | processedPackets () const |
| bool | processPacket (const TSPacket &pkt) |
| bool | processPacket (TSPacket &pkt) |
| virtual void | removePID (PID pid) |
| Report & | report () |
| virtual void | reset () |
| virtual void | resetPID (PID pid) |
| void | setDemuxId (int id) |
| void | setDisplay (bool display) |
| void | setFix (bool fix) |
| void | setGenerator (bool gen) |
| void | setJSON (bool on) |
| void | setMessagePrefix (const UString &prefix) |
| void | setMessageSeverity (int level) |
| virtual void | setPIDFilter (const PIDSet &pid_filter) |
| void | setReplicateDuplicated (bool on) |
| PacketCounter | totalPackets () const |
Static Public Member Functions | |
| static size_t | MissingPackets (int cc1, int cc2) |
Protected Member Functions | |
| bool | afterCallingHandler (bool execute_delayed_operations=true) |
| void | beforeCallingHandler (PID pid=PID_NULL) |
| virtual void | immediateReset () override |
| virtual void | immediateResetPID (PID pid) override |
Continuity counters analysis and repair.
Explicit reference to superclass.
|
explicit |
Constructor.
| [in,out] | duck | TSDuck execution context. The reference is kept inside the demux. |
| [in] | pid_filter | The set of PID's to analyze or fix. |
|
inline |
Process a constant TS packet. Can be used only to report discontinuity errors.
| [in] | pkt | A transport stream packet. |
|
inline |
Process or modify a TS packet.
| [in,out] | pkt | A transport stream packet. It can be modified only when error fixing or generator mode is activated. |
|
inline |
Get the number of fixed (modified) TS packets.
|
inline |
Get the number of discontinuity errors.
|
inline |
Change error reporting.
| [in] | display | When true, display discontinuity errors. |
|
inline |
Change error fixing.
| [in] | fix | When true, fix discontinuity errors. |
|
inline |
When fixing errors, specify how to handle duplicated packets. Two successive packets in the same PID are considered as duplicated if they have the same continuity counter and same content (except PCR, if any).
| [in] | on | When true (the default), duplicated input packets are replicated as duplicated on output (the corresponding output packets have the same continuity counters). When false, the input packets are not considered as duplicated and the output packets have incremented continuity counters. |
|
inline |
Set generator mode. When the generator mode is on, the input continuity counters are always ignored. The output continuity counters are updated to create a continuous stream. No error is reported.
| [in] | gen | When true, activate generator mode. |
|
inline |
Define the severity of messages. The default severity is Severity::Info.
| [in] | level | The severity of each message. |
|
inline |
Define a prefix string to be displayed with each message.
| [in] | prefix | The prefix string to be displayed with each message. |
|
inline |
Specify to log messages in JSON format. If a message prefix is set, it is logged just before the JSON structure and can be used to locate the appropriate JSON messages in a flow of logs.
| [in] | on | Set the JSON mode on or off. |
| uint8_t ts::ContinuityAnalyzer::firstCC | ( | PID | pid | ) | const |
| uint8_t ts::ContinuityAnalyzer::lastCC | ( | PID | pid | ) | const |
Get the last CC in a PID.
| [in] | pid | The PID to check. |
| size_t ts::ContinuityAnalyzer::dupCount | ( | PID | pid | ) | const |
Get the last transport stream packet that was passed to feedPacket() for a PID.
| [in] | pid | The PID to check. |
Get the last transport stream packet that was passed to feedPacket() for a PID.
| [in] | pid | The PID to check. |
| [out] | packet | The last packet for the PID or ts::NullPacket when the PID is not filtered. |
|
static |
Compute the number of missing packets between two continuity counters.
| [in] | cc1 | First continuity counter. |
| [in] | cc2 | Second continuity counter. |
|
overridevirtual |
The following method feeds the demux with a TS packet.
| [in] | pkt | A TS packet. |
Reimplemented from ts::AbstractDemux.
|
overrideprotectedvirtual |
Reset the demux immediately.
Reimplemented from ts::AbstractDemux.
|
overrideprotectedvirtual |
Reset the demuxing context for one single PID immediately.
| [in] | pid | The PID to reset. |
Reimplemented from ts::AbstractDemux.
|
inlineinherited |
|
inlineinherited |
Get the associated TSDuck execution context.
|
virtualinherited |
Replace the list of PID's to filter. The method resetPID() is invoked on each removed PID.
| [in] | pid_filter | The list of PID's to filter. |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
Add several PID's to filter.
| [in] | pids | The list of new PID's to filter. |
Reimplemented in ts::MPEDemux.
|
virtualinherited |
Remove one PID to filter. The method resetPID() is invoked on pid.
| [in] | pid | The PID to no longer filter. |
Reimplemented in ts::MPEDemux.
|
inlinevirtualinherited |
|
inlineinherited |
Get the current total number of TS packets which were processed by the demux.
|
inlineinherited |
Get the number of processed TS packets in filtered PIDs.
|
inlinevirtualinherited |
|
virtualinherited |
Reset the demux.
Useful when the transport stream changes. The PID filter and the handlers are not modified.
If invoked in an application-handler, the operation is delayed until the handler terminates. For subclass implementers, see beforeCallingHandler() and override immediateReset() instead of reset().
Reimplemented in ts::StandaloneTableDemux.
|
virtualinherited |
Reset the demuxing context for one single PID. Forget all previous partially demuxed data on this PID.
If invoked in an application-handler, the operation is delayed until the handler terminates. For subclass implementers, see beforeCallingHandler() and override immediateResetPID() instead of resetPID().
| [in] | pid | The PID to reset. |
Reimplemented in ts::StandaloneTableDemux.
|
inlineinherited |
Set some arbitrary "demux id" value. This value is chosen and set by the application. It can be retrieved later if a table or section handler is used by several demux. The demux id is not interpreted by the demux, it is only stored for the application. The initial value of a demux id is zero.
| [in] | id | Application-defined demux id to assign. |
|
inlineinherited |
Get the "demux id" value, as previously stored by the application.
Helper for subclass, before invoking an application-defined handler.
The idea is to protect the integrity of the demux during the execution of an application-defined handler. The handler is invoked in the middle of an operation but the handler may call reset() or resetPID(). Executing the reset in the middle of an operation may be problematic. By using beforeCallingHandler() and afterCallingHandler(), all reset operations in between are delayed after the execution of the handler.
Example:
| [in] | pid | The PID for which the handler will be called. All reset operations on this PID will be delayed until afterCallingHandler(). |
|
protectedinherited |
Helper for subclass, after invoking an application-defined handler.
| [in] | execute_delayed_operations | When true (the default), execute all pending reset operations. |