Module psi

Module 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

§Core types

Note that the specific types of table such as Program Association Table are defined elsewhere with only the generic functionality in this module.

Modules§

pat
Types related to the Program Association Table
pmt
Types related to the Program Map Table

Structs§

BufferCompactSyntaxParser
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.
BufferSectionSyntaxParser
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.
CompactSyntaxSectionProcessor
An implementation of SectionProcessor to be used for sections that implement ‘compact syntax’ (rather than ‘section syntax’).
CrcCheckWholeSectionSyntaxPayloadParser
An implementation of WholeSectionSyntaxPayloadParser which will delegate to another instance of WholeSectionSyntaxPayloadParser only if the CRC of the section data is correct.
DedupSectionSyntaxPayloadParser
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.
SectionCommonHeader
Header common to all PSI sections, whether they then use ‘section syntax’ or ‘compact syntax’.
SectionPacketConsumer
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.
SectionSyntaxSectionProcessor
An implementation of SectionProcessor to be used for sections that implement ‘section syntax’ (rather than ‘compact syntax’).
TableSyntaxHeader
Represents the fields that appear within table sections that use the common ‘section syntax’.

Enums§

CurrentNext
Represents the value of the Transport Stream current_next_indicator field.

Traits§

CompactSyntaxPayloadParser
Trait for types that will handle MPEGTS PSI table sections with ‘compact syntax’.
SectionProcessor
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.
SectionSyntaxPayloadParser
Trait for types that will handle MPEGTS PSI table sections with ‘section syntax’.
WholeCompactSyntaxPayloadParser
Trait for types that parse fully reconstructed PSI table sections.
WholeSectionSyntaxPayloadParser
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.