[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