![]() |
TSDuck v3.46-4930
MPEG Transport Stream Toolkit
|
#include <tsTSPacketMetadata.h>
Public Member Functions | |
| TSPacketMetadata () | |
| uint8_t * | auxData () |
| const uint8_t * | auxData () const |
| size_t | auxDataSize () const |
| void | clearAllLabels () |
| void | clearInputTimeStamp () |
| void | clearLabel (size_t label) |
| void | clearLabels (const TSPacketLabelSet &mask) |
| bool | deserialize (const ByteBlock &bin) |
| bool | deserialize (const void *data, size_t size) |
| size_t | getAuxData (void *data, size_t max_size) const |
| void | getAuxData (void *data, size_t max_size, uint8_t pad) const |
| bool | getBitrateChanged () const |
| bool | getDatagram () const |
| bool | getFlush () const |
| bool | getInputStuffing () const |
| TimeSource | getInputTimeSource () const |
| PCR | getInputTimeStamp () const |
| bool | getNullified () const |
| bool | hasAllLabels (const TSPacketLabelSet &mask) const |
| bool | hasAnyLabel () const |
| bool | hasAnyLabel (const TSPacketLabelSet &mask) const |
| bool | hasInputTimeStamp () const |
| bool | hasLabel (size_t label) const |
| UString | inputTimeStampString (const UString &none=u"none") const |
| TSPacketLabelSet | labels () const |
| UString | labelsString (const UString &separator=u" ", const UString &none=u"none") const |
| void | reset () |
| void | serialize (ByteBlock &bin) const |
| size_t | serialize (void *data, size_t size) const |
| void | setAuxData (const void *data, size_t size) |
| void | setBitrateChanged (bool on) |
| void | setDatagram (bool on) |
| void | setFlush (bool on) |
| void | setInputStuffing (bool on) |
| template<class Rep, class Period> | |
| void | setInputTimeStamp (const cn::duration< Rep, Period > ×tamp, TimeSource source) |
| void | setLabel (size_t label) |
| void | setLabels (const TSPacketLabelSet &mask) |
| void | setNullified (bool on) |
Static Public Member Functions | |
| static void | Copy (TSPacketMetadata *dest, const TSPacketMetadata *source, size_t count) |
| static void | DisplayLayout (std::ostream &out, const char *prefix="") |
| static void | Reset (TSPacketMetadata *dest, size_t count) |
Static Public Attributes | |
| static constexpr size_t | AUX_DATA_MAX_SIZE = 16 |
| static constexpr uint8_t | SERIALIZATION_MAGIC = SYNC_BYTE ^ 0xFF |
| static constexpr size_t | SERIALIZATION_SIZE = 14 |
Metadata of an MPEG-2 transport packet for tsp plugins.
An instance of this class is passed with each TS packet to packet processor plugins.
| ts::TSPacketMetadata::TSPacketMetadata | ( | ) |
Constructor.
| void ts::TSPacketMetadata::reset | ( | ) |
Reset the content of this instance. Return to initial empty state.
|
inline |
Specify if the packet was artificially inserted as input stuffing.
| [in] | on | When true, the packet was artificially inserted as input stuffing. |
|
inline |
Check if the packet was artificially inserted as input stuffing.
|
inline |
Specify if the packet was explicitly turned into a null packet by a plugin.
| [in] | on | When true, the packet was explicitly turned into a null packet by a plugin. |
|
inline |
Check if the packet was explicitly turned into a null packet by a plugin.
|
inline |
Specify if the packet was originally extracted from a datagram of several TS packets.
| [in] | on | When true, the packet was originally extracted from a datagram of several TS packets. |
|
inline |
Check if the packet was originally extracted from a datagram of several TS packets.
|
inline |
Specify if the packet chain shall be flushed by tsp as soon as possible. This is typically called by a packet processing plugin.
| [in] | on | When set to true by a packet processing plugin, the packet and all previously processed and buffered packets should be passed to the next processor as soon as possible. |
|
inline |
Check if the packet chain shall be flushed by tsp as soon as possible.
|
inline |
Specify if the plugin has changed the transport stream bitrate. This is typically called by a packet processing plugin.
| [in] | on | When set to true by a packet processing plugin, tsp should call its getBitrate() callback as soon as possible. |
|
inline |
Check if the plugin has changed the transport stream bitrate.
|
inline |
Check if the TS packet has a specific label set.
| [in] | label | The label to check. |
|
inline |
Check if the TS packet has any label set.
|
inline |
Check if the TS packet has any label set from a set of labels.
| [in] | mask | The mask of labels to check. |
|
inline |
Check if the TS packet has all labels set from a set of labels.
| [in] | mask | The mask of labels to check. |
|
inline |
Get all labels from the TS packet.
|
inline |
Set a specific label for the TS packet.
| [in] | label | The label to set. |
|
inline |
Set a specific set of labels for the TS packet.
| [in] | mask | The mask of labels to set. |
|
inline |
Clear a specific label for the TS packet.
| [in] | label | The label to clear. |
|
inline |
Clear a specific set of labels for the TS packet.
| [in] | mask | The mask of labels to clear. |
|
inline |
Clear all labels for the TS packet.
| UString ts::TSPacketMetadata::labelsString | ( | const UString & | separator = u" ", |
| const UString & | none = u"none" ) const |
Get the list of labels as a string, typically for debug messages.
| [in] | separator | Separator between labale values. |
| [in] | none | String to display when there is no label set. |
|
inline |
Get the optional input time stamp of the packet.
tsp or not set at all.tsp software (based on internal clock), by the receiving hardware (the NIC for instance) or by some external source (RTP or M2TS time stamp).
|
inline |
Get the identification of the source of the input time stamp.
|
inline |
Check if the packet has an input time stamp.
| void ts::TSPacketMetadata::clearInputTimeStamp | ( | ) |
Clear the input time stamp.
| void ts::TSPacketMetadata::setInputTimeStamp | ( | const cn::duration< Rep, Period > & | timestamp, |
| TimeSource | source ) |
Set the optional input time stamp of the packet.
| [in] | timestamp | Input time stamp value. This value should be taken from a monotonic clock. |
| [in] | source | Identification of time stamp source. |
Get the input time stamp as a string, typically for debug messages.
| [in] | none | String to display when there is no label set. |
| void ts::TSPacketMetadata::setAuxData | ( | const void * | data, |
| size_t | size ) |
Copy bytes into the auxiliary data. The auxiliary data are made of up to 16 bytes and are attached to the packet metadata. There is no predefined usage for auxiliary data. In practice, they are read from the 16-byte trailer which can be found in some modulation systems, after the TS packet.
| data | [in] Address of data to copy into the auxiliary data. |
| size | [in] Size in bytes of the data to copy. Up to 16 bytes are used, the rest is ignored. |
| size_t ts::TSPacketMetadata::getAuxData | ( | void * | data, |
| size_t | max_size ) const |
Copy bytes from the auxiliary data.
| data | [out] Address of user buffer to receive the auxiliary data. |
| max_size | [in] Maximum size in bytes of the user buffer. |
| void ts::TSPacketMetadata::getAuxData | ( | void * | data, |
| size_t | max_size, | ||
| uint8_t | pad ) const |
Copy bytes from the auxiliary data and pad user buffer if necessary.
| data | [out] Address of user buffer to receive the auxiliary data. |
| max_size | [in] Maximum size in bytes of the user buffer. |
| pad | [in] Pad value to copy in all additional bytes in the user's buffer if the auxiliary data are shorter than max_size. |
|
inline |
Size in bytes of the auxiliary data.
|
inline |
Direct access to the auxiliary data.
|
inline |
Direct access to the auxiliary data.
|
static |
Copy contiguous TS packet metadata.
| [out] | dest | Address of the first contiguous TS packet metadata to write. |
| [in] | source | Address of the first contiguous TS packet metadata to read. |
| [in] | count | Number of TS packet metadata to copy. |
|
static |
Reset contiguous TS packet metadata.
| [out] | dest | Address of the first contiguous TS packet metadata to reset. |
| [in] | count | Number of TS packet metadata to copy. |
| void ts::TSPacketMetadata::serialize | ( | ByteBlock & | bin | ) | const |
Serialize the content of this instance into a byteblock. The serialized data is a fixed size block of SERIALIZATION_SIZE bytes. The auxiliary data are not included in the serialized buffer.
| [out] | bin | Returned binary data. |
| size_t ts::TSPacketMetadata::serialize | ( | void * | data, |
| size_t | size ) const |
Serialize the content of this instance into a memory area. The serialized data is a fixed size block of SERIALIZATION_SIZE bytes. The auxiliary data are not included in the serialized buffer.
| [out] | data | Address of the memory area. |
| [in] | size | Size in bytes of the memory area. |
|
inline |
Deserialize the content of this instance from a byteblock.
| [in] | bin | Binary data containing a serialized instance of TSPacketMetadata. |
| bool ts::TSPacketMetadata::deserialize | ( | const void * | data, |
| size_t | size ) |
Deserialize the content of this instance from a byteblock.
| [in] | data | Address of binary data containing a serialized instance of TSPacketMetadata. |
| [in] | size | Size in bytes of these data. |
|
static |
Display the structure layout of the data structure (for debug only).
| [in,out] | out | Output stream, where to display. |
| [in] | prefix | Optional prefix on each line. |
|
staticconstexpr |
Maximum size in bytes of auxiliary data.
|
staticconstexpr |
Size in bytes of the structure into which a TSPacketMetadata can be serialized.
|
staticconstexpr |
First "magic" byte of the structure into which a TSPacketMetadata was serialized. Intentionally the opposite of the TS packet synchro byte.