Program-specific information (PSI) tells a receiver what the stream contains. A table is split into sections carried in packets on its PID, and is never scrambled. MPEG-2 defines the PAT, CAT and PMT; the NIT layout is DVB’s, in ETSI EN 300 468. Field layouts follow H.222.0 from memory, as noted on the packets page.
Section header
| Bits | Name | Meaning |
|---|---|---|
| 8 | table_id | The table; see below. |
| 1 | section_syntax_indicator | 1 means the long header below follows. |
| 1 | private bit | 0 for PAT, PMT and CAT. |
| 2 | reserved | Ones. |
| 12 | section_length | Bytes after this field, the CRC included. At most 1021 for PAT, CAT and PMT. |
| 16 | table_id_extension | In the long form: for the PAT the transport stream ID, for the PMT the program number. |
| 2 | reserved | Ones. |
| 5 | version_number | Changes when the table changes. |
| 1 | current_next_indicator | 1 if the table is current. |
| 8 | section_number | This section’s number. |
| 8 | last_section_number | The last section’s number. |
| varies | table data | As below. |
| 32 | CRC_32 | Over the section. |
Descriptors, used in PMT and CAT, are a tag byte, a length byte and the data. Their tags are listed on Stream types and descriptors.
Table IDs
| table_id | Table |
|---|---|
00 | Program Association Table (PAT) |
01 | Conditional Access Table (CAT) |
02 | Program Map Table (PMT) |
03 | Transport Stream Description |
04 | ISO/IEC 14496 scene description |
05 | ISO/IEC 14496 object description |
06 | Metadata |
07 | ISO/IEC 13818-11 IPMP control information |
08 to 39 | Reserved |
3A | DSM-CC multiprotocol encapsulated |
3B | DSM-CC U-N messages |
3C | DSM-CC download data messages |
3D | DSM-CC stream descriptor list |
3E | DSM-CC privately defined |
3F | DSM-CC addressable |
40 to 7F | Used by DVB |
80 to 8F | Conditional access message sections (DVB-CSA, DigiCipher II and ATSC EMM and ECM) |
90 to BF | Assignable to other data tables |
C0 | SCTE Programme Information Message |
C1 | SCTE Programme Name Message |
C2 to FE | Used by DigiCipher II, ATSC and SCTE |
FF | Forbidden; null padding |
Program Association Table
Always on PID 0. After the section header, repeated 4-byte entries:
| Bits | Name | Meaning |
|---|---|---|
| 16 | program_number | 0 means the following PID is the Network Information Table. |
| 3 | reserved | Ones. |
| 13 | PID | The Program Map Table’s PID, or the NIT’s for program 0. |
Program Map Table
| Bits | Name | Meaning |
|---|---|---|
| 3 | reserved | Ones. |
| 13 | PCR_PID | PID of the packets that carry this program’s clock. |
| 4 | reserved | Ones. |
| 12 | program_info_length | Bytes of descriptors following. |
| n | descriptors | Program descriptors. |
| For each elementary stream: | ||
| 8 | stream_type | The stream type. |
| 3 | reserved | Ones. |
| 13 | elementary_PID | PID of the stream. |
| 4 | reserved | Ones. |
| 12 | ES_info_length | Bytes of descriptors following. |
| n | descriptors | Stream descriptors. |
Conditional Access Table
Table ID 1, on PID 1. After the section header, its data is descriptors only. A conditional access descriptor names the CA system and the PID of its EMM stream.
Network Information Table
Optional. It groups transport streams into a network and is defined by DVB in ETSI EN 300 468, not by MPEG-2. Its layout is not reproduced here.