TSDuck Version 3.32-2780 (TSDuck - The MPEG Transport Stream Toolkit)
ts::AbstractTable Class Referenceabstract

Abstract base class for MPEG PSI/SI tables. More...

Inheritance diagram for ts::AbstractTable:
Collaboration diagram for ts::AbstractTable:

Classes

class  EntryBase
 Base inner class for table entries with one or more descriptor lists. More...
 
class  EntryWithDescriptors
 Base inner class for table entries with one descriptor list. More...
 
class  EntryWithDescriptorsList
 Template map of subclasses of EntryBase, indexed by size_t. More...
 
class  EntryWithDescriptorsMap
 Template map of subclasses of EntryBase. More...
 

Public Member Functions

virtual ~AbstractTable () override
 Virtual destructor.
 
virtual void clear ()
 This method clears the content of the table or descriptor. More...
 
virtual Standards definingStandards () const override
 Get the list of standards which define this object. More...
 
bool deserialize (DuckContext &duck, const BinaryTable &bin)
 This method deserializes a binary table. More...
 
void fromXML (DuckContext &duck, const xml::Element *element)
 This method converts an XML structure to a table or descriptor in this object. More...
 
void invalidate ()
 Invalidate this object. More...
 
virtual bool isPrivate () const
 Check if the table is a private one (ie. More...
 
bool isValid () const
 Check if this object is valid. More...
 
bool serialize (DuckContext &duck, BinaryTable &bin) const
 This method serializes a table. More...
 
TID tableId () const
 Get the table_id. More...
 
xml::ElementtoXML (DuckContext &duck, xml::Element *parent) const
 This method converts this object to XML. More...
 
UString xmlName () const
 Get the XMl node name representing this table or descriptor. More...
 

Static Public Attributes

static const UChar *const XML_GENERIC_DESCRIPTOR
 XML tag name for generic descriptors.
 
static const UChar *const XML_GENERIC_LONG_TABLE
 XML tag name for generic tables with long sections.
 
static const UChar *const XML_GENERIC_SHORT_TABLE
 XML tag name for generic short sections.
 

Protected Member Functions

 AbstractTable (TID tid, const UChar *xml_name, Standards standards, const UChar *xml_legacy_name=nullptr)
 Protected constructor for subclasses. More...
 
void addOneSection (BinaryTable &table, PSIBuffer &payload) const
 Helper method for serializePayload(): add a section in a binary table. More...
 
virtual void addOneSectionImpl (BinaryTable &table, PSIBuffer &payload) const
 Actual implementation of adding one section in a binary table. More...
 
virtual bool analyzeXML (DuckContext &duck, const xml::Element *element)=0
 Helper method to convert this object from XML. More...
 
virtual void buildXML (DuckContext &duck, xml::Element *root) const =0
 Helper method to convert this object to XML. More...
 
virtual void clearContent ()=0
 Helper method to clear the content of the table or descriptor. More...
 
virtual void deserializePayload (PSIBuffer &buf, const Section &section)=0
 This abstract method deserializes the payload of one section. More...
 
virtual void deserializePayloadWrapper (PSIBuffer &buf, const Section &section)
 Wrapper for deserializePayload(). More...
 
virtual bool isValidTableId (TID tid) const
 This method checks if a table id is valid for this object. More...
 
virtual size_t maxPayloadSize () const
 Get the maximum size in bytes of the payload of sections of this table. More...
 
virtual void serializePayload (BinaryTable &table, PSIBuffer &buf) const =0
 This abstract method serializes the payload of all sections in the table. More...
 
virtual bool useTrailingCRC32 () const
 Check if the sections of this table have a trailing CRC32. More...
 

Protected Attributes

TID _table_id
 The table id can be modified by subclasses only.
 

Detailed Description

Abstract base class for MPEG PSI/SI tables.

Some methods are declared as "virtual final". Since these methods are not inherited, this seems useless. This is in fact a compilation check. These methods were formerly designed to be overridden by subclasses but the implementation has changed. They are now defined in this class only and call a new pure virtual method. The "final" attribute is here to detect old subclasses which do not yet use the new scheme.

A table subclass shall override the following methods:

A table subclass may also override the following methods when necessary:

  • isPrivate() : for non-private table, ie. MPEG-defined or SCTE-defined.
  • isValidTableId() : for table types accepting several table id values.

Constructor & Destructor Documentation

◆ AbstractTable()

ts::AbstractTable::AbstractTable ( TID  tid,
const UChar xml_name,
Standards  standards,
const UChar xml_legacy_name = nullptr 
)
protected

Protected constructor for subclasses.

Parameters
[in]tidTable id.
[in]xml_nameTable name, as used in XML structures.
[in]standardsA bit mask of standards which define this structure.
[in]xml_legacy_nameTable or descriptor legacy XML name. Ignored if null pointer.

Member Function Documentation

◆ tableId()

TID ts::AbstractTable::tableId ( ) const
inline

Get the table_id.

Returns
The table_id.

◆ isPrivate()

virtual bool ts::AbstractTable::isPrivate ( ) const
virtual

Check if the table is a private one (ie.

not MPEG-defined). The default implementation returns true. MPEG-defined tables should override this method to return false.

Returns
True if the table is a private one (ie. not MPEG-defined).

Reimplemented in ts::TSDT, ts::SpliceInformationTable, ts::PMT, ts::PAT, ts::DSMCCStreamDescriptorsTable, ts::CAT, and ts::CableEmergencyAlertTable.

◆ serialize()

bool ts::AbstractTable::serialize ( DuckContext duck,
BinaryTable bin 
) const

This method serializes a table.

Parameters
[in,out]duckTSDuck execution context.
[out]binA binary table object. Its content is replaced with a binary representation of this object.
Returns
True in case of success, false if the table is invalid.

◆ deserialize()

bool ts::AbstractTable::deserialize ( DuckContext duck,
const BinaryTable bin 
)

This method deserializes a binary table.

In case of success, this object is replaced with the interpreted content of bin. In case of error, this object is invalidated.

Parameters
[in,out]duckTSDuck execution context.
[in]binA binary table to interpret according to the table subclass.
Returns
True in case of success, false if the table is invalid.

◆ isValidTableId()

virtual bool ts::AbstractTable::isValidTableId ( TID  tid) const
protectedvirtual

This method checks if a table id is valid for this object.

Parameters
[in]tidA table id to check.
Returns
True if tid is a valid table id for this object, false otherwise. The default implementation checks that tid is identical to the table id of this object.

Reimplemented in ts::SDT, ts::NIT, ts::NBIT, and ts::EIT.

◆ maxPayloadSize()

virtual size_t ts::AbstractTable::maxPayloadSize ( ) const
protectedvirtual

Get the maximum size in bytes of the payload of sections of this table.

Returns
The maximum size in bytes of the payload of sections of this table.

Reimplemented in ts::VCT, ts::STT, ts::SpliceInformationTable, ts::SDT, ts::RST, ts::RRT, ts::NIT, ts::CableEmergencyAlertTable, ts::BAT, ts::AIT, and ts::AbstractLongTable.

◆ useTrailingCRC32()

virtual bool ts::AbstractTable::useTrailingCRC32 ( ) const
protectedvirtual

Check if the sections of this table have a trailing CRC32.

This is usually false for short sections but some short sections such as DVB-TOT use a CRC32.

Returns
True if the sections of this table have a trailing CRC32.

Reimplemented in ts::TOT, ts::SpliceInformationTable, and ts::AbstractLongTable.

◆ serializePayload()

virtual void ts::AbstractTable::serializePayload ( BinaryTable table,
PSIBuffer buf 
) const
protectedpure virtual

This abstract method serializes the payload of all sections in the table.

When serialize() is called, the output binary table is cleared and serializePayload() is called. A subclass shall implement serializePayload() which adds all required sections in the binary table.

Note that it is not necessary to explicitly add the last (or only) section. Upon return from serializePayload(), serialize() checks the state of the payload buffer. If the output binary table is still empty or if the payload buffer is not empty (or not empty after the last saved write position), then addOneSection() is automatically called.

Parameters
[in,out]tableThe binary table into which this object shall be serialized. The table is initially empty when serialize() calls serializePayload().
[in,out]bufA PSIBuffer with the appropriate size for the section payload. The payload buffer is initially empty when serialize() calls serializePayload().

Implemented in ts::VCT, ts::UNT, ts::TOT, ts::TDT, ts::STT, ts::SpliceInformationTable, ts::SelectionInformationTable, ts::SDT, ts::RST, ts::RRT, ts::RNT, ts::PMT, ts::PCAT, ts::PAT, ts::NBIT, ts::MGT, ts::LIT, ts::LDT, ts::ITT, ts::INT, ts::ETT, ts::ERT, ts::EIT, ts::DiscontinuityInformationTable, ts::DCCT, ts::DCCSCT, ts::CIT, ts::CDT, ts::CableEmergencyAlertTable, ts::BIT, ts::ATSCEIT, ts::AIT, ts::AbstractTransportListTable, and ts::AbstractDescriptorsTable.

◆ deserializePayload()

virtual void ts::AbstractTable::deserializePayload ( PSIBuffer buf,
const Section section 
)
protectedpure virtual

This abstract method deserializes the payload of one section.

When deserialize() is called, this object is cleared and validated. Then, deserializePayload() is invoked for each section in the binary table. A subclass shall implement deserializePayload() which adds the content of the binary section to the C++ object. Do not reset the object in deserializePayload() since it is repeatedly called for each section of a single binary table.

Parameters
[in,out]bufDeserialization buffer. The subclass shall read the descriptor payload from buf. The end of read is the end of the binary payload. If any kind of error is reported in the buffer or if the payload is not completely read, the deserialization is considered as invalid.
[in]sectionA reference to the section. Can be used to access values in the section header (typically for long sections).

Implemented in ts::VCT, ts::UNT, ts::TOT, ts::TDT, ts::STT, ts::SpliceInformationTable, ts::SelectionInformationTable, ts::SDT, ts::RST, ts::RRT, ts::RNT, ts::PMT, ts::PCAT, ts::PAT, ts::NBIT, ts::MGT, ts::LIT, ts::LDT, ts::ITT, ts::INT, ts::ETT, ts::ERT, ts::EIT, ts::DiscontinuityInformationTable, ts::DCCT, ts::DCCSCT, ts::CIT, ts::CDT, ts::CableEmergencyAlertTable, ts::BIT, ts::ATSCEIT, ts::AIT, ts::AbstractTransportListTable, and ts::AbstractDescriptorsTable.

◆ addOneSection()

void ts::AbstractTable::addOneSection ( BinaryTable table,
PSIBuffer payload 
) const
protected

Helper method for serializePayload(): add a section in a binary table.

For long tables, the section number is always one more than the current last section in the table.

It the payload buffer has a pushed read/write state, this state is restored and immediately pushed again. The typical use case is the following:

  • A table may create more than one section.
  • The payload of all sections starts with the same fixed data.
  • In the subclass, the method serializePayload() builds the initial fixed data once.
  • The method serializePayload() immediately pushes the read/write state of the buffer.
  • The method serializePayload() builds payloads and call addOneSection().
  • Upon return from addOneSection(), the buffer is back right after the initial fixed data.
Parameters
[in,out]tableThe binary table into which the new section shall be added.
[in,out]payloadA PSIBuffer containing the section payload between the read and the write pointer.

◆ addOneSectionImpl()

virtual void ts::AbstractTable::addOneSectionImpl ( BinaryTable table,
PSIBuffer payload 
) const
protectedvirtual

Actual implementation of adding one section in a binary table.

Do not call directly, it is only called by addOneSection() and is overridden in AbstractLongTable.

Parameters
[in,out]tableThe binary table into which the new section shall be added.
[in,out]payloadA PSIBuffer containing the section payload between the read and the write pointer.

Reimplemented in ts::AbstractLongTable.

◆ deserializePayloadWrapper()

virtual void ts::AbstractTable::deserializePayloadWrapper ( PSIBuffer buf,
const Section section 
)
protectedvirtual

Wrapper for deserializePayload().

This is a method to overload in intermediate classes to avoid using "call superclass" to all tables.

Parameters
[in,out]bufDeserialization buffer.
[in]sectionA reference to the section.

Reimplemented in ts::AbstractLongTable.

◆ isValid()

bool ts::AbstractSignalization::isValid ( ) const
inlineinherited

Check if this object is valid.

Returns
True if this object is valid.

◆ invalidate()

void ts::AbstractSignalization::invalidate ( )
inlineinherited

Invalidate this object.

This object must be rebuilt.

◆ clear()

virtual void ts::AbstractSignalization::clear ( )
virtualinherited

This method clears the content of the table or descriptor.

Upon return, the object is valid and in the same empty state as after a default constructor.

Reimplemented in ts::AbstractLongTable.

◆ xmlName()

UString ts::AbstractSignalization::xmlName ( ) const
inherited

Get the XMl node name representing this table or descriptor.

Returns
The XML node name.

◆ toXML()

xml::Element* ts::AbstractSignalization::toXML ( DuckContext duck,
xml::Element parent 
) const
inherited

This method converts this object to XML.

When this object is valid, this method creates a root node with the default XML name and then invokes buildXML() in the subclass to populate the XML node.

Parameters
[in,out]duckTSDuck execution context.
[in,out]parentThe parent node for the new XML tree.
Returns
The new XML element.

◆ fromXML()

void ts::AbstractSignalization::fromXML ( DuckContext duck,
const xml::Element element 
)
inherited

This method converts an XML structure to a table or descriptor in this object.

In case of success, this object is replaced with the interpreted content of the XML structure. In case of error, this object is invalidated.

This method checks the name of the XML node and then invokes analyzeXML() in the subclass. Depending on the returned values of analyzeXML(), this object is either validated or invalidated.

Parameters
[in,out]duckTSDuck execution context.
[in]elementXML element to convert.

◆ definingStandards()

virtual Standards ts::AbstractSignalization::definingStandards ( ) const
overridevirtualinherited

Get the list of standards which define this object.

Returns
A bit mask of standards.

Implements ts::AbstractDefinedByStandards.

◆ clearContent()

virtual void ts::AbstractSignalization::clearContent ( )
protectedpure virtualinherited

Helper method to clear the content of the table or descriptor.

It is called by clear(). In clearContent(), the subclass shall simply revert the value of all fields to their original values in the default constructor.

Implemented in ts::VCT, ts::UNT, ts::TOT, ts::TDT, ts::STT, ts::SpliceInformationTable, ts::SelectionInformationTable, ts::SDT, ts::RST, ts::RRT, ts::RNT, ts::PMT, ts::PCAT, ts::PAT, ts::NBIT, ts::MGT, ts::LIT, ts::LDT, ts::ITT, ts::INT, ts::ETT, ts::ERT, ts::EIT, ts::DiscontinuityInformationTable, ts::DCCT, ts::DCCSCT, ts::CIT, ts::CDT, ts::CableEmergencyAlertTable, ts::BIT, ts::ATSCEIT, ts::AIT, ts::AbstractTransportListTable, ts::AbstractDescriptorsTable, ts::SpliceSchedule, ts::SpliceInsert, ts::VirtualSegmentationDescriptor, ts::VideoWindowDescriptor, ts::VideoStreamDescriptor, ts::VideoDepthRangeDescriptor, ts::VideoDecodeControlDescriptor, ts::VBIDataDescriptor, ts::URILinkageDescriptor, ts::UpdateDescriptor, ts::TVAIdDescriptor, ts::TSInformationDescriptor, ts::TransportStreamDescriptor, ts::TransportProtocolDescriptor, ts::TransportProfileDescriptor, ts::TimeSliceFECIdentifierDescriptor, ts::TimeShiftedEventDescriptor, ts::TerrestrialDeliverySystemDescriptor, ts::TeletextDescriptor, ts::TelephoneDescriptor, ts::TargetSmartcardDescriptor, ts::TargetSerialNumberDescriptor, ts::TargetRegionNameDescriptor, ts::TargetRegionDescriptor, ts::TargetMACAddressRangeDescriptor, ts::TargetMACAddressDescriptor, ts::TargetIPv6SourceSlashDescriptor, ts::TargetIPv6SlashDescriptor, ts::TargetIPv6AddressDescriptor, ts::TargetIPSourceSlashDescriptor, ts::TargetIPSlashDescriptor, ts::TargetIPAddressDescriptor, ts::TargetBackgroundGridDescriptor, ts::T2MIDescriptor, ts::T2DeliverySystemDescriptor, ts::SystemManagementDescriptor, ts::SystemClockDescriptor, ts::SVCExtensionDescriptor, ts::SupplementaryAudioDescriptor, ts::SubtitlingDescriptor, ts::StreamModeDescriptor, ts::StreamIdentifierDescriptor, ts::StreamEventDescriptor, ts::StereoscopicVideoInfoDescriptor, ts::StereoscopicProgramInfoDescriptor, ts::STDDescriptor, ts::STCReferenceDescriptor, ts::SSUURIDescriptor, ts::SSUSubgroupAssociationDescriptor, ts::SSUMessageDescriptor, ts::SSULocationDescriptor, ts::SSULinkageDescriptor, ts::SSUEventNameDescriptor, ts::SSUEnhancedMessageDescriptor, ts::SSUDataBroadcastIdDescriptor, ts::SpliceTimeDescriptor, ts::SpliceSegmentationDescriptor, ts::SpliceDTMFDescriptor, ts::SpliceAvailDescriptor, ts::SmoothingBufferDescriptor, ts::SLDescriptor, ts::SkyLogicalChannelNumberDescriptor, ts::SIPrimeTSDescriptor, ts::SIParameterDescriptor, ts::SimpleApplicationLocationDescriptor, ts::SimpleApplicationBoundaryDescriptor, ts::ShortSmoothingBufferDescriptor, ts::ShortNodeInformationDescriptor, ts::ShortEventDescriptor, ts::SHDeliverySystemDescriptor, ts::ServiceRelocatedDescriptor, ts::ServiceMoveDescriptor, ts::ServiceLocationDescriptor, ts::ServiceListDescriptor, ts::ServiceIdentifierDescriptor, ts::ServiceGroupDescriptor, ts::ServiceDescriptor, ts::ServiceAvailabilityDescriptor, ts::SeriesDescriptor, ts::ScramblingDescriptor, ts::SchedulingDescriptor, ts::SatelliteDeliverySystemDescriptor, ts::S2XSatelliteDeliverySystemDescriptor, ts::S2SatelliteDeliverySystemDescriptor, ts::RelatedContentDescriptor, ts::RegistrationDescriptor, ts::ReferenceDescriptor, ts::RedistributionControlDescriptor, ts::ProtectionMessageDescriptor, ts::PrivateDataSpecifierDescriptor, ts::PrivateDataIndicatorDescriptor, ts::PrefetchDescriptor, ts::PDCDescriptor, ts::PartialTransportStreamDescriptor, ts::PartialReceptionDescriptor, ts::ParentalRatingDescriptor, ts::NVODReferenceDescriptor, ts::NPTReferenceDescriptor, ts::NPTEndpointDescriptor, ts::NorDigLogicalChannelDescriptorV2, ts::NorDigLogicalChannelDescriptorV1, ts::NodeRelationDescriptor, ts::NetworkNameDescriptor, ts::NetworkChangeNotifyDescriptor, ts::MVCOperationPointDescriptor, ts::MVCExtensionDescriptor, ts::MultiplexBufferUtilizationDescriptor, ts::MultiplexBufferDescriptor, ts::MultilingualServiceNameDescriptor, ts::MultilingualComponentDescriptor, ts::MPEGH3DAudioMultiStreamDescriptor, ts::MPEGH3DAudioDescriptor, ts::MPEG4VideoDescriptor, ts::MPEG4AudioDescriptor, ts::MPEG2StereoscopicVideoFormatDescriptor, ts::MPEG2AACAudioDescriptor, ts::MosaicDescriptor, ts::MetadataSTDDescriptor, ts::MetadataPointerDescriptor, ts::MetadataDescriptor, ts::MessageDescriptor, ts::MaximumBitrateDescriptor, ts::LogoTransmissionDescriptor, ts::LocalTimeOffsetDescriptor, ts::LinkageDescriptor, ts::J2KVideoDescriptor, ts::ISPAccessModeDescriptor, ts::ISO639LanguageDescriptor, ts::ISDBTerrestrialDeliverySystemDescriptor, ts::ISDBAccessControlDescriptor, ts::IPSignallingDescriptor, ts::IPMACStreamLocationDescriptor, ts::IPMACPlatformProviderNameDescriptor, ts::IPMACPlatformNameDescriptor, ts::IPMACGenericStreamLocationDescriptor, ts::ImageIconDescriptor, ts::IBPDescriptor, ts::HybridInformationDescriptor, ts::HierarchyDescriptor, ts::HierarchicalTransmissionDescriptor, ts::HEVCVideoDescriptor, ts::HEVCTimingAndHRDDescriptor, ts::HEVCHierarchyExtensionDescriptor, ts::GreenExtensionDescriptor, ts::GraphicsConstraintsDescriptor, ts::GenreDescriptor, ts::FTAContentManagementDescriptor, ts::FrequencyListDescriptor, ts::FMCDescriptor, ts::FlexMuxTimingDescriptor, ts::ExternalESIdDescriptor, ts::ExternalApplicationAuthorizationDescriptor, ts::ExtendedEventDescriptor, ts::ExtendedChannelNameDescriptor, ts::ExtendedBroadcasterDescriptor, ts::EventGroupDescriptor, ts::EutelsatChannelNumberDescriptor, ts::EmergencyInformationDescriptor, ts::ECMRepetitionRateDescriptor, ts::EASMetadataDescriptor, ts::EASInbandExceptionChannelsDescriptor, ts::EASInbandDetailsChannelDescriptor, ts::EASAudioFileDescriptor, ts::EacemStreamIdentifierDescriptor, ts::DVBTimeShiftedServiceDescriptor, ts::DVBStuffingDescriptor, ts::DVBJApplicationLocationDescriptor, ts::DVBJApplicationDescriptor, ts::DVBHTMLApplicationLocationDescriptor, ts::DVBHTMLApplicationDescriptor, ts::DVBHTMLApplicationBoundaryDescriptor, ts::DVBEnhancedAC3Descriptor, ts::DVBAC4Descriptor, ts::DVBAC3Descriptor, ts::DTSNeuralDescriptor, ts::DTSHDDescriptor, ts::DTSDescriptor, ts::DTGShortServiceNameDescriptor, ts::DTGServiceAttributeDescriptor, ts::DTGGuidanceDescriptor, ts::DSNGDescriptor, ts::DIILocationDescriptor, ts::DigitalCopyControlDescriptor, ts::DeferredAssociationTagsDescriptor, ts::DCCDepartingRequestDescriptor, ts::DCCArrivingRequestDescriptor, ts::DataStreamAlignmentDescriptor, ts::DataContentDescriptor, ts::DataComponentDescriptor, ts::DataBroadcastIdDescriptor, ts::DataBroadcastDescriptor, ts::CueIdentifierDescriptor, ts::CPIdentifierDescriptor, ts::CPDescriptor, ts::CountryAvailabilityDescriptor, ts::CopyrightDescriptor, ts::ContentLabellingDescriptor, ts::ContentIdentifierDescriptor, ts::ContentDescriptor, ts::ContentAvailabilityDescriptor, ts::ContentAdvisoryDescriptor, ts::ConditionalPlaybackDescriptor, ts::ComponentNameDescriptor, ts::ComponentDescriptor, ts::CIAncillaryDataDescriptor, ts::CellListDescriptor, ts::CellFrequencyLinkDescriptor, ts::CAServiceDescriptor, ts::CarouselIdentifierDescriptor, ts::CaptionServiceDescriptor, ts::CAIdentifierDescriptor, ts::CAEMMTSDescriptor, ts::CADescriptor, ts::CAContractInfoDescriptor, ts::CableDeliverySystemDescriptor, ts::C2DeliverySystemDescriptor, ts::C2BundleDeliverySystemDescriptor, ts::BroadcasterNameDescriptor, ts::BouquetNameDescriptor, ts::BoardInformationDescriptor, ts::BasicLocalEventDescriptor, ts::AVCVideoDescriptor, ts::AVCTimingAndHRDDescriptor, ts::AudioStreamDescriptor, ts::AudioPreselectionDescriptor, ts::AudioComponentDescriptor, ts::ATSCTimeShiftedServiceDescriptor, ts::ATSCStuffingDescriptor, ts::ATSCEAC3AudioDescriptor, ts::ATSCAC3AudioStreamDescriptor, ts::AssociationTagDescriptor, ts::AreaBroadcastingInformationDescriptor, ts::ApplicationUsageDescriptor, ts::ApplicationStorageDescriptor, ts::ApplicationSignallingDescriptor, ts::ApplicationRecordingDescriptor, ts::ApplicationIconsDescriptor, ts::ApplicationDescriptor, ts::AnnouncementSupportDescriptor, ts::AncillaryDataDescriptor, ts::AFExtensionsDescriptor, ts::AdaptationFieldDataDescriptor, ts::AbstractPreferredNameListDescriptor, ts::AbstractPreferredNameIdentifierDescriptor, ts::AbstractMultilingualDescriptor, ts::AbstractLogicalChannelDescriptor, and ts::AACDescriptor.

◆ buildXML()

virtual void ts::AbstractSignalization::buildXML ( DuckContext duck,
xml::Element root 
) const
protectedpure virtualinherited

Helper method to convert this object to XML.

It is called by toXML() only when the object is valid. The root element is already built with the appropriate XML node name. In buildXML(), the subclass shall simply populate the XML node.

Parameters
[in,out]rootThe root node for the new XML tree.
[in,out]duckTSDuck execution context.

Implemented in ts::VCT, ts::UNT, ts::TOT, ts::TDT, ts::STT, ts::SpliceInformationTable, ts::SelectionInformationTable, ts::SDT, ts::RST, ts::RRT, ts::RNT, ts::PMT, ts::PCAT, ts::PAT, ts::NIT, ts::NBIT, ts::MGT, ts::LIT, ts::LDT, ts::ITT, ts::INT, ts::ETT, ts::ERT, ts::EIT, ts::DSMCCStreamDescriptorsTable, ts::DiscontinuityInformationTable, ts::DCCT, ts::DCCSCT, ts::CIT, ts::CDT, ts::CableEmergencyAlertTable, ts::BIT, ts::BAT, ts::ATSCEIT, ts::AIT, ts::AbstractDescriptorsTable, ts::SpliceSchedule, ts::SpliceInsert, ts::VirtualSegmentationDescriptor, ts::VideoWindowDescriptor, ts::VideoStreamDescriptor, ts::VideoDepthRangeDescriptor, ts::VideoDecodeControlDescriptor, ts::VBIDataDescriptor, ts::URILinkageDescriptor, ts::UpdateDescriptor, ts::TVAIdDescriptor, ts::TSInformationDescriptor, ts::TransportStreamDescriptor, ts::TransportProtocolDescriptor, ts::TransportProfileDescriptor, ts::TimeSliceFECIdentifierDescriptor, ts::TimeShiftedEventDescriptor, ts::TerrestrialDeliverySystemDescriptor, ts::TeletextDescriptor, ts::TelephoneDescriptor, ts::TargetSmartcardDescriptor, ts::TargetSerialNumberDescriptor, ts::TargetRegionNameDescriptor, ts::TargetRegionDescriptor, ts::TargetMACAddressRangeDescriptor, ts::TargetMACAddressDescriptor, ts::TargetIPv6SourceSlashDescriptor, ts::TargetIPv6SlashDescriptor, ts::TargetIPv6AddressDescriptor, ts::TargetIPSourceSlashDescriptor, ts::TargetIPSlashDescriptor, ts::TargetIPAddressDescriptor, ts::TargetBackgroundGridDescriptor, ts::T2MIDescriptor, ts::T2DeliverySystemDescriptor, ts::SystemManagementDescriptor, ts::SystemClockDescriptor, ts::SVCExtensionDescriptor, ts::SupplementaryAudioDescriptor, ts::SubtitlingDescriptor, ts::StreamModeDescriptor, ts::StreamIdentifierDescriptor, ts::StreamEventDescriptor, ts::StereoscopicVideoInfoDescriptor, ts::StereoscopicProgramInfoDescriptor, ts::STDDescriptor, ts::STCReferenceDescriptor, ts::SSUURIDescriptor, ts::SSUSubgroupAssociationDescriptor, ts::SSUMessageDescriptor, ts::SSULocationDescriptor, ts::SSULinkageDescriptor, ts::SSUEventNameDescriptor, ts::SSUEnhancedMessageDescriptor, ts::SSUDataBroadcastIdDescriptor, ts::SpliceTimeDescriptor, ts::SpliceSegmentationDescriptor, ts::SpliceDTMFDescriptor, ts::SpliceAvailDescriptor, ts::SmoothingBufferDescriptor, ts::SLDescriptor, ts::SkyLogicalChannelNumberDescriptor, ts::SIPrimeTSDescriptor, ts::SIParameterDescriptor, ts::SimpleApplicationLocationDescriptor, ts::SimpleApplicationBoundaryDescriptor, ts::ShortSmoothingBufferDescriptor, ts::ShortNodeInformationDescriptor, ts::ShortEventDescriptor, ts::SHDeliverySystemDescriptor, ts::ServiceRelocatedDescriptor, ts::ServiceMoveDescriptor, ts::ServiceLocationDescriptor, ts::ServiceListDescriptor, ts::ServiceIdentifierDescriptor, ts::ServiceGroupDescriptor, ts::ServiceDescriptor, ts::ServiceAvailabilityDescriptor, ts::SeriesDescriptor, ts::ScramblingDescriptor, ts::SchedulingDescriptor, ts::SatelliteDeliverySystemDescriptor, ts::S2XSatelliteDeliverySystemDescriptor, ts::S2SatelliteDeliverySystemDescriptor, ts::RelatedContentDescriptor, ts::RegistrationDescriptor, ts::ReferenceDescriptor, ts::RedistributionControlDescriptor, ts::ProtectionMessageDescriptor, ts::PrivateDataSpecifierDescriptor, ts::PrivateDataIndicatorDescriptor, ts::PrefetchDescriptor, ts::PDCDescriptor, ts::PartialTransportStreamDescriptor, ts::PartialReceptionDescriptor, ts::ParentalRatingDescriptor, ts::NVODReferenceDescriptor, ts::NPTReferenceDescriptor, ts::NPTEndpointDescriptor, ts::NorDigLogicalChannelDescriptorV2, ts::NorDigLogicalChannelDescriptorV1, ts::NodeRelationDescriptor, ts::NetworkNameDescriptor, ts::NetworkChangeNotifyDescriptor, ts::MVCOperationPointDescriptor, ts::MVCExtensionDescriptor, ts::MultiplexBufferUtilizationDescriptor, ts::MultiplexBufferDescriptor, ts::MultilingualServiceNameDescriptor, ts::MultilingualComponentDescriptor, ts::MPEGH3DAudioMultiStreamDescriptor, ts::MPEGH3DAudioDescriptor, ts::MPEG4VideoDescriptor, ts::MPEG4AudioDescriptor, ts::MPEG2StereoscopicVideoFormatDescriptor, ts::MPEG2AACAudioDescriptor, ts::MosaicDescriptor, ts::MetadataSTDDescriptor, ts::MetadataPointerDescriptor, ts::MetadataDescriptor, ts::MessageDescriptor, ts::MaximumBitrateDescriptor, ts::LogoTransmissionDescriptor, ts::LocalTimeOffsetDescriptor, ts::LinkageDescriptor, ts::J2KVideoDescriptor, ts::ISPAccessModeDescriptor, ts::ISO639LanguageDescriptor, ts::ISDBTerrestrialDeliverySystemDescriptor, ts::ISDBAccessControlDescriptor, ts::IPSignallingDescriptor, ts::IPMACStreamLocationDescriptor, ts::IPMACPlatformProviderNameDescriptor, ts::IPMACPlatformNameDescriptor, ts::IPMACGenericStreamLocationDescriptor, ts::ImageIconDescriptor, ts::IBPDescriptor, ts::HybridInformationDescriptor, ts::HierarchyDescriptor, ts::HierarchicalTransmissionDescriptor, ts::HEVCVideoDescriptor, ts::HEVCTimingAndHRDDescriptor, ts::HEVCHierarchyExtensionDescriptor, ts::GreenExtensionDescriptor, ts::GraphicsConstraintsDescriptor, ts::GenreDescriptor, ts::FTAContentManagementDescriptor, ts::FrequencyListDescriptor, ts::FMCDescriptor, ts::FlexMuxTimingDescriptor, ts::ExternalESIdDescriptor, ts::ExternalApplicationAuthorizationDescriptor, ts::ExtendedEventDescriptor, ts::ExtendedChannelNameDescriptor, ts::ExtendedBroadcasterDescriptor, ts::EventGroupDescriptor, ts::EutelsatChannelNumberDescriptor, ts::EmergencyInformationDescriptor, ts::ECMRepetitionRateDescriptor, ts::EASMetadataDescriptor, ts::EASInbandExceptionChannelsDescriptor, ts::EASInbandDetailsChannelDescriptor, ts::EASAudioFileDescriptor, ts::EacemStreamIdentifierDescriptor, ts::DVBTimeShiftedServiceDescriptor, ts::DVBStuffingDescriptor, ts::DVBJApplicationLocationDescriptor, ts::DVBJApplicationDescriptor, ts::DVBHTMLApplicationLocationDescriptor, ts::DVBHTMLApplicationDescriptor, ts::DVBHTMLApplicationBoundaryDescriptor, ts::DVBEnhancedAC3Descriptor, ts::DVBAC4Descriptor, ts::DVBAC3Descriptor, ts::DTSNeuralDescriptor, ts::DTSHDDescriptor, ts::DTSDescriptor, ts::DTGShortServiceNameDescriptor, ts::DTGServiceAttributeDescriptor, ts::DTGGuidanceDescriptor, ts::DSNGDescriptor, ts::DIILocationDescriptor, ts::DigitalCopyControlDescriptor, ts::DeferredAssociationTagsDescriptor, ts::DCCDepartingRequestDescriptor, ts::DCCArrivingRequestDescriptor, ts::DataStreamAlignmentDescriptor, ts::DataContentDescriptor, ts::DataComponentDescriptor, ts::DataBroadcastIdDescriptor, ts::DataBroadcastDescriptor, ts::CueIdentifierDescriptor, ts::CPIdentifierDescriptor, ts::CPDescriptor, ts::CountryAvailabilityDescriptor, ts::CopyrightDescriptor, ts::ContentLabellingDescriptor, ts::ContentIdentifierDescriptor, ts::ContentDescriptor, ts::ContentAvailabilityDescriptor, ts::ContentAdvisoryDescriptor, ts::ConditionalPlaybackDescriptor, ts::ComponentNameDescriptor, ts::ComponentDescriptor, ts::CIAncillaryDataDescriptor, ts::CellListDescriptor, ts::CellFrequencyLinkDescriptor, ts::CAServiceDescriptor, ts::CarouselIdentifierDescriptor, ts::CaptionServiceDescriptor, ts::CAIdentifierDescriptor, ts::CAEMMTSDescriptor, ts::CADescriptor, ts::CAContractInfoDescriptor, ts::CableDeliverySystemDescriptor, ts::C2DeliverySystemDescriptor, ts::C2BundleDeliverySystemDescriptor, ts::BroadcasterNameDescriptor, ts::BouquetNameDescriptor, ts::BoardInformationDescriptor, ts::BasicLocalEventDescriptor, ts::AVCVideoDescriptor, ts::AVCTimingAndHRDDescriptor, ts::AudioStreamDescriptor, ts::AudioPreselectionDescriptor, ts::AudioComponentDescriptor, ts::ATSCTimeShiftedServiceDescriptor, ts::ATSCStuffingDescriptor, ts::ATSCEAC3AudioDescriptor, ts::ATSCAC3AudioStreamDescriptor, ts::AssociationTagDescriptor, ts::AreaBroadcastingInformationDescriptor, ts::ApplicationUsageDescriptor, ts::ApplicationStorageDescriptor, ts::ApplicationSignallingDescriptor, ts::ApplicationRecordingDescriptor, ts::ApplicationIconsDescriptor, ts::ApplicationDescriptor, ts::AnnouncementSupportDescriptor, ts::AncillaryDataDescriptor, ts::AFExtensionsDescriptor, ts::AdaptationFieldDataDescriptor, ts::AbstractPreferredNameListDescriptor, ts::AbstractPreferredNameIdentifierDescriptor, ts::AbstractMultilingualDescriptor, ts::AbstractLogicalChannelDescriptor, and ts::AACDescriptor.

◆ analyzeXML()

virtual bool ts::AbstractSignalization::analyzeXML ( DuckContext duck,
const xml::Element element 
)
protectedpure virtualinherited

Helper method to convert this object from XML.

It is called by fromXML() after checking the validity of the XML node name. In analyzeXML(), the subclass shall populate the C++ object from the content of the XML node. If analyzeXML() returns false, this table or descriptor object is then invalidated and cleared.

Parameters
[in,out]duckTSDuck execution context.
[in]elementXML element to convert.
Returns
True if the analysis is correct, false otherwise.

Implemented in ts::VCT, ts::UNT, ts::TOT, ts::TDT, ts::STT, ts::SpliceInformationTable, ts::SelectionInformationTable, ts::SDT, ts::RST, ts::RRT, ts::RNT, ts::PMT, ts::PCAT, ts::PAT, ts::NIT, ts::NBIT, ts::MGT, ts::LIT, ts::LDT, ts::ITT, ts::INT, ts::ETT, ts::ERT, ts::EIT, ts::DSMCCStreamDescriptorsTable, ts::DiscontinuityInformationTable, ts::DCCT, ts::DCCSCT, ts::CIT, ts::CDT, ts::CableEmergencyAlertTable, ts::BIT, ts::BAT, ts::ATSCEIT, ts::AIT, ts::AbstractDescriptorsTable, ts::SpliceSchedule, ts::SpliceInsert, ts::VirtualSegmentationDescriptor, ts::VideoWindowDescriptor, ts::VideoStreamDescriptor, ts::VideoDepthRangeDescriptor, ts::VideoDecodeControlDescriptor, ts::VBIDataDescriptor, ts::URILinkageDescriptor, ts::UpdateDescriptor, ts::TVAIdDescriptor, ts::TSInformationDescriptor, ts::TransportStreamDescriptor, ts::TransportProtocolDescriptor, ts::TransportProfileDescriptor, ts::TimeSliceFECIdentifierDescriptor, ts::TimeShiftedEventDescriptor, ts::TerrestrialDeliverySystemDescriptor, ts::TeletextDescriptor, ts::TelephoneDescriptor, ts::TargetSmartcardDescriptor, ts::TargetSerialNumberDescriptor, ts::TargetRegionNameDescriptor, ts::TargetRegionDescriptor, ts::TargetMACAddressRangeDescriptor, ts::TargetMACAddressDescriptor, ts::TargetIPv6SourceSlashDescriptor, ts::TargetIPv6SlashDescriptor, ts::TargetIPv6AddressDescriptor, ts::TargetIPSourceSlashDescriptor, ts::TargetIPSlashDescriptor, ts::TargetIPAddressDescriptor, ts::TargetBackgroundGridDescriptor, ts::T2MIDescriptor, ts::T2DeliverySystemDescriptor, ts::SystemManagementDescriptor, ts::SystemClockDescriptor, ts::SVCExtensionDescriptor, ts::SupplementaryAudioDescriptor, ts::SubtitlingDescriptor, ts::StreamModeDescriptor, ts::StreamIdentifierDescriptor, ts::StreamEventDescriptor, ts::StereoscopicVideoInfoDescriptor, ts::StereoscopicProgramInfoDescriptor, ts::STDDescriptor, ts::STCReferenceDescriptor, ts::SSUURIDescriptor, ts::SSUSubgroupAssociationDescriptor, ts::SSUMessageDescriptor, ts::SSULocationDescriptor, ts::SSULinkageDescriptor, ts::SSUEventNameDescriptor, ts::SSUEnhancedMessageDescriptor, ts::SSUDataBroadcastIdDescriptor, ts::SpliceTimeDescriptor, ts::SpliceSegmentationDescriptor, ts::SpliceDTMFDescriptor, ts::SpliceAvailDescriptor, ts::SmoothingBufferDescriptor, ts::SLDescriptor, ts::SkyLogicalChannelNumberDescriptor, ts::SIPrimeTSDescriptor, ts::SIParameterDescriptor, ts::SimpleApplicationLocationDescriptor, ts::SimpleApplicationBoundaryDescriptor, ts::ShortSmoothingBufferDescriptor, ts::ShortNodeInformationDescriptor, ts::ShortEventDescriptor, ts::SHDeliverySystemDescriptor, ts::ServiceRelocatedDescriptor, ts::ServiceMoveDescriptor, ts::ServiceLocationDescriptor, ts::ServiceListDescriptor, ts::ServiceIdentifierDescriptor, ts::ServiceGroupDescriptor, ts::ServiceDescriptor, ts::ServiceAvailabilityDescriptor, ts::SeriesDescriptor, ts::ScramblingDescriptor, ts::SchedulingDescriptor, ts::SatelliteDeliverySystemDescriptor, ts::S2XSatelliteDeliverySystemDescriptor, ts::S2SatelliteDeliverySystemDescriptor, ts::RelatedContentDescriptor, ts::RegistrationDescriptor, ts::ReferenceDescriptor, ts::RedistributionControlDescriptor, ts::ProtectionMessageDescriptor, ts::PrivateDataSpecifierDescriptor, ts::PrivateDataIndicatorDescriptor, ts::PrefetchDescriptor, ts::PDCDescriptor, ts::PartialTransportStreamDescriptor, ts::PartialReceptionDescriptor, ts::ParentalRatingDescriptor, ts::NVODReferenceDescriptor, ts::NPTReferenceDescriptor, ts::NPTEndpointDescriptor, ts::NorDigLogicalChannelDescriptorV2, ts::NorDigLogicalChannelDescriptorV1, ts::NodeRelationDescriptor, ts::NetworkNameDescriptor, ts::NetworkChangeNotifyDescriptor, ts::MVCOperationPointDescriptor, ts::MVCExtensionDescriptor, ts::MultiplexBufferUtilizationDescriptor, ts::MultiplexBufferDescriptor, ts::MultilingualServiceNameDescriptor, ts::MultilingualComponentDescriptor, ts::MPEGH3DAudioMultiStreamDescriptor, ts::MPEGH3DAudioDescriptor, ts::MPEG4VideoDescriptor, ts::MPEG4AudioDescriptor, ts::MPEG2StereoscopicVideoFormatDescriptor, ts::MPEG2AACAudioDescriptor, ts::MosaicDescriptor, ts::MetadataSTDDescriptor, ts::MetadataPointerDescriptor, ts::MetadataDescriptor, ts::MessageDescriptor, ts::MaximumBitrateDescriptor, ts::LogoTransmissionDescriptor, ts::LocalTimeOffsetDescriptor, ts::LinkageDescriptor, ts::J2KVideoDescriptor, ts::ISPAccessModeDescriptor, ts::ISO639LanguageDescriptor, ts::ISDBTerrestrialDeliverySystemDescriptor, ts::ISDBAccessControlDescriptor, ts::IPSignallingDescriptor, ts::IPMACStreamLocationDescriptor, ts::IPMACPlatformProviderNameDescriptor, ts::IPMACPlatformNameDescriptor, ts::IPMACGenericStreamLocationDescriptor, ts::ImageIconDescriptor, ts::IBPDescriptor, ts::HybridInformationDescriptor, ts::HierarchyDescriptor, ts::HierarchicalTransmissionDescriptor, ts::HEVCVideoDescriptor, ts::HEVCTimingAndHRDDescriptor, ts::HEVCHierarchyExtensionDescriptor, ts::GreenExtensionDescriptor, ts::GraphicsConstraintsDescriptor, ts::GenreDescriptor, ts::FTAContentManagementDescriptor, ts::FrequencyListDescriptor, ts::FMCDescriptor, ts::FlexMuxTimingDescriptor, ts::ExternalESIdDescriptor, ts::ExternalApplicationAuthorizationDescriptor, ts::ExtendedEventDescriptor, ts::ExtendedChannelNameDescriptor, ts::ExtendedBroadcasterDescriptor, ts::EventGroupDescriptor, ts::EutelsatChannelNumberDescriptor, ts::EmergencyInformationDescriptor, ts::ECMRepetitionRateDescriptor, ts::EASMetadataDescriptor, ts::EASInbandExceptionChannelsDescriptor, ts::EASInbandDetailsChannelDescriptor, ts::EASAudioFileDescriptor, ts::EacemStreamIdentifierDescriptor, ts::DVBTimeShiftedServiceDescriptor, ts::DVBStuffingDescriptor, ts::DVBJApplicationLocationDescriptor, ts::DVBJApplicationDescriptor, ts::DVBHTMLApplicationLocationDescriptor, ts::DVBHTMLApplicationDescriptor, ts::DVBHTMLApplicationBoundaryDescriptor, ts::DVBEnhancedAC3Descriptor, ts::DVBAC4Descriptor, ts::DVBAC3Descriptor, ts::DTSNeuralDescriptor, ts::DTSHDDescriptor, ts::DTSDescriptor, ts::DTGShortServiceNameDescriptor, ts::DTGServiceAttributeDescriptor, ts::DTGGuidanceDescriptor, ts::DSNGDescriptor, ts::DIILocationDescriptor, ts::DigitalCopyControlDescriptor, ts::DeferredAssociationTagsDescriptor, ts::DCCDepartingRequestDescriptor, ts::DCCArrivingRequestDescriptor, ts::DataStreamAlignmentDescriptor, ts::DataContentDescriptor, ts::DataComponentDescriptor, ts::DataBroadcastIdDescriptor, ts::DataBroadcastDescriptor, ts::CueIdentifierDescriptor, ts::CPIdentifierDescriptor, ts::CPDescriptor, ts::CountryAvailabilityDescriptor, ts::CopyrightDescriptor, ts::ContentLabellingDescriptor, ts::ContentIdentifierDescriptor, ts::ContentDescriptor, ts::ContentAvailabilityDescriptor, ts::ContentAdvisoryDescriptor, ts::ConditionalPlaybackDescriptor, ts::ComponentNameDescriptor, ts::ComponentDescriptor, ts::CIAncillaryDataDescriptor, ts::CellListDescriptor, ts::CellFrequencyLinkDescriptor, ts::CAServiceDescriptor, ts::CarouselIdentifierDescriptor, ts::CaptionServiceDescriptor, ts::CAIdentifierDescriptor, ts::CAEMMTSDescriptor, ts::CADescriptor, ts::CAContractInfoDescriptor, ts::CableDeliverySystemDescriptor, ts::C2DeliverySystemDescriptor, ts::C2BundleDeliverySystemDescriptor, ts::BroadcasterNameDescriptor, ts::BouquetNameDescriptor, ts::BoardInformationDescriptor, ts::BasicLocalEventDescriptor, ts::AVCVideoDescriptor, ts::AVCTimingAndHRDDescriptor, ts::AudioStreamDescriptor, ts::AudioPreselectionDescriptor, ts::AudioComponentDescriptor, ts::ATSCTimeShiftedServiceDescriptor, ts::ATSCStuffingDescriptor, ts::ATSCEAC3AudioDescriptor, ts::ATSCAC3AudioStreamDescriptor, ts::AssociationTagDescriptor, ts::AreaBroadcastingInformationDescriptor, ts::ApplicationUsageDescriptor, ts::ApplicationStorageDescriptor, ts::ApplicationSignallingDescriptor, ts::ApplicationRecordingDescriptor, ts::ApplicationIconsDescriptor, ts::ApplicationDescriptor, ts::AnnouncementSupportDescriptor, ts::AncillaryDataDescriptor, ts::AFExtensionsDescriptor, ts::AdaptationFieldDataDescriptor, ts::AbstractPreferredNameListDescriptor, ts::AbstractPreferredNameIdentifierDescriptor, ts::AbstractMultilingualDescriptor, ts::AbstractLogicalChannelDescriptor, and ts::AACDescriptor.


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