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

Public Member Functions | |
| TSPacketStream (ReporterInterface &reporter, TSPacketFormat format=TSPacketFormat::AUTODETECT, StreamInterface *stream=nullptr) | |
| virtual | ~TSPacketStream () |
| TSPacketFormat | packetFormat () const |
| UString | packetFormatString () const |
| size_t | packetHeaderSize () const |
| size_t | packetTrailerSize () const |
| virtual size_t | readPackets (TSPacket *buffer, TSPacketMetadata *metadata, size_t max_packets) |
| virtual PacketCounter | readPacketsCount () const |
| virtual bool | writePackets (const TSPacket *buffer, const TSPacketMetadata *metadata, size_t packet_count) |
| virtual PacketCounter | writePacketsCount () const |
Static Public Member Functions | |
| static size_t | PacketHeaderSize (TSPacketFormat format) |
| static size_t | PacketTrailerSize (TSPacketFormat format) |
Static Public Attributes | |
| static constexpr size_t | MAX_HEADER_SIZE = ts::TSPacketMetadata::SERIALIZATION_SIZE |
| static constexpr size_t | MAX_TRAILER_SIZE = ts::RS_SIZE |
Protected Member Functions | |
| void | resetPacketStream (TSPacketFormat format, StreamInterface *stream) |
Protected Attributes | |
| PacketCounter | _total_read = 0 |
| Total read packets. | |
| PacketCounter | _total_write = 0 |
| Total written packets. | |
Read/write TS packets on a stream.
| ts::TSPacketStream::TSPacketStream | ( | ReporterInterface & | reporter, |
| TSPacketFormat | format = TSPacketFormat::AUTODETECT, | ||
| StreamInterface * | stream = nullptr ) |
Constructor.
| [in,out] | reporter | Reference to an object providing a Report. This reference is kept in the constructed object instance. |
| [in] | format | Initial packet format. |
| [in] | stream | Stream read/write interface. Can be null and replaced later. |
|
virtual |
Destructor.
|
virtual |
Read TS packets from the stream.
| [out] | buffer | Address of reception packet buffer. |
| [out] | metadata | Optional packet metadata. If the file format provides time stamps, they are set in the metadata. Ignored if null pointer. |
| [in] | max_packets | Size of buffer in packets. Also size of metadata in number of objects (when specified). |
Reimplemented in ts::TSFile, and ts::TSFileInputBuffered.
|
virtual |
Write TS packets to the stream.
| [in] | buffer | Address of first packet to write. |
| [in] | metadata | Optional packet metadata containing time stamps. If the file format requires time stamps, metadata must not be a null pointer and all packets must have a time stamp. Otherwise, the last written timestamp is repeated. |
| [in] | packet_count | Number of packets to write. Also size of metadata in number of objects (when specified). |
|
virtual |
Get the number of read packets.
Reimplemented in ts::TSFileInputBuffered.
|
virtual |
Get the number of written packets.
|
static |
Get the packet header size for a given packet format. This "header" comes before the classical 188-byte TS packet.
| [in] | format | Initial packet format. |
|
static |
Get the packet trailer size for a given packet format. This "trailer" comes after the classical 188-byte TS packet.
| [in] | format | Initial packet format. |
|
inline |
Get the packet header size, based on the packet format of this file. This "header" comes before the classical 188-byte TS packet.
|
inline |
Get the packet trailer size, based on the packet format of this file. This "trailer" comes after the classical 188-byte TS packet.
|
inline |
Get the file format.
|
inline |
Get the file format as a string.
|
protected |
Reset the stream format and counters.
| [in] | format | Initial packet format. |
| [in] | stream | Stream read/write interface. |
|
staticconstexpr |
Maximum size in bytes of a packet header for non-TS format. Must be lower than the TS packet size to allow auto-detection on read.
|
staticconstexpr |
Maximum size in bytes of a packet trailer for non-TS format. Must be lower than the TS packet size to allow auto-detection on read.