TSDuck v3.40-4034
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
MPEG-DVB core

MPEG-DVB core features. More...

Collaboration diagram for MPEG-DVB core:

Files

file  tsATSC.h
 Generic ATSC definitions.
 
file  tsAVC.h
 Basic definitions for Advanced Video Coding (AVC, H.264) standard.
 
file  tsCodecType.h
 Known video, audio or data encoding formats.
 
file  tsDID.h
 MPEG PSI/SI descriptors identifiers.
 
file  tsDVB.h
 Generic DVB definitions.
 
file  tsECMGSCS.h
 DVB SimulCrypt ECMG <=> SCS protocol.
 
file  tsEMMGMUX.h
 DVB SimulCrypt EMMG/PDG <=> MUX protocol.
 
file  tsHEVC.h
 Basic definitions for High Efficiency Video Coding (HEVC, H.265) standard.
 
file  tsISDB.h
 Generic ISDB definitions.
 
file  tsMJD.h
 Modified Julian Date (MJD) utilities.
 
file  tsMPEG2.h
 Basic definitions for MPEG-2 video coding standard.
 
file  tsNames.h
 Names of various MPEG entities.
 
file  tsOUI.h
 Common definitions for IEEE Organizationally Unique Identifier (OUI).
 
file  tsPDS.h
 DVB-registered private data specifier (PDS) values.
 
file  tsPES.h
 Common definitions for MPEG PES (Packetized Elementary Stream) layer.
 
file  tsPSI.h
 Common definitions for MPEG PSI (Program Specific Information) layer.
 
file  tsREGID.h
 Registration id in MPEG-defined registration_descriptor.
 
file  tsStreamType.h
 Stream type values, as used in the PMT.
 
file  tsT2MI.h
 Common definitions for T2-MI (DVB-T2 Modulator Interface).
 
file  tsTeletext.h
 Common definitions for Teletext PES packets.
 
file  tsTID.h
 MPEG PSI/SI table identifiers.
 
file  tsTS.h
 Common definitions for MPEG Transport Stream layer.
 
file  tsVVC.h
 Basic definitions for Versatile Video Coding (VVC, H.266) standard.
 

Classes

class  ts::AbstractAudioVideoAttributes
 Abstract base class for MPEG audio and video attributes. More...
 
class  ts::AbstractAVCAccessUnit
 Base class for AVC access units, aka NALunits. More...
 
class  ts::AbstractDefinedByStandards
 Abstract base class for objects which are defined by standards. More...
 
class  ts::AbstractDemux
 Abstract base class for all sorts of demux from TS packets. More...
 
class  ts::AbstractHEVCAccessUnit
 Base class for HEVC access units, aka NALunits. More...
 
class  ts::AbstractPacketizer
 Abstract superclass for packetizer classes (sections or PES packets). More...
 
class  ts::AbstractSignalization
 Abstract base class for MPEG PSI/SI tables and descriptors. More...
 
class  ts::AbstractVideoAccessUnit
 Base class for video access units, aka NALunits. More...
 
class  ts::AbstractVideoData
 Abstract base class for AVC data, either access units or structures. More...
 
class  ts::AbstractVideoStructure
 Base class for sub-structures inside video access units. More...
 
class  ts::AbstractVVCAccessUnit
 Base class for VVC (H.266) access units, aka NALunits. More...
 
class  ts::AC3Attributes
 AC-3 (DD) and Enhanced-AC-3 (DD+) audio attributes. More...
 
class  ts::AccessUnitIterator
 Iterator for common AVC/HEVC/VVC video access units. More...
 
class  ts::ApplicationIdentifier
 Representation of an Application Identifier. More...
 
class  ts::ARIBCharset
 Definition of the ARIB STD-B24 character set (ISDB Japan). More...
 
class  ts::ATSCMultipleString
 Representation of an ATSC multiple_string_structure. More...
 
class  ts::AudioLanguageOptions
 Options to update the language of an audio stream in a PMT. More...
 
class  ts::AVCAccessUnitDelimiter
 Representation of an AVC access unit delimiter (AUD). More...
 
class  ts::AVCAttributes
 Video attributes for Advanced Video Coding. More...
 
class  ts::AVCHRDParameters
 AVC HRD (Hypothetical Reference Decoder) parameters. More...
 
class  ts::AVCParser
 Parser for Advanced Video Coding data. More...
 
class  ts::AVCSequenceParameterSet
 Representation of an AVC sequence parameter set access unit. More...
 
class  ts::AVCVUIParameters
 AVC VUI (Video Usability Information) parameters. More...
 
