Time Offset Table содержит информацию о том, когда часы надо будет переводить на летнее и зимнее время, и каково при этом будет смещение (offset) относительно UTC. Эта таблица также не является обязательной.
Conditional Access Table содержит данные о системах условного доступа, используемых в потоке, и PID'ы, с которыми передаётся некоторая информация этих систем. В одном мультиплексированном потоке может использоваться одновременно несколько разных систем условного доступа. CAT не является обязательной даже при использовании условного доступа в программах потока.
Код: Выделить всё
Time Date Table (TDT):
------------------------------------------------------------
SECT-Packet: 00000001 PID: 20 (0x0014), Length: 8 (0x0008)
------------------------------------------------------------
PID: 20 (0x0014) [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]
Guess table from table id...
TDT-decoding....
Table_ID: 112 (0x70) [= Time Date Table (TDT)]
section_syntax_indicator: 0 (0x00)
Section_length: 5 (0x0005)
UTC_time: 0xd551062106 [= 2008-05-23 06:21:06 (UTC)]
==========================================================
Time Offset Table (TOT):
------------------------------------------------------------
SECT-Packet: 00000001 PID: 20 (0x0014), Length: 107 (0x006b)
------------------------------------------------------------
PID: 20 (0x0014) [= assigned for: DVB Time and Date Table (TDT), Time Offset Table (TOT)]
Guess table from table id...
TOT-decoding....
Table_ID: 115 (0x73) [= Time Offset Table (TOT)]
section_syntax_indicator: 0 (0x00)
Section_length: 104 (0x0068)
UTC_time: 0xd551061924 [= 2008-05-23 06:19:24 (UTC)]
Descriptors_loop_length: 93 (0x005d)
DVB-DescriptorTag: 88 (0x58) [= local_time_offset_descriptor]
Descriptor_length: 91 (0x5b)
Country_code: GBR
Country_region_ID: 0 (0x00)
local_time_offset_polarity: 0 (= plus to UTC)
Local_time_offset: 01:00
Time_of_change: 0xd5ed010000 [= 2008-10-26 01:00:00 (UTC)]
Next_time_offset: 00:00
Country_code: GBR
Country_region_ID: 0 (0x00)
local_time_offset_polarity: 0 (= plus to UTC)
Local_time_offset: 00:00
Time_of_change: 0xd687010000 [= 2009-03-29 01:00:00 (UTC)]
Next_time_offset: 01:00
Country_code: GBR
Country_region_ID: 0 (0x00)
local_time_offset_polarity: 0 (= plus to UTC)
Local_time_offset: 01:00
Time_of_change: 0xd759010000 [= 2009-10-25 01:00:00 (UTC)]
Next_time_offset: 00:00
Country_code: GBR
Country_region_ID: 0 (0x00)
local_time_offset_polarity: 0 (= plus to UTC)
Local_time_offset: 00:00
Time_of_change: 0xd7f3010000 [= 2010-03-28 01:00:00 (UTC)]
Next_time_offset: 01:00
Country_code: GBR
Country_region_ID: 0 (0x00)
local_time_offset_polarity: 0 (= plus to UTC)
Local_time_offset: 01:00
Time_of_change: 0xd8cc010000 [= 2010-10-31 01:00:00 (UTC)]
Next_time_offset: 00:00
Country_code: GBR
Country_region_ID: 0 (0x00)
local_time_offset_polarity: 0 (= plus to UTC)
Local_time_offset: 00:00
Time_of_change: 0xd95f010000 [= 2011-03-27 01:00:00 (UTC)]
Next_time_offset: 01:00
Country_code: GBR
Country_region_ID: 0 (0x00)
local_time_offset_polarity: 0 (= plus to UTC)
Local_time_offset: 01:00
Time_of_change: 0xda38010000 [= 2011-10-30 01:00:00 (UTC)]
Next_time_offset: 00:00
CRC: 4183159859 (0xf955f433)
==========================================================
Идентификаторы таблиц: 0x70 для TDT, 0x73 для TOT.
Установка времени в ресивере не является особо важной задачей, программы вполне можно показывать и так. Поэтому TDT и TOT обычно передаются сравнительно редко - примерно раз в минуту.
Для передачи TDT и TOT в EN 300 468 предусмотрен фиксированный PID 0x0014.
Conditional Access Table (CAT):
------------------------------------------------------------
SECT-Packet: 00000008 PID: 1 (0x0001), Length: 18 (0x0012)
------------------------------------------------------------
PID: 1 (0x0001) [= assigned for: ISO 13818-1 Conditional Access Table (CAT)]
Guess table from table id...
CAT-decoding....
Table_ID: 1 (0x01) [= Conditional Access Table (CAT)]
section_syntax_indicator: 1 (0x01)
Section_length: 15 (0x000f)
Version_number: 2 (0x02)
current_next_indicator: 1 (0x01) [= valid now]
Section_number: 0 (0x00)
Last_Section_number: 0 (0x00)
MPEG-DescriptorTag: 9 (0x09) [= CA_descriptor]
Descriptor_length: 4 (0x04)
CA_system_ID: 2816 (0x0b00) [= Norwegian Telekom (Conax)]
CA_PID: 192 (0x00c0)
CRC: 559554085 (0x215a1e25)
==========================================================
В данном случае в CAT описана одна система условного доступа с идентификатором 0x0b00, который выделен компании Norwegian Telekom и обозначает систему условного доступа Conax. Данные от этой системы условного доступа передаются с PID'ом 192.
Описатели условного доступа в CAT совершенно такие же по структуре, как и в PMT, но PIDы в них указаны разные: в PMT указывается PID потока ECM (Entitlement Control Messages), который обычно индивидуален для каждой программы, а в CAT - PID потока EMM (Entitlement Management Messages), единого на весь мультиплексированный поток.
В ISO 13818 для CAT установлен фиксированный PID 0x0001.