TSDuck v3.43-4441
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
ts::tr101290 Namespace Reference

Definitions for ETSI TR 101 290. More...

Classes

class  Analyzer
 A class which analyzes a transport stream according to ETSI TR 101 290. More...
 
class  CounterDescription
 Description of one TR 101 290 counter. More...
 
class  Counters
 Array of error counters as defined in ETSI TR 101 290. More...
 
class  ErrorHandlerInterface
 Abstract interface to receive ETSI TR 101 290 errors. More...
 

Typedefs

using CountersByPID = std::map< PID, Counters >
 A map of error counters, as defined in ETSI TR 101 290, indexed by PID.
 

Enumerations

enum  ErrorCounter {
  TS_sync_loss = 0 ,
  Sync_byte_error ,
  PAT_error ,
  PAT_error_2 ,
  Continuity_count_error ,
  PMT_error ,
  PMT_error_2 ,
  PID_error ,
  Transport_error ,
  CRC_error ,
  CRC_error_2 ,
  PCR_error ,
  PCR_repetition_error ,
  PCR_discontinuity_indicator_error ,
  PCR_accuracy_error ,
  PTS_error ,
  CAT_error ,
  NIT_error ,
  NIT_actual_error ,
  NIT_other_error ,
  SI_repetition_error ,
  SI_PID_error ,
  Buffer_error ,
  Unreferenced_PID ,
  SDT_error ,
  SDT_actual_error ,
  SDT_other_error ,
  EIT_error ,
  EIT_actual_error ,
  EIT_other_error ,
  EIT_PF_error ,
  RST_error ,
  TDT_error ,
  Empty_buffer_error ,
  Data_delay_error ,
  packet_count ,
  COUNTER_COUNT
}
 List of error counters as defined in ETSI TR 101 290. More...
 

Functions

const CounterDescriptionGetCounterDescription (ErrorCounter counter)
 Get the description of one ETSI TR 101 290 error counter.
 
const std::array< CounterDescription, COUNTER_COUNT > & GetCounterDescriptions ()
 Get the description of all ETSI TR 101 290 error counters.
 

Variables

constexpr cn::seconds DEFAULT_MAX_PID_INTERVAL = cn::seconds(5)
 Default maximum packet interval in "user PID's" as defined by PID_error.
 
constexpr size_t DEFAULT_TS_SYNC_LOST = 5
 Default number of consecutive invalid TS sync bytes before declaring TS sync loss.
 
constexpr int INFO_SEVERITY = 4
 Pseudo-severity for informational (non-error) data.
 
constexpr cn::seconds MAX_BAT_INTERVAL = cn::seconds(10)
 Maximum interval between two BAT.
 
constexpr cn::seconds MAX_EIT_PF_ACTUAL_INTERVAL = cn::seconds(2)
 Maximum interval between two EIT p/f Actual.
 
constexpr cn::seconds MAX_EIT_PF_OTHER_INTERVAL = cn::seconds(10)
 Maximum interval between two EIT p/f Other.
 
constexpr cn::seconds MAX_NIT_ACTUAL_INTERVAL = cn::seconds(10)
 Maximum interval between two NIT Actual.
 
constexpr cn::seconds MAX_NIT_INTERVAL = cn::seconds(10)
 Maximum interval between two NIT sections, regardless of type.
 
constexpr cn::seconds MAX_NIT_OTHER_INTERVAL = cn::seconds(10)
 Maximum interval between two NIT Other.
 
constexpr cn::milliseconds MAX_PAT_INTERVAL = cn::milliseconds(500)
 Maximum interval between two PAT.
 
constexpr cn::milliseconds MAX_PCR_DIFFERENCE = cn::milliseconds(100)
 Maximum difference of value between two PCR in the same PID.
 
constexpr cn::milliseconds MAX_PCR_INTERVAL = cn::milliseconds(100)
 Maximum interval between two PCR in the same PID.
 
constexpr cn::milliseconds MAX_PID_REFERENCE_INTERVAL = cn::milliseconds(500)
 Maximum interval between the first packet of a PID and the time it is referenced.
 
constexpr cn::milliseconds MAX_PMT_INTERVAL = cn::milliseconds(500)
 Maximum interval between two PMT.
 
constexpr cn::milliseconds MAX_PTS_INTERVAL = cn::milliseconds(700)
 Maximum interval between two PTS in the same PID.
 
constexpr cn::seconds MAX_SDT_ACTUAL_INTERVAL = cn::seconds(2)
 Maximum interval between two SDT Actual.
 
constexpr cn::seconds MAX_SDT_OTHER_INTERVAL = cn::seconds(10)
 Maximum interval between two SDT Other.
 
