ETSI
ETSI EN 300 468 V1.11.1 (2010
These SI syntactic structures conform to the private section syntax defined in ISO/IEC 13818-1 [18].
5.1.1 Explanation
Sections may be variable in length. The sections within each table are limited to 1 024 bytes in length, except for
sections within the EIT which are limited to 4 096 bytes. Each section is uniquely identified by the combination of the
following elements:
a) table_id:
- The table_id identifies to which table the section belongs.
- Some table_ids have been defined by ISO and others by ETSI. Other values of the table_id can be
allocated by the user for private purposes. The list of values of table_id is contained in table 2.
b) table_id_extension:
- The table_id_extension is used for identification of a sub_table.
- The interpretation of each sub_table is given in clause 5.2.
c) section_number:
- The section_number field allows the sections of a particular sub_table to be reassembled in their original
order by the decoder. It is recommended, that sections are transmitted in numerical order, unless it is
desired to transmit some sections of the sub_table more frequently than others, e.g. due to random access
considerations.
- For the SI tables as specified in the present document, section numbering applies to sub_tables.
d) version_number:
- When the characteristics of the TS described in the SI given in the present document change (e.g. new
events start, different composition of elementary streams for a given service), then new SI data shall be
sent containing the updated information. A new version of the SI data is signalled by sending a sub_table
with the same identifiers as the previous sub_table containing the relevant data, but with the next value
of version_number.
- For the SI tables specified in the present document, the version_number applies to all sections of a
sub_table.
e) Current_next_indicator:
- Each section shall be numbered as valid "now" (current), or as valid in the immediate future (next).
This allows the transmission of a future version of the SI in advance of the change, giving the decoder
the opportunity to prepare for the change. There is however, no requirement to transmit the next version
of a section in advance, but if it is transmitted, then it shall be the next correct version of that section.
5.1.2 Mapping of sections into Transport Stream (TS) packets
Sections shall be mapped directly into TS packets. Sections may start at the beginning of the payload of a TS packet,
but this is not a requirement, because the start of the first section in the payload of a TS packet is pointed to by the
pointer_field. There is never more than one pointer_field in a TS packet, as the start of any other section can be
identified by counting the length of the first and any subsequent sections, since no gaps between sections within a TS
packet are allowed by the syntax.
Within TS packets of any single PID value, one section is finished before the next one is allowed to be started, or else it
is not possible to identify to which section header the data belongs. If a section finishes before the end of a TS packet,
but it is not convenient to open another section, a stuffing mechanism may be used to fill up the space.
Stuffing may be performed by filling each remaining byte of the TS packet with the value "0xFF". Consequently the
value "0xFF" shall not be used for the table_id. If the byte immediately following the last byte of a section takes the
value of "0xFF", then the rest of the TS packet shall be stuffed with "0xFF" bytes. These bytes may be discarded by a
decoder. Stuffing may also be performed using the adaptation_field mechanism.