Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Reconstruct PAT/PMT tables from TS?



Hello!

I'm trying to reconstruct PAT/PMT/NIT packets from the TS.  I have read
through ISO-13818, ETSI/EN-300468, ETSI/ETR-211, ETSI/ETR-162 and a lot
of material I found on google (including some threads on this list).
But I am still pretty much confused.  The informations seem to be
both, incomplete and contradictory.  Here is what I think I have found
out that far:

1. TS packets that belong to a specific PID can transport only one table.

2. A table can be constructed from multiple sections.

3. Sections can have varying size.

4. Sections are sent in no particular order.

5. Sections withhin a table can be replaced independently.

6. Section start is marked with payload_unit_start_indicator in the TS
   layer.

7. Once a section is started, TS packets with the same PID transport
   consecutive parts of the section as long as payload_unit_start_indicator
   is zero.

8. Only the last part of a section can contain an adoption field.

So reconstructing sections seem to be pretty straight-forward: Because
of (7.), just wait for payload_unit_start_indicator and concatenate
contents until sector_length bytes are collected, skipping any adoption
field contents.

But I seem to be missing some important piece of information how to
construct the table from multiple sections.  Because of (3.) and (4.),
there is no way to say just from the section_number which place in the
table is to be overwritten by the received content.  How do I know
which parts of the table are to be overwritten with the contents of the
recently received section?

Anybody can confirm/correct the above assumptions or help me out with the
missing information?

Thanks in advance.

-- 
Please visit and sign and http://www.ffii.org
-- Josef Wolf -- jw@raven.inka.de --




Home | Main Index | Thread Index