constexpr cn::seconds MAX_TDT_INTERVAL = cn::seconds(30)
 Maximum interval between two TDT.
 
constexpr cn::seconds MAX_TOT_INTERVAL = cn::seconds(30)
 Maximum interval between two TDT.
 
constexpr cn::milliseconds MIN_EIT_PF_ACTUAL_INTERVAL = cn::milliseconds(25)
 Minimum interval between two EIT p/f Actual.
 
constexpr cn::milliseconds MIN_NIT_ACTUAL_INTERVAL = cn::milliseconds(25)
 Minimum interval between two NIT Actual.
 
constexpr cn::milliseconds MIN_RST_INTERVAL = cn::milliseconds(25)
 Minimum interval between two RST.
 
constexpr cn::milliseconds MIN_SDT_ACTUAL_INTERVAL = cn::milliseconds(25)
 Minimum interval between two SDT Actual.
 
constexpr cn::milliseconds MIN_TDT_INTERVAL = cn::milliseconds(25)
 Minimum interval between two TDT.
 

Detailed Description

Definitions for ETSI TR 101 290.

See also
ETSI TR 101 290 V1.4.1 (2020-06): Digital Video Broadcasting(DVB); Measurement guidelines for DVB systems.

The document ETSI TR 101 290 defines measurement criteria for MPEG/DVB transport streams. It is used by TV operators to monitor the stability of their network. It also used as a commonly accepted criteria of quality for broadcast networks.

Enumeration Type Documentation

◆ ErrorCounter

List of error counters as defined in ETSI TR 101 290.

The names are the same as the counter names in ETSI TR 101 290.

Enumerator
TS_sync_loss 

No 1.1 (maybe unreliable, depending on input plugin)

Sync_byte_error 

No 1.2 (maybe unreliable, depending on input plugin)

PAT_error 

No 1.3.

PAT_error_2 

No 1.3.a.

Continuity_count_error 

No 1.4.

PMT_error 

No 1.5.

PMT_error_2 

No 1.5.a.

PID_error 

No 1.6.

Transport_error 

No 2.1.

CRC_error 

No 2.2.

CRC_error_2 

CRC error in all other cases than CRC_error.

PCR_error 

No 2.3.

PCR_repetition_error 

No 2.3.a.

PCR_discontinuity_indicator_error 

No 2.3b.

PCR_accuracy_error 

No 2.4 (TODO)

PTS_error 

No 2.5.

CAT_error 

No 2.6.

NIT_error 

No 3.1.

NIT_actual_error 

No 3.1.a.

NIT_other_error 

No 3.1.b.

SI_repetition_error 

No 3.2.

SI_PID_error 

No 3.2/2U (added)

Buffer_error 

No 3.3 (unimplemented)

Unreferenced_PID 

No 3.4.

SDT_error 

No 3.5.

SDT_actual_error 

No 3.5.a.

SDT_other_error 

No 3.5.b.

EIT_error 

No 3.6.

EIT_actual_error 

No 3.6.a.

EIT_other_error 

No 3.6.b.

EIT_PF_error 

No 3.6.c.

RST_error 

No 3.7.

TDT_error 

No 3.8.

Empty_buffer_error 

No 3.9 (unimplemented)

Data_delay_error 

No 3.10 (unimplemented)

packet_count 

Number of TS packets during measurement interval.

COUNTER_COUNT 

Number defined ETSI TR 101 290 counters.

Function Documentation

◆ GetCounterDescription()

const CounterDescription & ts::tr101290::GetCounterDescription ( ErrorCounter  counter)

Get the description of one ETSI TR 101 290 error counter.

Parameters
[in]counterThe counter to search.
Returns
A constant reference to the counter's description.

◆ GetCounterDescriptions()

const std::array< CounterDescription, COUNTER_COUNT > & ts::tr101290::GetCounterDescriptions ( )

Get the description of all ETSI TR 101 290 error counters.

Returns
A constant reference to an array of descriptions, indexed by ErrorCounter value.

Variable Documentation

◆ INFO_SEVERITY

constexpr int ts::tr101290::INFO_SEVERITY = 4
constexpr

Pseudo-severity for informational (non-error) data.

ETSI TR 101 290 defines three types of error severity, from 1 (most severe, section 5.2.1) to 3 (less severe, section 5.2.3). We add a 4th level of severity for informational counters.

◆ MAX_PID_REFERENCE_INTERVAL

constexpr cn::milliseconds ts::tr101290::MAX_PID_REFERENCE_INTERVAL = cn::milliseconds(500)
constexpr

Maximum interval between the first packet of a PID and the time it is referenced.

When jumping into a transport stream, we get audio, video, etc. packets possibly before the corresponding PMT. The PID is initially unreferenced but we need to find the reference (in the PMT) within that interval.