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

§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§

  • 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 of WholeSectionSyntaxPayloadParser only if the CRC of the section data is correct.
  • 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.
  • 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 the SectionCommonHeader 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.