As we mentioned earlier, a broadcaster can transmit a longer description of a channel in a VCT, or of an event listed in an EIT or AEIT. These descriptions are broadcast as part of the Extended Text Table (ETT). This table contains a number of entries called Extended Text Messages, or ETMs. Each ETM consists of a pair of values: an ETM identifier and a multi-lingual text message.
An ETM identifier is a 32-bit value, which takes a slightly different format depending on what the ETM describes. The format of ETM IDs for channels and eventds is shown below.
|
||||||||
bit |
|
|
1 | 0 | ||||
channel ETM_id | source_id | 0…0 | 0 | 0 | ||||
event ETM_id | source_id | event_id | 1 | 0 |
Not every event may have a description, and searching the ETT for a given ETM identifier may not be very efficient. For this reason, each entry in the VCT and EIT includes a flag (the ETM location
field) to say whether an ETM for that event is available. This means that the receiver only has to look up extended descriptions for those events where it is actually available.
Syntax | No. of bits | Format |
---|---|---|
extended_text_table_section () { | ||
table_id | 8 | 0xCC |
section_syntax_indicator | 1 | ‘1’ |
private_indicator | 1 | ‘1’ |
reserved | 2 | ’11’ |
section_length | 12 | uimsbf |
ETT_table_id_extension | 16 | 0x0000 |
reserved | 2 | ’11’ |
version_number | 5 | uimsbf |
current_next_indicator | 1 | ‘1’ |
section_number | 8 | 0x00 |
last_section_number | 8 | 0x00 |
protocol_version | 8 | uimsbf |
ETM_id | 32 | uimsbf |
extended_text_message() | ||
CRC_32 | 32 | rpchof |
} |
Extended descriptions in a satellite network
As with the EIT and AEIT, in satellite systems a number of different sources will share a single table for their extended descriptions. This table is called the Aggregate Extended Text Table, or AETT, and it has the following structure:
Syntax | No. of bits | Format |
---|---|---|
aggregate_extended_text_table_section () { | ||
table_id | 8 | 0xD7 |
section_syntax_indicator | 1 | ‘1’ |
private_indicator | 1 | ‘1’ |
reserved | 2 | ’11’ |
section_length | 12 | uimsbf |
AETT_subtype | 8 | uimsbf |
MGT_tag | 8 | uimsbf |
reserved | 2 | ’11’ |
version_number | 5 | uimsbf |
current_next_indicator | 1 | ‘1’ |
section_ number | 8 | uimsbf |
last_section_number | 8 | uimsbf |
if (AETT_subtype == 0) { | ||
num_blocks_in_section | 8 | uimsbf |
for (i = 0; i < num_blocks_in_section; i++) { | ||
ETM_id | 32 | uimsbf |
reserved | 4 | ‘1111’ |
extended_text_length | 12 | uimsbf |
extended_text_message() | ||
} | ||
} | ||
else | ||
reserved | n*8 | |
CRC_32 | 32 | rpchof |
} |
One difference that you will notice is that each ETT section only carries a single extended text message.
Extended text messages
In both the ETT and AETT, the structure of the text messages that are contained in the table are the same. An extended text message is carried as a multiple string structure, as follows:
Syntax | No. of bits | Format |
---|---|---|
multiple_string_structure () { | ||
number_strings | 8 | uimsbf |
for (i = 0; i < number_strings; i++) { | ||
ISO_639_language_code | 24 | uimsbf |
number_segments | 8 | uimsbf |
for (j = 0; j < number_segments; j++) { | ||
compression_type | 8 | uimsbf |
mode | 8 | uimsbf |
number_bytes | 8 | uimsbf |
for (k = 0; k < number_bytes; k++) { | ||
compressed_string_byte[k] | 8 | bslbf |
} | ||
} | ||
} | ||
} |
This is a structure for carrying multilinugal strings, and so text descriptions can be carried in more than one language simultaneously. If a given text description is too long for a receiver to handle, that receiver may truncate the message that it displays – a receiver doesn’t have to display the entire description.