November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Thursday, May 15th, 2008 07:55 am
Остальные части

В этом и нескольких следующих выпусках будут живые примеры служебных таблиц с комментариями. Те, кто понял всё, что было написано в предыдущем выпуске, и кого не интересуют сугубо технические подробности, могут их пропустить без особого ущерба.

Таблицы приводятся целиком, без разбивки на отдельные TS-пакеты, в которых они передавались.

Декодирование таблиц (не путать с дешифрованием - эти данные не шифруются) выполнено замечательной программой dvbsnoop. Некоторая несущественная информация из расшифровок намеренно удалена, в частности, поля с фиксированными значениями и зарезервированные поля, не несущие смысловой нагрузки, а также шестнадцатиричные дампы.



Program Association Table (PAT):
------------------------------------------------------------
SECT-Packet: 00000001   PID: 0 (0x0000), Length: 72 (0x0048)
------------------------------------------------------------

PID:  0 (0x0000)  [= assigned for: ISO 13818-1 Program Association Table (PAT)]
Guess table from table id...
PAT-decoding....
Table_ID: 0 (0x00)  [= Program Association Table (PAT)]
section_syntax_indicator: 1 (0x01)
Section_length: 69 (0x0045)
Transport_Stream_ID: 2001 (0x07d1)
Version_number: 21 (0x15)
current_next_indicator: 1 (0x01)  [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 0 (0x00)

    Program_number: 0 (0x0000)
    Network_PID: 16 (0x0010)

    Program_number: 2101 (0x0835)
    Program_map_PID: 2901 (0x0b55)

    Program_number: 2102 (0x0836)
    Program_map_PID: 2902 (0x0b56)

    Program_number: 2103 (0x0837)
    Program_map_PID: 2903 (0x0b57)

    Program_number: 2104 (0x0838)
    Program_map_PID: 2904 (0x0b58)

    Program_number: 2105 (0x0839)
    Program_map_PID: 2905 (0x0b59)

    Program_number: 2106 (0x083a)
    Program_map_PID: 2906 (0x0b5a)

    Program_number: 2221 (0x08ad)
    Program_map_PID: 2831 (0x0b0f)

    Program_number: 2225 (0x08b1)
    Program_map_PID: 2830 (0x0b0e)

    Program_number: 2226 (0x08b2)
    Program_map_PID: 2826 (0x0b0a)

    Program_number: 2227 (0x08b3)
    Program_map_PID: 2827 (0x0b0b)

    Program_number: 2228 (0x08b4)
    Program_map_PID: 2828 (0x0b0c)

    Program_number: 2229 (0x08b5)
    Program_map_PID: 2829 (0x0b0d)

    Program_number: 2232 (0x08b8)
    Program_map_PID: 2832 (0x0b10)

    Program_number: 2233 (0x08b9)
    Program_map_PID: 2833 (0x0b11)

CRC: 2280259402 (0x87e9ff4a)
==========================================================

Из этого дампа мы можем узнать следующее:
Таблица состоит из одной секции (Last_Section_number = 0) и эту самую секцию (Section_number = 0) мы и рассматриваем.

Таблица передавалась с PIDом 0 (собственно, именно по этому признаку я её и вылавливал).

Table_ID = 0, это значение определено стандартом для PAT, что позволяет дальнейшее содержимое интерпретировать именно как PAT.

Transport_Stream_ID = 2001. Каждому мультиплексированному потоку (фактически, транспондеру) назначается уникальный (в пределах группы мультиплексированных потоков, относящихся к одному вещателю) номер, позволяющий отличить его от других потоков. Данная таблица относится к потоку номер 2001. Дальнейшая информация о нём может быть приведена в NIT, см. следующий выпуск.

current_next_indicator = 1, это версия таблицы, действующая в настоящее время (в таблице для следующего периода этот флаг был бы равен 0).

Version_number = 21, но поскольку я не следил специально за сменами версий, я не могу сказать, как давно существует эта версия и как часто они меняются.

Далее в таблице идут номера программ и PIDы их PMT (program map tables).

Номер программы 0 зарезервирован для указания NIT (network information table), которая идёт на обычном (хоть и не оговорённом стандартом) PIDе 0x0010.

Остальные 14 программ в списке - настоящие. Номера программ уникальны в пределах группы мультиплексированных потоков, относящихся к одному вещателю. В случае кабельного вещания к одному вещателю (кабельному провайдеру) обычно относятся все потоки.
Tags: