Mailing List archive

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

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



On Sun, 5 Dec 2004, Josef Wolf wrote:
>
> On Sun, Dec 05, 2004 at 02:05:15AM +0100, w-thiel@gmx.net wrote:
>
> > I think you are missing something: a table_id is a table_id a table_id.
>
> So the table_id defines how the section looks like.  But it is not enough
> to identify the PMT for a specific program.  To get the PMT for 3sat on
> astra 11954MHz horizontal, I need sections with table_id==2 from PID==0xc8.
> Sections with table_id==2 from different PID's won't help to find the PID's
> that belong to 3sat, do they?

You should look for the table with the program number as specified in the
entry for that program in the PAT. The program number in a PMT is found in
a 2 byte field that appears between the section length and the version
number. I'm not sure what the generic term for this field is, but I've
ended up calling it 'table_id_extension' as that is the sense in which it
is used: in the PAT it is the transport stream id; in a PMT it is the
program number; in an EIT it is the service id; etc.

> > > Hmm, but table_id is not enough to identify a specific section.  Different
> > > PMT's (in different PID's) all have table_id==2, don't they?  So
> > No. Have a look at 30west to get an idea, how PMTs can be transmitted.
> > Or, even worse, have a look at 42east.
>
> Oh, I don't have a rotating dish.  Can you please describe in more detail
> what is wrong with 30w/42e?  Do they use different table_id's for the PMT's?
> How do receivers find the PMT's then?

I don't know anything about those satellites, but there are certainly
DVB-S streams visible from my area where all the PMTs are put into the one
pid, and you have to distinguish them by their program number field. This
caught me off-guard the first time I encountered it.

> > > - to identify the sections containing PAT, the PID _or_ table_id is
> > >   sufficient.
> > You have to scan the PIDs given in the PMT.
>
> Ough?  I can not assume that the PAT is in PID==0 and has the table_id==0?
> How do receivers find the PAT if they can't make this assumption?

You can assume that the PAT is always in PID 0. Even ATSC streams have it.

> > You cannot be sure what they will look like: you have to accept the
> > things written in EN 300468,
>
> In order to accept EN 300468, I need to _understand_ it.  This is why I am
> asking questions :)
>
> > and you have to accept the private things.
>
> You mean the NIT (which is placed in private sections) or do you mean that
> providers ignore the standards?

I think he means descriptors which you don't understand. And stream types
that you don't understand. Providers seem to love sprinkling in various
esoteric descriptors all over the place.

> > > Is it possible that PMT's for different programs are transported withhin a
> > > single PID?  If it's possible, can they be placed withhin the same section
> > Yes. See 30west.
>
> OK.

I don't think they can be placed within the same section.

> > > section following information is needed:
> > >
> > > - PID
> > > - table_id (evtl table_id_extension)
> > > - section_number
> > > - version_number
> > > - current_next_indicator
> > >
> > Hmh. IMHO, EN-300468 is quite clear.
>
> Hmm, it's not clear to me.  5.1.1 says
>
> - table_id
> - table_id_extension

OK, so it is called table_id_extension then, good :)

> - section_number
> - version_number
> - current_next_indicator
>
> is enough to uniquely identify a section.  OTOH, different sections
> with table_id==2 can be transported on different PID's.  Therefore,
> to uniquely identify a section, the PID is needed in addition to the
> attributes mentioned in 5.1.1.  I just can't see how this fits together.

No, the table_id_extension identifies it uniquely. The pid it is carried
in is incidental.

> > You cannot expect all transponders to provide all streams required
> > by the standards: the astras are quite ok, usually, 1west/5east
> > is ok (with exceptions), 30west usually is ok, 42east usually is a
> > big mess.
>
> But how do set-top-receivers find out which programs are available if
> required streams (like PAT/PMT's) are missing?

I think those ones are always there (but I'm not sure). There are others
like the NIT which are missing.

{P^/




Home | Main Index | Thread Index