generating ts_packets with libdvbpsi
Thomas Lagemann
lagemats at idmt.fraunhofer.de
Tue Feb 27 13:48:51 CET 2007
Gonzalo Berdeal wrote:
> Hello,
> I need your help.
> Could anybody explain me how to make the transport stream packets once I have the PSI info in dvbpsi_psi_section_s * structure (after calling the dvbpsi_GenPATSections function) ?
> There is a field called *p_data. Is this the pointer where the data is? Is the length always 188 bytes? Should I copy all the sections until *p_next == NULL?
> Gonzalo Berdeal.
> Thank you very much.
>
p_data is is the pointer to the section data that can take up to 1024
bytes for a PSI section and up to 4096 bytes for a private Section. You
need to wrap this data in the payload of the TS-packets, each 188 bytes
long. The payload of the TS-packet is 188 minus the four bytes of the
header and (if present) the length of the adaptation field.
Take a look at the function writePSI in the example in gen_pmt.c .
This takes a section, wraps it in a TS and writes it to stdout
Make sure to fill out the first four bytes of the packet you pass to the
function with the following values according to ISO/IEC 13818-1 Table 2-3
sync_byte
transport_error_indicator
payload_unit_start_indicator
transport_priority
PID
transport_scrambling_control
adaptation_field_control
continuity_counter
regards
Thomas Lagemann
--
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