class  ts::BinaryTable
 Representation of MPEG PSI/SI tables in binary form (ie. More...
 
class  ts::BitRateRegulator
 Regulate execution speed based on a bitrate. More...
 
class  ts::CASDate< YEARBASE >
 Template representation of a CAS date. More...
 
class  ts::CASMapper
 This class maps PID's with CA system ids. More...
 
class  ts::ChannelFile
 An XML file containing the description of TV channels and their networks. More...
 
class  ts::Charset
 Definition of a character set for PSI/SI encoding. More...
 
class  ts::ContinuityAnalyzer
 Continuity counters analysis and repair. More...
 
class  ts::CRC32
 Cyclic Redundancy Check as used in MPEG sections. More...
 
class  ts::CyclingPacketizer
 Cyclic packetization of MPEG sections into Transport Stream packets. More...
 
class  ts::DemuxedData
 Base class for all kinds of demuxed data. More...
 
class  ts::Descriptor
 Representation of a MPEG PSI/SI descriptors in binary format. More...
 
class  ts::DescriptorContext
 A class to lookup the context of MPEG PSI/SI descriptors. More...
 
class  ts::DescriptorList
 List of MPEG PSI/SI descriptors. More...
 
class  ts::DumpCharset
 Definition of the fake character set to dump string binary data. More...
 
class  ts::DVBCharset
 Definition of the generic DVB character sets. More...
 
class  ts::DVBCharTable
 Definition of a character set for DVB encoding. More...
 
class  ts::DVBCharTableSingleByte
 Definition of a DVB character set using a single byte per character. More...
 
class  ts::DVBCharTableUTF16
 Definition of the UTF-8 DVB character set. More...
 
class  ts::DVBCharTableUTF8
 Definition of the UTF-8 DVB character set. More...
 
class  ts::ECMGClient
 A DVB-ECMG client which acts as a DVB-SCS. More...
 
class  ts::ECMGClientArgs
 Command line arguments for the class ECMGClient. More...
 
class  ts::ECMGClientHandlerInterface
 Interface for classes which need to be notified of asynchronous ECM generation using ECMGClient. More...
 
class  ts::EDID
 Extended MPEG descriptor id. More...
 
class  ts::EITGenerator
 Generate and insert EIT sections based on an EPG content. More...
 
class  ts::EITProcessor
 Perform various transformations on an EIT PID. More...
 
class  ts::EITRepetitionProfile
 EIT sections repetition profile. More...
 
class  ts::EMMGClient
 A DVB-EMMG client which connects to any MUX to inject data. More...
 
class  ts::HEVCAccessUnitDelimiter
 Representation of an HEVC access unit delimiter (AUD). More...
 
class  ts::HEVCAttributes
 Video attributes for HEVC / H.265. More...
 
class  ts::HEVCHRDParameters
 HEVC HRD (Hypothetical Reference Decoder) parameters. More...
 
class  ts::HEVCProfileTierLevel
 HEVC profile, tier and level structure. More...
 
class  ts::HEVCScalingListData
 HEVC scaling list data structure. More...
 
class  ts::HEVCSequenceParameterSet
 Representation of an HEVC sequence parameter set access unit. More...
 
class  ts::HEVCShortTermReferencePictureSetList
 List of HEVC short-term reference picture sets. More...
 
class  ts::HEVCVUIParameters
 HEVC VUI (Video Usability Information) parameters. More...
 
class  ts::InvalidSectionHandlerInterface
 Abstract interface to receive an invalid MPEG section from a SectionDemux. More...
 
class  ts::ISDBTInformation
 ISDB-T Information block in a TS packet trailer (204-byte packet). More...
 
class  ts::ISDBTInformationPacket
 ISDB-T Information Packet (IIP). More...
 
class  ts::LogicalChannelNumbers
 A multi-standard storage of Logical Channel Numbers (LCN). More...
 
class  ts::MPEDemux
 This class extracts MPE (Multi-Protocol Encapsulation) datagrams from TS packets. More...
 
class  ts::MPEG2AudioAttributes
 Audio attributes for MPEG-1 / MPEG-2 audio. More...
 
class  ts::MPEG2VideoAttributes
 Video attributes for MPEG-1 and MPEG-2. More...
 
class  ts::MPEHandlerInterface
 MPE (Multi-Protocol Encapsulation) demux handler interface. More...
 
class  ts::MPEPacket
 Representation of a packet for MPE (Multi-Protocol Encapsulation). More...
 
class  ts::OneShotPacketizer
 Packetization of MPEG sections into Transport Stream packets in one shot. More...
 
class  ts::PacketDecapsulation
 An efficient TSDuck-specific TS packets decapsulation from a PID. More...
 
class  ts::PacketEncapsulation
 An efficient TSDuck-specific TS packets encapsulation in a PID. More...
 
class  ts::PacketInsertionController
 Control the insertion points of TS packets in a stream based on various criteria. More...
 
class  ts::Packetizer
 Packetization of MPEG sections into Transport Stream packets. More...
 
class  ts::PCRAnalyzer
 PCR statistics analysis. More...
 
class  ts::PCRMerger
 Adjust PCR clocks when a TS is merged into a larger one. More...
 
class  ts::PCRRegulator
 Regulate execution speed based on PCR's in one reference PID. More...
 
class  ts::PESDemux
 This class extracts PES packets from TS packets. More...
 
class  ts::PESHandlerInterface
 Abstract interface to be notified of PES packets using a PESDemux. More...
 
class  ts::PESOneShotPacketizer
 Packetization of PES data into Transport Stream packets in one shot. More...
 
class  ts::PESPacket
 Representation of MPEG PES packets. More...
 
class  ts::PESPacketizer
 Packetization of PES data into Transport Stream packets. More...
 
class  ts::PESProviderInterface
 Abstract interface for classes which provide PES packets into a Packetizer. More...
 
class  ts::PESStreamPacketizer
 Packetization of PES data into Transport Stream packets in "push" mode. More...
 
struct  ts::PIDOperator
 Association of a PID and an operator id (CAS-specific). More...
 
class  ts::PSIBuffer
 A specialized subclass of ts::Buffer for PSI serialization. More...
 
class  ts::PSILogger
 This class logs sections and tables. More...
 
class  ts::PSIMerger
 This class merges PSI/SI tables from two TS, replacing TS packets. More...
 
class  ts::PSIRepository
 A repository for known PSI/SI tables and descriptors. More...
 
class  ts::Section
 Representation of MPEG PSI/SI sections. More...
 
class  ts::SectionContext
 A base class to lookup the context of MPEG PSI/SI sections. More...
 
class  ts::SectionDemux
 This class rebuilds MPEG tables and sections from TS packets. More...
 
class  ts::SectionFile
 A binary or XML file containing PSI/SI sections and tables. More...
 
class  ts::SectionHandlerInterface
 Abstract interface to receive MPEG Section from a SectionDemux. More...
 
class  ts::SectionProviderInterface
 Abstract interface for classes which provide MPEG sections into a Packetizer. More...
 
class  ts::Service
 Describe a DVB or ATSC service. More...
 
class  ts::ServiceDiscovery
 Discover and describe a DVB service. More...
 
class  ts::ServiceIdTriplet
 Full identification of a DVB service (aka "DVB triplet"). More...
 
class  ts::SignalizationDemux
 General-purpose signalization demux. More...
 
class  ts::SignalizationHandlerInterface
 General-purpose signalization handler interface. More...
 
class  ts::SimulCryptDate
 Representation of a date in DVB SimulCrypt protocols (ETSI TS 103 197). More...
 
class  ts::SpliceInsert
 Representation of an SCTE 35 SpliceInsert command. More...
 
class  ts::SplicePrivateCommand
 Representation of an SCTE 35 private_command() structure. More...
 
class  ts::SpliceSchedule
 Representation of an SCTE 35 SpliceSchedule command. More...
 
class  ts::SpliceTime
 Representation of an SCTE 35 splice_time() structure. More...
 
class  ts::StandaloneTableDemux
 A SectionDemux which extracts MPEG tables without external handler. More...
 
class  ts::SubRipGenerator
 Generate subtitles in SubRip format (aka SRT). More...
 
class  ts::T2MIDemux
 This class analyzes T2-MI (DVB-T2 Modulator Interface) from TS packets. More...
 
class  ts::T2MIHandlerInterface
 T2-MI demux handler interface. More...
 
class  ts::T2MIPacket
 Representation of a DVB T2-MI (DVB-T2 Modulator Interface) packet. More...
 
class  ts::TableHandlerInterface
 Table handler interface. More...
 
class  ts::TablePatchXML
 Implementation of on-the-fly table patching using XML. More...
 
class  ts::TablesDisplay
 A class to display PSI/SI tables. More...
 
class  ts::TablesLogger
 This class logs sections and tables. More...
 
class  ts::TablesLoggerFilter
 The default section filter for TablesLogger. More...
 
class  ts::TablesLoggerFilterInterface
 An interface which is used to filter sections in TablesLogger. More...
 
class  ts::TablesLoggerFilterRepository
 The repository of section filters for TablesLogger. More...
 
class  ts::TeletextCharset
 Implementation of a Teletext character set. More...
 
class  ts::TeletextDemux
 This class extracts Teletext subtitles from TS packets. More...
 
class  ts::TeletextFrame
 Description of one Teletext frame. More...
 
class  ts::TeletextHandlerInterface
 Interface to be implemented by classes which need to be notified of Teletext messages using a Teletext demux. More...
 
class  ts::TimeShiftBuffer
 A TS packet buffer for time shift. More...
 
class  ts::TimeTrackerDemux
 A demux which tracks time stamps per PID. More...
 
class  ts::TransportStreamId
 Full identification of a DVB transport stream. More...
 
class  ts::TSAnalyzer
 A class which analyzes a complete transport stream. More...
 
class  ts::TSAnalyzerOptions
 Report options for the class TSAnalyzer. More...
 
class  ts::TSAnalyzerReport
 A subclass of TSAnalyzer with reporting capabilities. More...
 
class  ts::TSDatagramOutput
 Send TS packets over datagrams (UDP, SRT, RIST, etc.) More...
 
class  ts::TSDatagramOutputHandlerInterface
 Generic datagram handler interface. More...
 
class  ts::TSFile
 Transport stream file, input and/or output. More...
 
class  ts::TSFileInputArgs
 Transport stream file input with command-line arguments. More...
 
class  ts::TSFileInputBuffered
 Transport stream file input with a seekable buffer. More...
 
class  ts::TSFileOutputArgs
 Transport stream file output with command-line arguments. More...
 
class  ts::TSFileOutputResync
 A specialized form of transport stream output file with resynchronized PID and continuity counters. More...
 
class  ts::TSForkPipe
 A subclass of ts::ForkPipe which exchanges TS packets on the pipe. More...
 
class  ts::TSFuzzing
 Transport stream packets fuzzing. More...
 
class  ts::TSFuzzingArgs
 Command line arguments for transport stream packets fuzzing. More...
 
class  ts::TSPacket
 Basic definition of an MPEG-2 transport packet. More...
 
class  ts::TSPacketMetadata
 Metadata of an MPEG-2 transport packet for tsp plugins. More...
 
class  ts::TSPacketQueue
 Transport stream packet queue for inter-thread communication. More...
 
class  ts::TSPacketStream
 Read/write TS packets on a stream. More...
 
class  ts::TSPacketWindow
 A view over a window of a buffer of TS packets. More...
 
class  ts::TSScanner
 A class which scans the services of a transport stream. More...
 
class  ts::TSScrambling
 Transport stream scrambling using multiple algorithms. More...
 
class  ts::TSSpeedMetrics
 TS processing speed metrics evaluation. More...
 
class  ts::VVCAccessUnitDelimiter
 Representation of a VVC access unit delimiter (AUD). More...
 
class  ts::XDID
 eXtension Descriptor Id. More...
 
class  ts::XTID
 Extended MPEG table id. More...
 

Typedefs

using ts::MediaGuardDate = CASDate< 1990 >
 Representation of a MediaGuard date.
 
using ts::SafeAccessDate = CASDate< 2000 >
 Representation of a SafeAccess date.
 
using ts::TSPacketLabelSet = CompactBitSet< 32 >
 A set of labels used as metadata for a TS packet.
 
using ts::ViaccessDate = CASDate< 1980 >
 Representation of a Viaccess date.
 

Enumerations

enum  ts::CASFamily : uint8_t {
  ts::CAS_OTHER = 0 ,
  ts::CAS_MEDIAGUARD = 1 ,
  ts::CAS_NAGRA = 2 ,
  ts::CAS_VIACCESS = 3 ,
  ts::CAS_THALESCRYPT = 4 ,
  ts::CAS_SAFEACCESS = 5 ,
  ts::CAS_WIDEVINE = 6 ,
  ts::CAS_NDS = 7 ,
  ts::CAS_IRDETO = 8 ,
  ts::CAS_CONAX = 9
}
 Known Conditional Access Systems families. More...
 
enum class  ts::EITProfile {
  ts::EITProfile::PF_ACTUAL = 0 ,
  ts::EITProfile::PF_OTHER = 1 ,
  ts::EITProfile::SCHED_ACTUAL_PRIME = 2 ,
  ts::EITProfile::SCHED_OTHER_PRIME = 3 ,
  ts::EITProfile::SCHED_ACTUAL_LATER = 4 ,
  ts::EITProfile::SCHED_OTHER_LATER = 5
}
 List of EIT sections repetition profiles. More...
 
enum class  ts::Standards : uint16_t {
  ts::Standards::NONE = 0x0000 ,
  ts::Standards::MPEG = 0x0001 ,
  ts::Standards::DVB = 0x0002 ,
  ts::Standards::SCTE = 0x0004 ,
  ts::Standards::ATSC = 0x0008 ,
  ts::Standards::ISDB = 0x0010 ,
  ts::Standards::JAPAN = 0x0020 ,
  ts::Standards::ABNT = 0x0040 ,
  ts::Standards::DVBONLY = 0x8000
}
 Bit masks for standards, used to qualify the signalization. More...
 

Detailed Description

MPEG-DVB core features.

Typedef Documentation

◆ TSPacketLabelSet

using ts::TSPacketLabelSet = typedef CompactBitSet<32>

A set of labels used as metadata for a TS packet.

Each packet in a tsp processing chain has a set of "labels". A label is a integer value from 0 to 31. Various plugins may set or reset labels on packets. Any plugin can be conditioned to work on packets having specific labels only.

When TS packets are passed between processes, using a pipe for instance, the labels can passed as well as other metadata using "--format duck".

The type TSPacketLabelSet is crafted to use 32 bits exactly. It was previously implemented as std::bitset<32> but this type may use up to 64 bits, depending on the platform.

Enumeration Type Documentation

◆ CASFamily

enum ts::CASFamily : uint8_t

Known Conditional Access Systems families.

These symbols be be used in the TSDuck C++ code. More CAS families can be defined in '.names' files in extensions, in the [CASFamily] entry.

Enumerator
CAS_OTHER 

Unknown CAS.

CAS_MEDIAGUARD 

MediaGuard (Canal+ Technologies).

CAS_NAGRA 

Nagravision.

CAS_VIACCESS 

Viaccess.

CAS_THALESCRYPT 

ThalesCrypt (for TPS).

CAS_SAFEACCESS 

SafeAccess (Logiways).

CAS_WIDEVINE 

Widevine CAS (Google).

CAS_NDS 

Synamedia, formerly NDS, formerly Cisco Video Solutions.

CAS_IRDETO 

Irdeto.

CAS_CONAX 

Conax, now part of Nagravision.

◆ EITProfile

enum class ts::EITProfile
strong

List of EIT sections repetition profiles.

The EIT sections shall be repeated according to the type of EIT and the type of network.

The enumeration values are sorted in order of importance. For instance, it is more important to reliably broadcast EIT p/f actual than others, EIT p/f than schedule, etc.

EIT schedule are divided into two periods:

  • The "prime" period extends over the next few days. The repetition rate of those EIT's is typically longer than EIT present/following but still reasonably fast. The duration in days of the prime period depends on the type of network.
  • The "later" period includes all events after the prime period. The repetition rate of those EIT's is typically longer that in the prime period.

Standard EIT repetition rates

EIT section type Sat/cable Terrestrial
EIT p/f actual 2 sec 2 sec
EIT p/f other 10 sec 20 sec
EIT sched prime days 8 days 1 day
EIT sched actual (prime) 10 sec 10 sec
EIT sched other (prime) 10 sec 60 sec
EIT sched actual (later) 30 sec 30 sec
EIT sched other (later) 30 sec 300 sec
Enumerator
PF_ACTUAL 

EIT present/following actual.

PF_OTHER 

EIT present/following other.

SCHED_ACTUAL_PRIME 

EIT schedule actual in the "prime" period.

SCHED_OTHER_PRIME 

EIT schedule other in the "prime" period.

SCHED_ACTUAL_LATER 

EIT schedule actual after the "prime" period.

SCHED_OTHER_LATER 

EIT schedule other after the "prime" period.

◆ Standards

enum class ts::Standards : uint16_t
strong

Bit masks for standards, used to qualify the signalization.

Enumerator
NONE 

No known standard.

MPEG 

Defined by MPEG, common to all standards.

DVB 

Defined by ETSI/DVB.

SCTE 

Defined by ANSI/SCTE.

ATSC 

Defined by ATSC.

ISDB 

Defined by ISDB.

JAPAN 

Defined in Japan only (typically in addition to ISDB).

ABNT 

Defined by ABNT (Brazil, typically in addition to ISDB).

DVBONLY 

Used with DVB. Means strict DVB, cannot be the DVB subset as used by ISDB.