Home | Kontakt | Sitemap

Start

Über mich

Kontakt

Sitemap

Lizenz

Anleitungen

DVD, miniDVD

SVCD

Audio, Audio-CD (CD-DA)

AVI

Software

Von Freunden und Bekannten

Eigene Programme

Programmierung

Delphi

Lazarus

Delphi/Lazarus

Projekte

MPEG-1/2 Video

Optische Laufwerke

Audio-CD (CDDA)

Raspberry Pi Dashcam

Verschiedenes

MPEG 2 Schnitt

Project X

VCD Easy

Hardlinks

Windows

Links

Software

Projekte | MPEG - Transport Stream - Program Specific Information - Program Map Table

PMT - Program Map Table

Die Program Map Table ist in der ISO/IEC 13818-1 definiert. Sie ist an keine bestimmte PID gebunden. Vielmehr sind die PIDs, in welcher PMT enthalten sind, als program_map_PID in der Programmnummernliste der PAT angegeben. Die Table kann nicht über mehrere Sektion verteilt werden.

Der Aufbau

Program Specific Information

pointer_field: Das pointer_field ist nur vorhanden, wenn in diesem Paket eine Sektion beginnt. Ist dies der Fall, ist der Payload Start Indicator des Transport Stream Headers auf '1' gesetzt. Das pointer_field gibt dann an, ab welchem Byte nach dem pointer_field die neue Sektion beginnt. Beginnt keine neue Sektion ist der Payload Start Indicator auf '0' gesetzt.

Program Map Section

table_id: Ist die ID der Tabelle. Sie muss den Wert $02 besitzen.

section_syntax_indicator: Das Bit ist auf '1' gesetzt.

section_length: Dies ist Länge der Sektion. Sie gibt die verbleibende Länge ab dem folgenden Byte einschließlich der Kontrollsumme CRC32 an. Die Sektion kann über mehrerere Pakete verteilt sein, darf jedoch nicht länger als 1021 Byte sein. Die ersten beiden der zwölf Bit sind immer auf '0' gesetzt.

program_number: Gibt die Programmnummer an, auf welches die program_map_PID anzuwenden ist. Eine Programmdefinition darf nur eine TS_program_map_section enthalten. Eine Definition ist nie länger als 1016 Byte.

version_number: Das ist die Versionsnummer der Tabelle. Sie beginnt mit 0 und wird bei einer Änderung der Information um 1 erhöht. Ist die 31 erreicht, beginnt die Zählung wieder bei 0. Hat der current_next_indicator den Wert '1', dann ist dies die Version der gerade anzuwendenen program association table. Ist der Wert '0', ist es die Version der nächsten anzuwendenen program association table.

current_next_indicator: Er gibt an, ob die Tabelle anwendbar ist. Ist der Wert 0, ist es die nächste anzuwendene Tabelle.

section_number: Die Sektionsnummer ist immer $00.

last_section_number: Die Nummer der letzten Sektion ist hier immer $00.

PCR_PID: Gibt die PID der Pakete an, welche die für die festgelegte Programmnummer gelten. Wenn kein PCR mit einer Programmdefinition für einen privaten Stream verbunden ist, ist der Wert $1FFF.

program_info_length: Die ersten beiden Bits sind '00'. Der Wert gibt an, wie lang der unmittelbar auf diesen Wert folgende Descriptor ist.

stream_type: Der Wert gibt an, welchen Typ die Pakete mit der PID enthalten, welche unter elementary_PID angegeben ist. Möglich sind folgende Werte:

elementary_PID: Gibt die PID der Pakete an, welche das hiermit verbundene Programmelement enthält.

ES_info_length: Die ersten beiden Bits sind '00'. Der Wert gibt die Länge des unmittelbar folgenden Descriptors an.

CRC_32: Dieser Wert ist für den Decoder bestimmt.

Testprogramm

Test 5: Das Testprogramm scannt einen Transport Stream. Er zeigt die Stream Header, Adaptationsfelder, Program Association Table und Program Map Table.

TSTest5 (237 kb), MD5 (1 kb).
Stand: 19. Februar 2010

Programm Association Table > Programm Map Table > Service Information