TSDuck Version 3.32-2769 (TSDuck - The MPEG Transport Stream Toolkit)
ts::SpliceInsert Class Reference

Representation of an SCTE 35 SpliceInsert command. More...

Inheritance diagram for ts::SpliceInsert:
Collaboration diagram for ts::SpliceInsert:

Public Types

typedef std::map< uint8_t, SpliceTimeSpliceByComponent
 A map of 64-bit PTS time values, indexed by 8-bit component tags. More...
 

Public Member Functions

 SpliceInsert ()
 Default constructor.
 
void adjustPTS (uint64_t adjustment)
 Adjust PTS time values using the "PTS adjustment" field from a splice information section. More...
 
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...
 
int deserialize (const uint8_t *data, size_t size)
 Deserialize a SpliceInsert command from binary data. More...
 
void display (TablesDisplay &display, const UString &margin) const
 Display the splice insert command. More...
 
void fromXML (DuckContext &duck, const xml::Element *element)
 This method converts an XML structure to a table or descriptor in this object. More...
 
uint64_t highestPTS () const
 Get the highest PTS value in the command. More...
 
void invalidate ()
 Invalidate this object. More...
 
bool isValid () const
 Check if this object is valid. More...
 
uint64_t lowestPTS () const
 Get the lowest PTS value in the command. More...
 
void serialize (ByteBlock &data) const
 Serialize the SpliceInsert command. 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...
 

Public Attributes

bool auto_return
 When true, there won't be an explicit "splice in" event, use duration_pts (valid if !canceled && use_duration).
 
uint8_t avail_num
 Identification for a specific avail within one program_id.
 
uint8_t avails_expected
 Expected number of individual avails within the current viewing event.
 
bool canceled
 When true, event is canceled, other fields are ignored.
 
SpliceByComponent components_pts
 PTS time value of the event by component (valid if !canceled && !program_splice && !immediate).
 
uint64_t duration_pts
 Duration of the splice out / splice in sequence (valid if !canceled && use_duration).
 
uint32_t event_id
 Splice event id.
 
bool immediate
 When true, should splice asap, time fields are ignored.
 
uint16_t program_id
 Unique program id.
 
SpliceTime program_pts
 PTS time value of the event (valid if !canceled && program_splice && !immediate).
 
bool program_splice
 When true, all components are spliced.
 
bool splice_out
 When true, this is a "splice out" event, "splice in" otherwise.
 
bool use_duration
 When true, the duration of the splice out / splice in sequence is given.
 

Static Public Attributes

static constexpr uint32_t INVALID_EVENT_ID = 0xFFFFFFFF
 An invalid value for event id, can be used as place-holder.
 
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

virtual bool analyzeXML (DuckContext &, const xml::Element *) override
 Helper method to convert this object from XML. More...
 
virtual void buildXML (DuckContext &, xml::Element *) const override
 Helper method to convert this object to XML. More...
 
virtual void clearContent () override
 Helper method to clear the content of the table or descriptor. More...
 

Detailed Description

Representation of an SCTE 35 SpliceInsert command.

See also
ANSI/SCTE 35, 9.3.3.

Member Typedef Documentation

◆ SpliceByComponent

typedef std::map<uint8_t, SpliceTime> ts::SpliceInsert::SpliceByComponent

A map of 64-bit PTS time values, indexed by 8-bit component tags.

Used when the program is splice component by component, not as a whole.

Member Function Documentation

◆ adjustPTS()

void ts::SpliceInsert::adjustPTS ( uint64_t  adjustment)

Adjust PTS time values using the "PTS adjustment" field from a splice information section.

Parameters
adjustmentPTS adjustment value.

◆ highestPTS()

uint64_t ts::SpliceInsert::highestPTS ( ) const

Get the highest PTS value in the command.

Returns
The highest PTS value in the command or INVALID_PTS if none found.

◆ lowestPTS()

uint64_t ts::SpliceInsert::lowestPTS ( ) const

Get the lowest PTS value in the command.

Returns
The lowest PTS value in the command or INVALID_PTS if none found.

◆ display()

void ts::SpliceInsert::display ( TablesDisplay display,
const UString margin 
) const

Display the splice insert command.

Parameters
[in,out]displayDisplay engine.
[in]marginLeft margin content.

◆ deserialize()

int ts::SpliceInsert::deserialize ( const uint8_t *  data,
size_t  size 
)

Deserialize a SpliceInsert command from binary data.

Parameters
[in]dataAddress of data to deserialize.
[in]sizeSize of data buffer, possibly larger than the SpliceInsert command.
Returns
Deserialized size, -1 on incorrect data.

◆ serialize()

void ts::SpliceInsert::serialize ( ByteBlock data) const

Serialize the SpliceInsert command.

Parameters
[in,out]dataThe SpliceInsert command is serialized at the end of this byte block.

◆ clearContent()

virtual void ts::SpliceInsert::clearContent ( )
overrideprotectedvirtual

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.

Implements ts::AbstractSignalization.

◆ buildXML()

virtual void ts::SpliceInsert::buildXML ( DuckContext duck,
xml::Element root 
) const
overrideprotectedvirtual

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.

Implements ts::AbstractSignalization.

◆ analyzeXML()

virtual bool ts::SpliceInsert::analyzeXML ( DuckContext duck,
const xml::Element element 
)
overrideprotectedvirtual

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.

Implements ts::AbstractSignalization.

◆ 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.


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