Остальные части
В этом и нескольких следующих выпусках будут живые примеры служебных таблиц с комментариями. Те, кто понял всё, что было написано в предыдущем выпуске, и кого не интересуют сугубо технические подробности, могут их пропустить без особого ущерба.
Таблицы приводятся целиком, без разбивки на отдельные TS-пакеты, в которых они передавались.
Декодирование таблиц (не путать с дешифрованием - эти данные не шифруются) выполнено замечательной программой dvbsnoop. Некоторая несущественная информация из расшифровок намеренно удалена, в частности, поля с фиксированными значениями и зарезервированные поля, не несущие смысловой нагрузки, а также шестнадцатиричные дампы.
Program Association Table (PAT):
Из этого дампа мы можем узнать следующее:
Таблица состоит из одной секции (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 программ в списке - настоящие. Номера программ уникальны в пределах группы мультиплексированных потоков, относящихся к одному вещателю. В случае кабельного вещания к одному вещателю (кабельному провайдеру) обычно относятся все потоки.
В этом и нескольких следующих выпусках будут живые примеры служебных таблиц с комментариями. Те, кто понял всё, что было написано в предыдущем выпуске, и кого не интересуют сугубо технические подробности, могут их пропустить без особого ущерба.
Таблицы приводятся целиком, без разбивки на отдельные 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: