π 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.
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 / use | Purpose |
|---|---|---|---|
0x0000 | 0 | PAT | Program Association Table |
0x0001 | 1 | CAT | Conditional Access Table |
0x0002 | 2 | TSDT | Transport Stream Description Table |
0x0003 | 3 | IPMP | IPMP control information table |
0x0004-0x000F | 4-15 | Reserved | Reserved for future use |
0x1FFF | 8191 | Null packet | Stuffing 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:
| PID | Table / use |
|---|---|
0x0010 | NIT, ST |
0x0011 | SDT, BAT, ST |
0x0012 | EIT, CIT, ST |
0x0013 | RST, ST |
0x0014 | TDT, TOT, ST |
0x0015 | Network synchronization |
0x0016 | RNT |
0x0017-0x001B | Reserved for future use |
0x001C | Inband signalling |
0x001D | Measurement |
0x001E | DIT |
0x001F | SIT |
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

The scan:
- reads up to
10,000demuxed 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.

Test filesβ
- mpegts-remove-PAT.ts
- mpegts-remove-PMT.ts