Entry tags:
DVB. Часть 13. Примеры таблиц. SDT
Остальные части
SDT (Service Description Table) содержит (сюрприз!) описания сервисов, они же программы. Точнее говоря, названия программ, названия провайдеров, которые их передают, и некоторые флаги.
Названия программ нужны для удобства их выбора пользователем. Названия провайдеров дают приёмнику ещё один признак для сортировки (обычно программы сортируются по алфавиту или просто в порядке обнаружения).
В стандарте EN 300 468 для SDT (а также для BAT - Bouquet Association Table) предусмотрен фиксированный PID 0x0011.
Service Description Table (SDT):
Table_ID=66 (0x42) - для SDT от текущего потока. Для аналогичной таблицы с описаниями программ от других потоков используется Table_ID 70 (0x46).
К какому именно мультиплексированному потоку относится таблица, можно определить по Transport_Stream_ID, в данном случае он равен 2001. См. идентификаторы мультиплексированных потоков в выпуске про NIT.
Далее следуют описания 14 программ, ранее встречавшихся в PAT и NIT (см. соответствующие выпуски).
Флаги EIT_schedule_flag и EIT_present_following_flag показывают, присутствуют ли в мультиплексированном потоке таблицы EIT (Event Information Table) с расписанием для данной программы. Первый флаг - для долговременного расписания (обычно на 1-2 дня вперёд), второй - для текущей и следующей передачи. Эти данные передаются в таблицах с разными идентификаторами, как будет показано в примерах таблиц EIT.
Running_status - 3-битовое поле, обозначающее текущее состояние программы.
1 - программа не передаётся в настоящий момент
2 - начнётся в ближайшее время (используется, чтобы приёмник мог подготовиться к записи передачи)
3 - остановлена (на паузе)
4 - передаётся в настоящий момент
Значение 0 запрещено, 5-7 зарезервированы для использования в будущем.
Флаг условного доступа (Free_CA_mode), равный нулю, означает, что программа не зашифрована. Равный единице - означает, что в одном или нескольких потоках, относящихся к программе, может использоваться шифрование. А может и не использоваться. А может использоваться иногда. В общем, он ничего не означает :) А используется он вот для чего: у некоторых ресиверов при автоматической настройке (сборе информации о доступных программах), можно включить режим FTA-only, тогда ресивер будет пропускать программы, для которых этот флаг установлен в единицу.
В данном примере флаг условного доступа для всех программ установлен в единицу, но, на самом деле, зашифрованы только телепрограммы, а радио идёт открыто.
Достоверно определить, используется ли [в некоторый момент времени] шифрование в конкретном аудио- или видеопотоке, можно, только посмотрев на сам поток: это указывается в нём специальным параметром.
Как мы помним из NIT, программы с идентификаторами 2101-2106 - телевизионные, 2221, 2225-2229, 2231-2233 - радио. Названия телепрограмм, соответственно:
Channel 6, cBBC - Test, cBeebies - Test, BBC 3 - Test, BBC 4 - Test и BBC News24 - Test
а радио:
Newstalk 106-108, Dublin's 98FM, SPIN 1038, East Coast FM, DAP Mocha, DAP All 80s, Phantom FM, FM104.
Провайдером у всех программ указан "BT Ireland". Если кто не понял, BT - это British Telecom :)
Названия программ и провайдеров могут быть написаны латиницей, а могут и буквами национальных алфавитов.
Ну и напоследок еще один небольшой пример - SDT от другого потока (4001), выловленная в текущем потоке (2001):
SDT (Service Description Table) содержит (сюрприз!) описания сервисов, они же программы. Точнее говоря, названия программ, названия провайдеров, которые их передают, и некоторые флаги.
Названия программ нужны для удобства их выбора пользователем. Названия провайдеров дают приёмнику ещё один признак для сортировки (обычно программы сортируются по алфавиту или просто в порядке обнаружения).
В стандарте EN 300 468 для SDT (а также для BAT - Bouquet Association Table) предусмотрен фиксированный PID 0x0011.
Service Description Table (SDT):
------------------------------------------------------------ SECT-Packet: 00000001 PID: 17 (0x0011), Length: 459 (0x01cb) ------------------------------------------------------------ PID: 17 (0x0011) [= assigned for: DVB Service Description Table (SDT), Bouquet Association Table (BAT)] Guess table from table id... SDT-decoding.... Table_ID: 66 (0x42) [= Service Description Table (SDT) - actual transport stream] section_syntax_indicator: 1 (0x01) Section_length: 456 (0x01c8) Transport_Stream_ID: 2001 (0x07d1) Version_number: 7 (0x07) current_next_indicator: 1 (0x01) [= valid now] Section_number: 0 (0x00) Last_Section_number: 0 (0x00) Original_network_ID: 8564 (0x2174) [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator] Service_id: 2101 (0x0835) [= --> refers to PMT program_number] EIT_schedule_flag: 1 (0x01) EIT_present_following_flag: 1 (0x01) Running_status: 4 (0x04) [= running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 24 (0x0018) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 22 (0x16) service_type: 1 (0x01) [= digital television service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 9 (0x09) Service_name: "Channel 6" -- Charset: Latin alphabet Service_id: 2102 (0x0836) [= --> refers to PMT program_number] EIT_schedule_flag: 1 (0x01) EIT_present_following_flag: 1 (0x01) Running_status: 4 (0x04) [= running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 26 (0x001a) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 24 (0x18) service_type: 1 (0x01) [= digital television service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 11 (0x0b) Service_name: "cBBC - Test" -- Charset: Latin alphabet Service_id: 2103 (0x0837) [= --> refers to PMT program_number] EIT_schedule_flag: 1 (0x01) EIT_present_following_flag: 1 (0x01) Running_status: 4 (0x04) [= running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 31 (0x001f) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 29 (0x1d) service_type: 1 (0x01) [= digital television service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 16 (0x10) Service_name: "cBeebies - Test" -- Charset: Latin alphabet Service_id: 2104 (0x0838) [= --> refers to PMT program_number] EIT_schedule_flag: 1 (0x01) EIT_present_following_flag: 1 (0x01) Running_status: 4 (0x04) [= running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 27 (0x001b) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 25 (0x19) service_type: 1 (0x01) [= digital television service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 12 (0x0c) Service_name: "BBC 3 - Test" -- Charset: Latin alphabet Service_id: 2105 (0x0839) [= --> refers to PMT program_number] EIT_schedule_flag: 1 (0x01) EIT_present_following_flag: 1 (0x01) Running_status: 4 (0x04) [= running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 27 (0x001b) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 25 (0x19) service_type: 1 (0x01) [= digital television service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 12 (0x0c) Service_name: "BBC 4 - Test" -- Charset: Latin alphabet Service_id: 2226 (0x08b2) [= --> refers to PMT program_number] EIT_schedule_flag: 0 (0x00) EIT_present_following_flag: 0 (0x00) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 31 (0x001f) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 29 (0x1d) service_type: 2 (0x02) [= digital radio sound service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 16 (0x10) Service_name: "Newstalk 106-108" -- Charset: Latin alphabet Service_id: 2227 (0x08b3) [= --> refers to PMT program_number] EIT_schedule_flag: 0 (0x00) EIT_present_following_flag: 0 (0x00) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 28 (0x001c) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 26 (0x1a) service_type: 2 (0x02) [= digital radio sound service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 13 (0x0d) Service_name: "Dublin's 98FM" -- Charset: Latin alphabet Service_id: 2228 (0x08b4) [= --> refers to PMT program_number] EIT_schedule_flag: 0 (0x00) EIT_present_following_flag: 0 (0x00) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 24 (0x0018) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 22 (0x16) service_type: 2 (0x02) [= digital radio sound service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 9 (0x09) Service_name: "SPIN 1038" -- Charset: Latin alphabet Service_id: 2229 (0x08b5) [= --> refers to PMT program_number] EIT_schedule_flag: 0 (0x00) EIT_present_following_flag: 0 (0x00) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 28 (0x001c) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 26 (0x1a) service_type: 2 (0x02) [= digital radio sound service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 13 (0x0d) Service_name: "East Coast FM" -- Charset: Latin alphabet Service_id: 2233 (0x08b9) [= --> refers to PMT program_number] EIT_schedule_flag: 0 (0x00) EIT_present_following_flag: 0 (0x00) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 24 (0x0018) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 22 (0x16) service_type: 2 (0x02) [= digital radio sound service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 9 (0x09) Service_name: "DAP Mocha" -- Charset: Latin alphabet Service_id: 2232 (0x08b8) [= --> refers to PMT program_number] EIT_schedule_flag: 0 (0x00) EIT_present_following_flag: 0 (0x00) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 27 (0x001b) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 25 (0x19) service_type: 2 (0x02) [= digital radio sound service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 12 (0x0c) Service_name: "DAP All 80s " -- Charset: Latin alphabet Service_id: 2106 (0x083a) [= --> refers to PMT program_number] EIT_schedule_flag: 1 (0x01) EIT_present_following_flag: 1 (0x01) Running_status: 4 (0x04) [= running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 32 (0x0020) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 30 (0x1e) service_type: 1 (0x01) [= digital television service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 17 (0x11) Service_name: "BBC News24 - Test" -- Charset: Latin alphabet Service_id: 2225 (0x08b1) [= --> refers to PMT program_number] EIT_schedule_flag: 0 (0x00) EIT_present_following_flag: 0 (0x00) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 25 (0x0019) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 23 (0x17) service_type: 2 (0x02) [= digital radio sound service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 10 (0x0a) Service_name: "Phantom FM" -- Charset: Latin alphabet Service_id: 2221 (0x08ad) [= --> refers to PMT program_number] EIT_schedule_flag: 0 (0x00) EIT_present_following_flag: 0 (0x00) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 20 (0x0014) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 18 (0x12) service_type: 2 (0x02) [= digital radio sound service] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 5 (0x05) Service_name: "FM104" -- Charset: Latin alphabet CRC: 3541560741 (0xd317eda5) ==========================================================
Table_ID=66 (0x42) - для SDT от текущего потока. Для аналогичной таблицы с описаниями программ от других потоков используется Table_ID 70 (0x46).
К какому именно мультиплексированному потоку относится таблица, можно определить по Transport_Stream_ID, в данном случае он равен 2001. См. идентификаторы мультиплексированных потоков в выпуске про NIT.
Далее следуют описания 14 программ, ранее встречавшихся в PAT и NIT (см. соответствующие выпуски).
Флаги EIT_schedule_flag и EIT_present_following_flag показывают, присутствуют ли в мультиплексированном потоке таблицы EIT (Event Information Table) с расписанием для данной программы. Первый флаг - для долговременного расписания (обычно на 1-2 дня вперёд), второй - для текущей и следующей передачи. Эти данные передаются в таблицах с разными идентификаторами, как будет показано в примерах таблиц EIT.
Running_status - 3-битовое поле, обозначающее текущее состояние программы.
1 - программа не передаётся в настоящий момент
2 - начнётся в ближайшее время (используется, чтобы приёмник мог подготовиться к записи передачи)
3 - остановлена (на паузе)
4 - передаётся в настоящий момент
Значение 0 запрещено, 5-7 зарезервированы для использования в будущем.
Флаг условного доступа (Free_CA_mode), равный нулю, означает, что программа не зашифрована. Равный единице - означает, что в одном или нескольких потоках, относящихся к программе, может использоваться шифрование. А может и не использоваться. А может использоваться иногда. В общем, он ничего не означает :) А используется он вот для чего: у некоторых ресиверов при автоматической настройке (сборе информации о доступных программах), можно включить режим FTA-only, тогда ресивер будет пропускать программы, для которых этот флаг установлен в единицу.
В данном примере флаг условного доступа для всех программ установлен в единицу, но, на самом деле, зашифрованы только телепрограммы, а радио идёт открыто.
Достоверно определить, используется ли [в некоторый момент времени] шифрование в конкретном аудио- или видеопотоке, можно, только посмотрев на сам поток: это указывается в нём специальным параметром.
Как мы помним из NIT, программы с идентификаторами 2101-2106 - телевизионные, 2221, 2225-2229, 2231-2233 - радио. Названия телепрограмм, соответственно:
Channel 6, cBBC - Test, cBeebies - Test, BBC 3 - Test, BBC 4 - Test и BBC News24 - Test
а радио:
Newstalk 106-108, Dublin's 98FM, SPIN 1038, East Coast FM, DAP Mocha, DAP All 80s, Phantom FM, FM104.
Провайдером у всех программ указан "BT Ireland". Если кто не понял, BT - это British Telecom :)
Названия программ и провайдеров могут быть написаны латиницей, а могут и буквами национальных алфавитов.
Ну и напоследок еще один небольшой пример - SDT от другого потока (4001), выловленная в текущем потоке (2001):
------------------------------------------------------------ SECT-Packet: 00000001 PID: 17 (0x0011), Length: 77 (0x004d) ------------------------------------------------------------ PID: 17 (0x0011) [= assigned for: DVB Service Description Table (SDT), Bouquet Association Table (BAT)] Guess table from table id... SDT-decoding.... Table_ID: 70 (0x46) [= Service Description Table (SDT) - other transport stream] section_syntax_indicator: 1 (0x01) Section_length: 74 (0x004a) Transport_Stream_ID: 4001 (0x0fa1) Version_number: 17 (0x11) current_next_indicator: 1 (0x01) [= valid now] Section_number: 0 (0x00) Last_Section_number: 0 (0x00) Original_network_ID: 8564 (0x2174) [= Irish Digital Terrestrial Television | Irish Telecommunications Regulator] Service_id: 4101 (0x1005) [= --> refers to PMT program_number] EIT_schedule_flag: 1 (0x01) EIT_present_following_flag: 1 (0x01) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 24 (0x0018) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 22 (0x16) service_type: 25 (0x19) [= reserved] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 9 (0x09) Service_name: "HD Test 1" -- Charset: Latin alphabet Service_id: 4102 (0x1006) [= --> refers to PMT program_number] EIT_schedule_flag: 1 (0x01) EIT_present_following_flag: 1 (0x01) Running_status: 1 (0x01) [= not running] Free_CA_mode: 1 (0x01) [= streams [partially] CA controlled] Descriptors_loop_length: 28 (0x001c) DVB-DescriptorTag: 72 (0x48) [= service_descriptor] Descriptor_length: 26 (0x1a) service_type: 22 (0x16) [= reserved] service_provider_name_length: 10 (0x0a) service_provider_name: "BT Ireland" -- Charset: Latin alphabet service_name_length: 13 (0x0d) Service_name: "Oireachtas TV" -- Charset: Latin alphabet CRC: 3927149511 (0xea138bc7) ==========================================================
DVB
Re: DVB