dil: (Default)
dil ([personal profile] dil) wrote2008-05-21 11:21 pm
Entry tags:

DVB. Часть 13. Примеры таблиц. SDT

Остальные части

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

[identity profile] siraleks.livejournal.com 2010-09-20 02:51 pm (UTC)(link)
Ответь чем ты инфу с PID ов снимал какой прогой

Re: DVB

[identity profile] dil.livejournal.com 2010-09-20 02:57 pm (UTC)(link)
dvbsnoop