Module mpeg2ts_reader::psi[][src]

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.