pmt.h File Reference

Application interface for the PMT decoder and the PMT generator. More...

Go to the source code of this file.

Data Structures

struct  dvbpsi_pmt_es_s
 PMT ES structure. More...
struct  dvbpsi_pmt_s
 PMT structure. More...

Defines

#define dvbpsi_NewPMT(p_pmt, i_program_number,i_version, b_current_next, i_pcr_pid)
 Allocate and initialize a new dvbpsi_pmt_t structure.
#define dvbpsi_DeletePMT(p_pmt)
 Clean and free a dvbpsi_pmt_t structure.

Typedefs

typedef struct dvbpsi_pmt_es_s dvbpsi_pmt_es_t
 dvbpsi_pmt_es_t type definition.
typedef struct dvbpsi_pmt_s dvbpsi_pmt_t
 dvbpsi_pmt_t type definition.
typedef void(* dvbpsi_pmt_callback )(void *p_cb_data, dvbpsi_pmt_t *p_new_pmt)
 Callback type definition.

Functions

dvbpsi_handle dvbpsi_AttachPMT (uint16_t i_program_number, dvbpsi_pmt_callback pf_callback, void *p_cb_data)
 Creation and initialization of a PMT decoder.
void dvbpsi_DetachPMT (dvbpsi_handle h_dvbpsi)
 Destroy a PMT decoder.
void dvbpsi_InitPMT (dvbpsi_pmt_t *p_pmt, uint16_t i_program_number, uint8_t i_version, int b_current_next, uint16_t i_pcr_pid)
 Initialize a user-allocated dvbpsi_pmt_t structure.
void dvbpsi_EmptyPMT (dvbpsi_pmt_t *p_pmt)
 Clean a dvbpsi_pmt_t structure.
dvbpsi_descriptor_tdvbpsi_PMTAddDescriptor (dvbpsi_pmt_t *p_pmt, uint8_t i_tag, uint8_t i_length, uint8_t *p_data)
 Add a descriptor in the PMT.
dvbpsi_pmt_es_tdvbpsi_PMTAddES (dvbpsi_pmt_t *p_pmt, uint8_t i_type, uint16_t i_pid)
 Add an ES in the PMT.
dvbpsi_descriptor_tdvbpsi_PMTESAddDescriptor (dvbpsi_pmt_es_t *p_es, uint8_t i_tag, uint8_t i_length, uint8_t *p_data)
 Add a descriptor in the PMT ES.
dvbpsi_psi_section_tdvbpsi_GenPMTSections (dvbpsi_pmt_t *p_pmt)
 PMT generator.

Detailed Description

Application interface for the PMT decoder and the PMT generator.

>

Author:
Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr> Application interface for the PMT decoder and the PMT generator. New decoded PMT tables are sent by callback to the application. If a table wasn't active (b_current_next == 0) and the next is the same but active (b_current_next == 1) then the two lists are empty and should be caught from the previous structure.

Define Documentation

#define dvbpsi_DeletePMT ( p_pmt   ) 
Value:
do {                                                                    \
  dvbpsi_EmptyPMT(p_pmt);                                               \
  free(p_pmt);                                                          \
} while(0);

Clean and free a dvbpsi_pmt_t structure.

Parameters:
p_pmt pointer to the PMT structure
Returns:
nothing.
#define dvbpsi_NewPMT ( p_pmt,
i_program_number,
i_version,
b_current_next,
i_pcr_pid   ) 
Value:
do {                                                                    \
  p_pmt = (dvbpsi_pmt_t*)malloc(sizeof(dvbpsi_pmt_t));                  \
  if(p_pmt != NULL)                                                     \
    dvbpsi_InitPMT(p_pmt, i_program_number, i_version, b_current_next,  \
                   i_pcr_pid);                                          \
} while(0);

Allocate and initialize a new dvbpsi_pmt_t structure.

Parameters:
p_pmt pointer to the PMT structure
i_program_number program number
i_version PMT version
b_current_next current next indicator
i_pcr_pid PCR_PID
Returns:
nothing.

Function Documentation

dvbpsi_handle dvbpsi_AttachPMT ( uint16_t  i_program_number,
dvbpsi_pmt_callback  pf_callback,
void *  p_cb_data 
)

Creation and initialization of a PMT decoder.

Parameters:
i_program_number program number
pf_callback function to call back on new PMT
p_cb_data private data given in argument to the callback
Returns:
a pointer to the decoder for future calls.
void dvbpsi_DetachPMT ( dvbpsi_handle  h_dvbpsi  ) 

Destroy a PMT decoder.

Parameters:
h_dvbpsi handle to the decoder
Returns:
nothing.

The handle isn't valid any more.

void dvbpsi_EmptyPMT ( dvbpsi_pmt_t p_pmt  ) 

Clean a dvbpsi_pmt_t structure.

Parameters:
p_pmt pointer to the PMT structure
Returns:
nothing.
dvbpsi_psi_section_t * dvbpsi_GenPMTSections ( dvbpsi_pmt_t p_pmt  ) 

PMT generator.

Parameters:
p_pmt PMT structure
Returns:
a pointer to the list of generated PSI sections.

Generate PMT sections based on the dvbpsi_pmt_t structure.

void dvbpsi_InitPMT ( dvbpsi_pmt_t p_pmt,
uint16_t  i_program_number,
uint8_t  i_version,
int  b_current_next,
uint16_t  i_pcr_pid 
)

Initialize a user-allocated dvbpsi_pmt_t structure.

Parameters:
p_pmt pointer to the PMT structure
i_program_number program number
i_version PMT version
b_current_next current next indicator
i_pcr_pid PCR_PID
Returns:
nothing.
dvbpsi_descriptor_t * dvbpsi_PMTAddDescriptor ( dvbpsi_pmt_t p_pmt,
uint8_t  i_tag,
uint8_t  i_length,
uint8_t *  p_data 
)

Add a descriptor in the PMT.

Parameters:
p_pmt pointer to the PMT structure
i_tag descriptor's tag
i_length descriptor's length
p_data descriptor's data
Returns:
a pointer to the added descriptor.
dvbpsi_pmt_es_t * dvbpsi_PMTAddES ( dvbpsi_pmt_t p_pmt,
uint8_t  i_type,
uint16_t  i_pid 
)

Add an ES in the PMT.

Parameters:
p_pmt pointer to the PMT structure
i_type type of ES
i_pid PID of the ES
Returns:
a pointer to the added ES.
dvbpsi_descriptor_t * dvbpsi_PMTESAddDescriptor ( dvbpsi_pmt_es_t p_es,
uint8_t  i_tag,
uint8_t  i_length,
uint8_t *  p_data 
)

Add a descriptor in the PMT ES.

Parameters:
p_es pointer to the ES structure
i_tag descriptor's tag
i_length descriptor's length
p_data descriptor's data
Returns:
a pointer to the added descriptor.

Generated on 16 Oct 2009 for libdvbpsi by  doxygen 1.6.1