Bug in PAT generator
Arnaud de Bossoreille de Ribou
bozo at via.ecp.fr
Tue Sep 23 16:51:27 CEST 2003
Hi Johann
On Tue, Sep 23, 2003, Johann Hanne wrote:
> You're right. I was mislead by the comment "header + CRC_32", actually it's
> "rest of header + CRC_32", and i was using the i_length field for copying the
> PSI section into a TS packet. Is there a better indicator for where the
> actual PSI data is (i'm using p_data), and how long it is (i'm now using
> i_length+3)?
Here the "header" means the PAT header (without the PSI header).
You can use p_payload_start and p_payload_end to know the length og the
PSI section without the PSI header.
> Furthermore my assumption that creating the PAT and copying it into a TS
> packet is all I have to do seems to be completely wrong, as VLC doesn't seem to
> like it. Also, the PAT-TS-packets coming from the satellites seem be somewhat
> different from what ISO/IEC 31818-1 says?? The section_syntax_indicator is
> set to 0, the reserved bits are set to 0 (the libdvbpsi PAT creator sets them
> to 1), the section_length field is always set to 0xb0 (176) and the
> section_number seems to be a per-transponder constant (I got 0xe9, 0xc7 and 0xc1)...?!
> Is there a extra spec for DVB PATs?
You have to forge TS packets with the section's data. VLS does in
src/dvbpsi.cpp. Look at C_DvbPsiTable::TsWrite (and TsReset...)
ISO/IEC 31818-1 says explicitly that reserved bits should be set to 1.
As far as I remember it also says that section_syntax_indicator should
be set to 1 for the PAT and PMT because they have version, validity, crc
and extra information.
DVB PAT and ISO/IEC 31818-1 PAT are exactly the same. The DVB
specification about PSI is just an "add-on".
Cheers,
--
Arnaud
--
This is the libdvbpsi-devel mailing-list, see http://developers.videolan.org/
To unsubscribe, please read http://developers.videolan.org/lists.html
If you are in trouble, please contact <postmaster at videolan.org>
More information about the libdvbpsi-devel
mailing list