Module mpeg2ts_reader::psi
source · Expand description
Types for processing tables of Program Specific Information in a transport stream.
Concepts
- There are multiple standard types of Program Specific Information, like the Program Association Table and Program Map Table. Standards derived from mpegts may define their own table types.
- A PSI Table can split into Sections
- A Section can be split across a small number of individual transport stream Packets
- A Section may use a syntax common across a number of the standard table types, or may be an opaque bag of bytes within the transport stream whose interpretation is defined within a derived standard (and therefore not in this library).
Core types
SectionPacketConsumer
converts Packets into SectionsTableSectionConsumer
converts Sections into Tables
Note that the specific types of table such as Program Association Table are defined elsewhere with only the generic functionality in this module.
Modules
Structs
Implements
BufferSectionSyntaxParser
so that any sections that cross TS-packet boundaries
are collected into a single byte-buffer for easier parsing. In the common case that the
section fits entirely in a single TS packet, the implementation is zero-copy.A wrapper around some other implementation of
SectionSyntaxPayloadParser
that passes-through
section data, unless the TableSyntaxHeader
indicates a version_number which is the same as
the last data that was passed though.A
PacketConsumer
for buffering Program Specific Information, which may be split across
multiple TS packets, and passing a complete PSI table to the given SectionProcessor
when a
complete, valid section has been received.Represents the fields that appear within table sections that use the common ‘section syntax’.
Enums
Traits
Trait for types which process the data within a PSI section following the 12-byte
section_length
field (which is one of the items available in the SectionCommonHeader
that
is passed in.Trait for types that will handle MPEGTS PSI table sections with ‘section syntax’.