![]() |
TSDuck v3.46-4930
MPEG Transport Stream Toolkit
|
#include <tsDemuxedData.h>


Public Types | |
| using | SuperClass = DataBlock<> |
Public Member Functions | |
| DemuxedData (const ByteBlock &content, PID source_pid=PID_NULL) | |
| DemuxedData (const ByteBlockPtr &content_ptr, PID source_pid=PID_NULL) | |
| DemuxedData (const DemuxedData &other, ShareMode mode) | |
| DemuxedData (const void *content, size_t content_size, PID source_pid=PID_NULL) | |
| DemuxedData (DemuxedData &&other) noexcept | |
| DemuxedData (PID source_pid=PID_NULL) | |
| virtual | ~DemuxedData () override |
| const UString & | attribute () const |
| virtual void | clear () override |
| virtual const uint8_t * | content () const |
| DataBlock & | copy (const DataBlock &other) |
| DemuxedData & | copy (const DemuxedData &other) |
| PacketCounter | firstTSPacketIndex () const |
| virtual bool | isValid () const |
| PacketCounter | lastTSPacketIndex () const |
| bool | matchContent (const ByteBlock &pattern, const ByteBlock &mask=ByteBlock()) const |
| DemuxedData & | operator= (const DemuxedData &other) |
| DemuxedData & | operator= (DemuxedData &&other) noexcept |
| bool | operator== (const DataBlock &other) const |
| bool | operator== (const DemuxedData &other) const |
| size_t | rawDataSize () const |
| void | reload (const ByteBlock &content) |
| void | reload (const ByteBlockPtr &content_ptr) |
| void | reload (const void *content, size_t content_size) |
| virtual void | reload (const ByteBlock &content, PID source_pid=PID_NULL) |
| virtual void | reload (const ByteBlockPtr &content_ptr, PID source_pid=PID_NULL) |
| virtual void | reload (const void *content, size_t content_size, PID source_pid=PID_NULL) |
| void | setAttribute (const UString &attr) |
| void | setFirstTSPacketIndex (PacketCounter i) |
| void | setLastTSPacketIndex (PacketCounter i) |
| void | setSourcePID (PID pid) |
| virtual size_t | size () const |
| PID | sourcePID () const |
Static Public Member Functions | |
| static size_t | GetLengthField (const void *content, size_t content_size) |
| static bool | ValidateLengthField (const void *content, size_t content_size, bool allow_extra_data) |
Static Public Attributes | |
| static constexpr size_t | AFTER_LEN_BYTE_OFFSET = LEN_SIZE == 0 ? 0 : (LEN_OFFSET + LEN_SIZE + 7) / 8 |
| static constexpr size_t | LEN_BIT_OFFSET = LEN_SIZE == 0 ? 0 : LEN_OFFSET |
| static constexpr size_t | LEN_BIT_SIZE = LEN_SIZE |
| static constexpr bool | UNBOUNDED_IS_ALLOWED = UNBOUNDED_ALLOWED |
Protected Member Functions | |
| void | rwAppend (const void *data, size_t dsize) |
| uint8_t * | rwContent () |
| void | rwResize (size_t s) |
Base class for all kinds of demuxed data.
| using ts::DemuxedData::SuperClass = DataBlock<> |
Explicit reference to superclass.
Default constructor.
| [in] | source_pid | PID from which the packet was read. |
| ts::DemuxedData::DemuxedData | ( | const DemuxedData & | other, |
| ShareMode | mode ) |
Copy constructor.
| [in] | other | Another instance to copy. |
| [in] | mode | The data are either shared (ShareMode::SHARE) between the two instances or duplicated (ShareMode::COPY). |
|
noexcept |
Move constructor.
| [in,out] | other | Another instance to move. |
| ts::DemuxedData::DemuxedData | ( | const void * | content, |
| size_t | content_size, | ||
| PID | source_pid = PID_NULL ) |
Constructor from full binary content.
| [in] | content | Address of the binary data. |
| [in] | content_size | Size in bytes of the data. |
| [in] | source_pid | PID from which the data was read. |
Constructor from full binary content.
| [in] | content | Binary packet data. |
| [in] | source_pid | PID from which the packet was read. |
| ts::DemuxedData::DemuxedData | ( | const ByteBlockPtr & | content_ptr, |
| PID | source_pid = PID_NULL ) |
Constructor from full binary content.
| [in] | content_ptr | Safe pointer to the binary data. The content is referenced, and thus shared. Do not modify the referenced ByteBlock from outside the DemuxedData. |
| [in] | source_pid | PID from which the data were read. |
|
overridevirtual |
Virtual destructor.
|
overridevirtual |
Clear data content.
Reimplemented from ts::DataBlock< LEN_OFFSET, LEN_SIZE, UNBOUNDED_ALLOWED >.
Reimplemented in ts::PESPacket, ts::Section, and ts::T2MIPacket.
|
virtual |
Reload from full binary content.
| [in] | content | Address of the binary packet data. |
| [in] | content_size | Size in bytes of the packet. |
| [in] | source_pid | PID from which the data were read. |
Reimplemented in ts::PESPacket, ts::Section, and ts::T2MIPacket.
|
virtual |
Reload from full binary content.
| [in] | content | Binary packet data. |
| [in] | source_pid | PID from which the data were read. |
Reimplemented in ts::PESPacket, ts::Section, and ts::T2MIPacket.
|
virtual |
Reload from full binary content.
| [in] | content_ptr | Safe pointer to the binary packet data. The content is referenced, and thus shared. Do not modify the referenced ByteBlock from outside the DemuxedData. |
| [in] | source_pid | PID from which the data were read. |
Reimplemented in ts::PESPacket, ts::Section, and ts::T2MIPacket.
| DemuxedData & ts::DemuxedData::operator= | ( | const DemuxedData & | other | ) |
Assignment operator. The packets are referenced, and thus shared between the two packet objects.
| [in] | other | Other packet to assign to this object. |
|
noexcept |
Move assignment operator.
| [in,out] | other | Other packet to assign to this object. |
| DemuxedData & ts::DemuxedData::copy | ( | const DemuxedData & | other | ) |
Duplication. Similar to assignment but the data are duplicated.
| [in] | other | Other data to duplicate into this object. |
| bool ts::DemuxedData::operator== | ( | const DemuxedData & | other | ) | const |
Equality operator. The source PID's are ignored, only the data contents are compared.
| [in] | other | Other packet to compare. |
|
inline |
|
inline |
Index of first TS packet of the data in the demultiplexed stream. Usually valid only if the data were extracted by a demux.
|
inline |
Index of last TS packet of the data in the demultiplexed stream. Usually valid only if the data were extracted by a demux.
|
inline |
Set the first TS packet of the data in the demultiplexed stream.
| [in] | i | The first TS packet of the data in the demultiplexed stream. |
|
inline |
Set the last TS packet of the data in the demultiplexed stream.
| [in] | i | The last TS packet of the data in the demultiplexed stream. |
|
inline |
Set a generic user-defined string as "attribute" of the object. The semantics of this attribute string is not defined. It is used by the application. The attribute string can be found in the <metadata> structure of the XML representation of a table.
| [in] | attr | Generic string to set as attribute. |
|
inline |
Get the generic user-defined "attribute" string of the object.
|
virtualinherited |
Check if the data structure has valid content. The base implementation only checks that the binary data are allocated. The various constructors or methods which replace the binary content already check the validity of the length field, when there is one. Subclasses may override this method with additional checks.
Reimplemented in ts::PESPacket, ts::Section, and ts::T2MIPacket.
|
inherited |
Reload from full binary content.
| [in] | content | Address of the binary packet data. |
| [in] | content_size | Size in bytes of the packet. |
|
inherited |
Reload from full binary content.
| [in] | content | Binary packet data. The content is copied into a new byte block. |
|
inherited |
|
inherited |
Duplication. Similar to assignment but the data are duplicated.
| [in] | other | Other data to duplicate into this object. |
|
inherited |
Equality operator. The source PID's are ignored, only the data contents are compared.
| [in] | other | Other packet to compare. |
|
virtualinherited |
Access to the full binary content of the data. Do not modify content.
|
virtualinherited |
Size of the logical binary content of the data. For subclasses of DataBlock, this is the logical size of the data structure inside the DataBlock blob.
Reimplemented in ts::PESPacket.
|
inlineinherited |
Size of the complete binary raw data containing the logical structure. Non-virtual method, always return the same result.
|
inherited |
Check if the start of the data matches a given pattern.
| [in] | pattern | A byte block to compare with the start of the data. |
| [in] | mask | Optional mask to select meaningful bits in pattern. |
|
staticinherited |
Static method to extract the content of the length field.
| [in] | content | Address of the binary data. Can be the null pointer. |
| [in] | content_size | Size in bytes of the data. |
|
staticinherited |
Static method to validate the content of the length field.
| [in] | content | Address of the binary data. Can be the null pointer. |
| [in] | content_size | Size in bytes of the data. |
| [in] | allow_extra_data | If true, additional data are allowed after the declared length. |
|
inlineprotectedinherited |
Read/write access to the full binary content of the data for subclasses.
|
protectedinherited |
Resize the full binary content of the data for subclasses.
| [in] | s | New size in bytes of the full binary content of the data. |
|
protectedinherited |
Append raw data to the full binary content of the data for subclasses.
| [in] | data | Address of the new area to append. |
| [in] | dsize | Size of the area to append. |
|
staticconstexprinherited |
Offset in bits of the length field from the beginning of the structure.
|
staticconstexprinherited |
Size in bits of the length field. If zero, there is no length field.
|
staticconstexprinherited |
Offset in bytes of the next byte after the length field. Zero if there is no length field.
|
staticconstexprinherited |
If true, the length field allows zero as an "unbounded" value.