Остальные части
В этом и нескольких следующих выпусках будут живые примеры служебных таблиц с комментариями. Те, кто понял всё, что было написано в предыдущем выпуске, и кого не интересуют сугубо технические подробности, могут их пропустить без особого ущерба.
Таблицы приводятся целиком, без разбивки на отдельные 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: