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
- The payload of a section may use section-syntax or compact-syntax, as indicated by the
section_syntax_indicator
attribute- Section-syntax sections have additional header data, represented by the
TableSyntaxHeader
type - Compact-syntax sections lack this extra header data
- Section-syntax sections have additional header data, represented by the
§Core types
SectionPacketConsumer
converts Packets into Sections
Note that the specific types of table such as Program Association Table are defined elsewhere with only the generic functionality in this module.
Modules§
- Types related to the Program Association Table
- Types related to the Program Map Table
Structs§
- Implements
CompactSyntaxPayloadParser
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. - Implements
SectionSyntaxPayloadParser
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. - An implementation of
SectionProcessor
to be used for sections that implement ‘compact syntax’ (rather than ‘section syntax’). - An implementation of
WholeSectionSyntaxPayloadParser
which will delegate to another instance ofWholeSectionSyntaxPayloadParser
only if the CRC of the section data is correct. - A wrapper around some other implementation of
SectionSyntaxPayloadParser
that passes-through section data, unless theTableSyntaxHeader
indicates a version_number which is the same as the last data that was passed though. - Header common to all PSI sections, whether they then use ‘section syntax’ or ‘compact syntax’.
- A type for locating the headers of PSI sections, which may be split across multiple TS packets, and passing each piece to the given
SectionProcessor
as it is discovered. - An implementation of
SectionProcessor
to be used for sections that implement ‘section syntax’ (rather than ‘compact syntax’). - Represents the fields that appear within table sections that use the common ‘section syntax’.
Enums§
- Represents the value of the Transport Stream
current_next_indicator
field.
Traits§
- Trait for types that will handle MPEGTS PSI table sections with ‘compact syntax’.
- 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 theSectionCommonHeader
that is passed in. - Trait for types that will handle MPEGTS PSI table sections with ‘section syntax’.
- Trait for types that parse fully reconstructed PSI table sections.
- Trait for types that parse fully reconstructed PSI table sections (which requires the caller to have buffered section data if it spanned multiple TS packets.