Skip to main content

πŸ“… PSI Tables

Program Specific Information (PSI) is the set of MPEG transport stream tables used to describe programs and help a receiver locate the elementary streams that belong to them. In baseline MPEG-TS terms, this mainly means tables such as the Program Association Table (PAT) and Program Map Table (PMT), defined by MPEG-2 Systems / ITU-T H.222.0 / ISO/IEC 13818-1.

Broader transport-stream ecosystems add more signaling on top of that core:

  • DVB defines Service Information (SI) tables such as NIT, SDT, and EIT.
  • ATSC defines PSIP tables such as MGT and VCT.

Those additional tables can be important in broadcast systems, but this manual page is not trying to catalog every possible PSI, SI, or PSIP table in every MPEG-TS profile.

For STANAG 4609, the practical requirement is narrower: the stream must expose enough MPEG-TS program signaling to identify the program and its elementary streams, especially the video stream and the metadata-bearing stream described by the PMT. In other words, this test is focused on the tables needed to discover a valid STANAG 4609 program structure, not on full DVB or ATSC service signaling coverage.

info
Reserved MPEG-TS PID reference

For baseline MPEG-TS, the universally assigned PSI-related PIDs come from ISO/IEC 13818-1. DVB then layers additional Service Information (SI) assignments on top of that transport-stream core.

Core MPEG-TS reserved PIDs:

PID (hex)PID (dec)Table / usePurpose
0x00000PATProgram Association Table
0x00011CATConditional Access Table
0x00022TSDTTransport Stream Description Table
0x00033IPMPIPMP control information table
0x0004-0x000F4-15ReservedReserved for future use
0x1FFF8191Null packetStuffing packets for bitrate padding; not PSI

The PMT does not have a fixed reserved PID. Its PID is signaled by the PAT.

DVB SI PID assignments:

DVB commonly uses the 0x0010 to 0x001F range for Service Information (SI) tables and related signaling:

PIDTable / use
0x0010NIT, ST
0x0011SDT, BAT, ST
0x0012EIT, CIT, ST
0x0013RST, ST
0x0014TDT, TOT, ST
0x0015Network synchronization
0x0016RNT
0x0017-0x001BReserved for future use
0x001CInband signalling
0x001DMeasurement
0x001EDIT
0x001FSIT

For this STANAG 4609 test, the application only depends on discovering PAT and PMT. It does not require broad DVB SI coverage beyond that core program-signaling path.

What This Test Does​

The current implementation depends on PAT and PMT discovery.

During ingest, the application opens the file and scans transport-stream data looking for MPEG-TS program signaling. It must first detect a Program Association Table (PAT) so it can locate the Program Map Table (PMT). When it finds a usable PMT, it converts that PMT into an internal program summary that includes:

  • the program_number
  • the pcr_pid
  • the list of elementary streams
  • each elementary stream PID and MPEG-TS stream type
  • the registration descriptor, when present
  • a derived KLV classification for metadata stream types

PSI tables illustration

The scan:

  • reads up to 10,000 demuxed packets while looking for PAT and PMT data
  • stops after the first unique PMT-backed program is collected
  • stores the discovered program under ingest metadata as programs
  • treats the rule as passed if at least one program is present in that ingest metadata
  • otherwise derives the failure message from ingest probe details, preferring a specific PAT or PMT detection failure when available

That means this rule does not currently validate every possible PSI table in the stream. It does not attempt a full DVB SI or ATSC PSIP audit, and it does not require the application to enumerate all programs present in a multiplex. Its practical purpose is to confirm that ingest was able to resolve the core MPEG-TS program signaling needed for STANAG 4609 inspection, starting with PAT discovery and then a usable PMT-backed program description.

βœ… Pass Criteria​

The test passes when ingest resolves at least one PMT-backed program entry and stores it under programs in ingest metadata.

Application result message:

Program Specific Information tables were detected.

❌ Fail Criteria​

The test fails when ingest cannot derive any programs from PAT/PMT signaling.

Typical causes include:

  • no PAT appears during the ingest scan, so PMT locations cannot be resolved
  • no readable PMT appears during the ingest scan
  • PSI/PMT packets are malformed or incomplete
  • the transport stream is truncated before program signaling can be resolved
  • the stream is not structured as a usable MPEG-TS program for STANAG 4609 analysis

Application result messages can include:

  • No PAT was detected during ingest.
  • No PMT was detected during ingest.
  • No PSI tables or PMT programs were detected during ingest.

Example​

Here a chart that shows a file with 10 corrupted sync bytes.

PSI tables chart

Test files​

  • mpegts-remove-PAT.ts
  • mpegts-remove-PMT.ts