TSDuck v3.40-4033
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
ts::CASSelectionArgs Class Reference

Command line arguments to select Conditional Access Systems. More...

#include <tsCASSelectionArgs.h>

Public Member Functions

 CASSelectionArgs ()=default
 Constructor.
 
size_t addMatchingPIDs (PIDSet &pids, const CAT &cat, Report &report=(ts::NullReport::Instance())) const
 Analyze all CA_descriptors in a CAT and locate all matching EMM PID's.
 
size_t addMatchingPIDs (PIDSet &pids, const DescriptorList &dlist, TID tid, Report &report=(ts::NullReport::Instance())) const
 Analyze all CA_descriptors in a descriptor list and locate all matching PID's.
 
size_t addMatchingPIDs (PIDSet &pids, const PMT &pmt, Report &report=(ts::NullReport::Instance())) const
 Analyze all CA_descriptors in a PMT and locate all matching ECM PID's.
 
bool casMatch (CASID cas) const
 Check if the specified CAS id matches the selection criteria.
 
void defineArgs (Args &args)
 Add command line option definitions in an Args.
 
bool loadArgs (DuckContext &duck, Args &args)
 Load arguments from command line.
 
bool operatorMatch (uint32_t oper) const
 Check if the specified operator id matches the selection criteria.
 

Public Attributes

uint32_t cas_oper = 0
 CA operator id (depends on the CAS).
 
CASID max_cas_id = 0
 Maximum CA system id for ECM or EMM.
 
CASID min_cas_id = 0
 Minimum CA system id for ECM or EMM.
 
bool pass_ecm = false
 Pass PIDs containing ECM.
 
bool pass_emm = false
 Pass PIDs containing EMM.
 

Detailed Description

Command line arguments to select Conditional Access Systems.

Member Function Documentation

◆ defineArgs()

void ts::CASSelectionArgs::defineArgs ( Args args)

Add command line option definitions in an Args.

Parameters
[in,out]argsCommand line arguments to update.

◆ loadArgs()

bool ts::CASSelectionArgs::loadArgs ( DuckContext duck,
Args args 
)

Load arguments from command line.

Args error indicator is set in case of incorrect arguments.

Parameters
[in,out]duckTSDuck execution context.
[in,out]argsCommand line arguments.
Returns
True on success, false on error in argument line.

◆ casMatch()

bool ts::CASSelectionArgs::casMatch ( CASID  cas) const

Check if the specified CAS id matches the selection criteria.

Parameters
[in]casA CAS id.
Returns
True if cas matches the selection criteria.

◆ operatorMatch()

bool ts::CASSelectionArgs::operatorMatch ( uint32_t  oper) const

Check if the specified operator id matches the selection criteria.

Parameters
[in]operAn operator id.
Returns
True if oper matches the selection criteria.

◆ addMatchingPIDs() [1/3]

size_t ts::CASSelectionArgs::addMatchingPIDs ( PIDSet pids,
const DescriptorList dlist,
TID  tid,
Report report = (ts::NullReport::Instance()) 
) const

Analyze all CA_descriptors in a descriptor list and locate all matching PID's.

Parameters
[in,out]pidsAll patching PID's are added in this PID set.
[in]dlistA list of descriptors.
[in]tidTable id of the table from which the descriptor comes.
[in,out]reportWhere to log debug messages.
Returns
The number of matching PID's. Note that some of them may have been already in pids, so this may not be the number of added PID's.

◆ addMatchingPIDs() [2/3]

size_t ts::CASSelectionArgs::addMatchingPIDs ( PIDSet pids,
const CAT cat,
Report report = (ts::NullReport::Instance()) 
) const

Analyze all CA_descriptors in a CAT and locate all matching EMM PID's.

Parameters
[in,out]pidsAll patching PID's are added in this PID set.
[in]catA CAT.
[in,out]reportWhere to log debug messages.
Returns
The number of matching PID's. Note that some of them may have been already in pids, so this may not be the number of added PID's.

◆ addMatchingPIDs() [3/3]

size_t ts::CASSelectionArgs::addMatchingPIDs ( PIDSet pids,
const PMT pmt,
Report report = (ts::NullReport::Instance()) 
) const

Analyze all CA_descriptors in a PMT and locate all matching ECM PID's.

Parameters
[in,out]pidsAll patching PID's are added in this PID set.
[in]pmta PMT.
[in,out]reportWhere to log debug messages.
Returns
The number of matching PID's. Note that some of them may have been already in pids, so this may not be the number of added PID's.

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