libdvbpsi  0.2.2
Data Structures | Macros | Typedefs | Functions
nit.h File Reference

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

Go to the source code of this file.

Data Structures

struct  dvbpsi_nit_ts_s
 NIT TS structure. More...
 
struct  dvbpsi_nit_s
 NIT structure. More...
 

Macros

#define dvbpsi_NewNIT(p_nit, i_network_id,i_version, b_current_next)
 Allocate and initialize a new dvbpsi_nit_t structure. More...
 
#define dvbpsi_DeleteNIT(p_nit)
 Clean and free a dvbpsi_nit_t structure. More...
 

Typedefs

typedef struct dvbpsi_nit_ts_s dvbpsi_nit_ts_t
 dvbpsi_nit_ts_t type definition.
 
typedef struct dvbpsi_nit_s dvbpsi_nit_t
 dvbpsi_nit_t type definition.
 
typedef void(* dvbpsi_nit_callback )(void *p_cb_data, dvbpsi_nit_t *p_new_nit)
 Callback type definition.
 

Functions

int dvbpsi_AttachNIT (dvbpsi_decoder_t *p_psi_decoder, uint8_t i_table_id, uint16_t i_extension, dvbpsi_nit_callback pf_callback, void *p_cb_data)
 
void dvbpsi_DetachNIT (dvbpsi_demux_t *p_demux, uint8_t i_table_id, uint16_t i_extension)
 Destroy a NIT decoder. More...
 
void dvbpsi_InitNIT (dvbpsi_nit_t *p_nit, uint16_t i_network_id, uint8_t i_version, int b_current_next)
 Initialize a user-allocated dvbpsi_nit_t structure. More...
 
void dvbpsi_EmptyNIT (dvbpsi_nit_t *p_nit)
 Clean a dvbpsi_nit_t structure. More...
 
dvbpsi_descriptor_tdvbpsi_NITAddDescriptor (dvbpsi_nit_t *p_nit, uint8_t i_tag, uint8_t i_length, uint8_t *p_data)
 Add a descriptor in the NIT. More...
 
dvbpsi_nit_ts_tdvbpsi_NITAddTS (dvbpsi_nit_t *p_nit, uint16_t i_ts_id, uint16_t i_orig_network_id)
 
dvbpsi_descriptor_tdvbpsi_NITTSAddDescriptor (dvbpsi_nit_ts_t *p_ts, uint8_t i_tag, uint8_t i_length, uint8_t *p_data)
 Add a descriptor in the NIT TS. More...
 
dvbpsi_psi_section_tdvbpsi_GenNITSections (dvbpsi_nit_t *p_nit, uint8_t i_table_id)
 NIT generator. More...
 

Detailed Description

Application interface for the NIT decoder and the NIT generator.

Author
Johann Hanne Application interface for the NIT decoder and the NIT generator. New decoded NIT tables are sent by callback to the application.

Macro Definition Documentation

#define dvbpsi_DeleteNIT (   p_nit)
Value:
do { \
free(p_nit); \
} while(0);
void dvbpsi_EmptyNIT(dvbpsi_nit_t *p_nit)
Clean a dvbpsi_nit_t structure.

Clean and free a dvbpsi_nit_t structure.

Parameters
p_nitpointer to the NIT structure
Returns
nothing.
#define dvbpsi_NewNIT (   p_nit,
  i_network_id,
  i_version,
  b_current_next 
)
Value:
do { \
p_nit = (dvbpsi_nit_t*)malloc(sizeof(dvbpsi_nit_t)); \
if(p_nit != NULL) \
dvbpsi_InitNIT(p_nit, i_network_id, i_version, b_current_next); \
} while(0);
NIT structure.
Definition: nit.h:84
void dvbpsi_InitNIT(dvbpsi_nit_t *p_nit, uint16_t i_network_id, uint8_t i_version, int b_current_next)
Initialize a user-allocated dvbpsi_nit_t structure.

Allocate and initialize a new dvbpsi_nit_t structure.

Parameters
p_nitpointer to the NIT structure
i_network_idnetwork id
i_versionNIT version
b_current_nextcurrent next indicator
i_pcr_pidPCR_PID
Returns
nothing.

Function Documentation

void dvbpsi_DetachNIT ( dvbpsi_demux_t p_demux,
uint8_t  i_table_id,
uint16_t  i_extension 
)

Destroy a NIT decoder.

Parameters
p_demuxSubtable demultiplexor to which the decoder is attached.
i_table_idTable ID, 0x4E, 0x4F, or 0x50-0x6F.
i_extensionTable ID extension, here service ID.
Returns
nothing.
void dvbpsi_EmptyNIT ( dvbpsi_nit_t p_nit)

Clean a dvbpsi_nit_t structure.

Parameters
p_nitpointer to the NIT structure
Returns
nothing.
dvbpsi_psi_section_t * dvbpsi_GenNITSections ( dvbpsi_nit_t p_nit,
uint8_t  i_table_id 
)

NIT generator.

Parameters
p_nitNIT structure
i_table_idtable id, 0x40 = actual network / 0x41 = other network
Returns
a pointer to the list of generated PSI sections.

Generate NIT sections based on the dvbpsi_nit_t structure.

void dvbpsi_InitNIT ( dvbpsi_nit_t p_nit,
uint16_t  i_network_id,
uint8_t  i_version,
int  b_current_next 
)

Initialize a user-allocated dvbpsi_nit_t structure.

Parameters
p_nitpointer to the NIT structure
i_network_idnetwork id
i_versionNIT version
b_current_nextcurrent next indicator
Returns
nothing.
dvbpsi_descriptor_t * dvbpsi_NITAddDescriptor ( dvbpsi_nit_t p_nit,
uint8_t  i_tag,
uint8_t  i_length,
uint8_t *  p_data 
)

Add a descriptor in the NIT.

Parameters
p_nitpointer to the NIT structure
i_tagdescriptor's tag
i_lengthdescriptor's length
p_datadescriptor's data
Returns
a pointer to the added descriptor.
dvbpsi_descriptor_t * dvbpsi_NITTSAddDescriptor ( dvbpsi_nit_ts_t p_ts,
uint8_t  i_tag,
uint8_t  i_length,
uint8_t *  p_data 
)

Add a descriptor in the NIT TS.

Parameters
p_tspointer to the TS structure
i_tagdescriptor's tag
i_lengthdescriptor's length
p_datadescriptor's data
Returns
a pointer to the added descriptor.