TSDuck v3.38-3699
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
ts::CASMapper Class Reference

This class maps PID's with CA system ids. More...

#include <tsCASMapper.h>

Inheritance diagram for ts::CASMapper:
Collaboration diagram for ts::CASMapper:

Public Member Functions

 CASMapper (DuckContext &duck)
 Constructor.
 
uint16_t casId (PID pid) const
 Get the CAS id of a CA PID (ECM or EMM).
 
void feedPacket (const TSPacket &pkt)
 This method feeds the CAS mapper with a TS packet.
 
bool getCADescriptor (PID pid, CADescriptorPtr &desc) const
 Get the CA_descriptor which describes a CA PID (ECM or EMM).
 
bool isECM (PID pid) const
 Check if a PID carries ECM's.
 
bool isEMM (PID pid) const
 Check if a PID carries EMM's.
 
bool knownPID (PID pid) const
 Check if a PID is a known CA PID.
 
void reset ()
 Reset the CAS mapper.
 
void setCurrentNext (bool current, bool next)
 Filter PSI tables based on current/next indicator.
 
void trackInvalidSectionVersions (bool on)
 Track / untrack invalid section version numbers.
 

Detailed Description

This class maps PID's with CA system ids.

All packets are passed through this object. It tracks the location of all EMM and ECM PID's and records the corresponding CAS attributes.

Constructor & Destructor Documentation

◆ CASMapper()

ts::CASMapper::CASMapper ( DuckContext duck)

Constructor.

Parameters
[in,out]duckTSDuck execution context. The reference is kept inside this object.

Member Function Documentation

◆ feedPacket()

void ts::CASMapper::feedPacket ( const TSPacket pkt)
inline

This method feeds the CAS mapper with a TS packet.

Parameters
[in]pktA new transport stream packet.

◆ setCurrentNext()

void ts::CASMapper::setCurrentNext ( bool  current,
bool  next 
)
inline

Filter PSI tables based on current/next indicator.

Parameters
[in]currentUse "current" tables. This is true by default.
[in]nextUse "next" tables. This is false by default.

◆ trackInvalidSectionVersions()

void ts::CASMapper::trackInvalidSectionVersions ( bool  on)
inline

Track / untrack invalid section version numbers.

By default, if a section version does not change, the section is ignored. When this tracking is enabled, the content of the sections are tracked and a table is demuxed when a section version does not change but the content changes. This is considered as an error according to MPEG rules.

Parameters
[in]onTrack invalid section versions. This is false by default.

◆ knownPID()

bool ts::CASMapper::knownPID ( PID  pid) const
inline

Check if a PID is a known CA PID.

Parameters
[in]pidA PID to check.
Returns
True if @ pid is a known ECM or EMM PID.

◆ casId()

uint16_t ts::CASMapper::casId ( PID  pid) const

Get the CAS id of a CA PID (ECM or EMM).

Parameters
[in]pidA PID to check.
Returns
The CAS id or zero if the PID is not known.

◆ isECM()

bool ts::CASMapper::isECM ( PID  pid) const

Check if a PID carries ECM's.

Parameters
[in]pidA PID to check.
Returns
True if the PID carries ECM's, false otherwise.

◆ isEMM()

bool ts::CASMapper::isEMM ( PID  pid) const

Check if a PID carries EMM's.

Parameters
[in]pidA PID to check.
Returns
True if the PID carries EMM's, false otherwise.

◆ getCADescriptor()

bool ts::CASMapper::getCADescriptor ( PID  pid,
CADescriptorPtr desc 
) const

Get the CA_descriptor which describes a CA PID (ECM or EMM).

Parameters
[in]pidA PID to check.
[out]descA safe pointer to the associated CA_descriptor.
Returns
True if the CA_descriptor was found, false otherwise.

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