[patch] EIT decoder problem
Christophe Massiot
massiot at via.ecp.fr
Sun Apr 8 19:45:59 CEST 2007
On Sat, Apr 07, 2007, Johann Hanne wrote:
> there seems to be a problem with the EIT decoder.
[...]
> I.e. if it has not received *every* section_number from 0 to
> last_section_number, it will discard everything. This seems to be the correct
> thing for every PSI table but the EIT. ETSI EN 300 468 V1.5.1 (2003-01) says
> the following for the section_number of an EIT:
> --
> section_number: This 8-bit field gives the number of the section. The
> section_number of the first section in the sub_table shall be "0x00". The
> section_number shall be incremented by 1 with each additional section with
> the same table_id, service_id, transport_stream_id, and original_network_id.
> In this case, the sub_table may be structured as a number of segments. Within
> each segment the section_number shall increment by 1 with each additional
> section, but a gap in numbering is permitted between the last section of a
> segment and the first section of the adjacent segment.
> --
> The point seems to be "a gap in numbering is permitted". To be honest, I don't
> understand the whole paragraph: As far as I understand, PSI tables are put
[...]
Your reasoning is quite correct - libdvbpsi's behaviour is indeed
non-compliant. But for a better understanding, you should have looked a
few paragraphs below :
segment_last_section_number: This 8-bit field specifies the number of
the last section of this segment of the sub_table. For sub_tables which
are not segmented, this field shall be set to the same value as the
last_section_number field.
So when a section with section_number == segment_last_section_number
arrives, there may be a gap after this section. But it can't be anywhere
in the sub_table, and it particular section_number must still start at
0. A gap is only allowed after a section with section_number ==
segment_last_section is received.
So please fix your patch consequently.
Thanks for the report,
--
Christophe Massiot.
--
This is the libdvbpsi-devel mailing-list, see http://developers.videolan.org/
To unsubscribe, go to: http://developers.videolan.org/lists.html
More information about the libdvbpsi-devel
mailing list