libdvbpsi 0.1.0
Data Structures | Defines | Typedefs | Functions

sdt.h File Reference

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

Go to the source code of this file.

Data Structures

struct  dvbpsi_sdt_service_s
 SDT service description structure. More...
struct  dvbpsi_sdt_s
 SDT structure. More...

Defines

#define dvbpsi_NewSDT(p_sdt, i_ts_id, i_version, b_current_next, i_network_id)
 Allocate and initialize a new dvbpsi_sdt_t structure.
#define dvbpsi_DeleteSDT(p_sdt)
 Clean and free a dvbpsi_sdt_t structure.

Typedefs

typedef struct dvbpsi_sdt_service_s dvbpsi_sdt_service_t
 dvbpsi_sdt_service_t type definition.
typedef struct dvbpsi_sdt_s dvbpsi_sdt_t
 dvbpsi_sdt_t type definition.
typedef void(* dvbpsi_sdt_callback )(void *p_cb_data, dvbpsi_sdt_t *p_new_sdt)
 Callback type definition.

Functions

int dvbpsi_AttachSDT (dvbpsi_decoder_t *p_psi_decoder, uint8_t i_table_id, uint16_t i_extension, dvbpsi_sdt_callback pf_callback, void *p_cb_data)
void dvbpsi_DetachSDT (dvbpsi_demux_t *p_demux, uint8_t i_table_id, uint16_t i_extension)
 Destroy a SDT decoder.
void dvbpsi_InitSDT (dvbpsi_sdt_t *p_sdt, uint16_t i_ts_id, uint8_t i_version, int b_current_next, uint16_t i_network_id)
 Initialize a user-allocated dvbpsi_sdt_t structure.
void dvbpsi_EmptySDT (dvbpsi_sdt_t *p_sdt)
 Clean a dvbpsi_sdt_t structure.
dvbpsi_sdt_service_tdvbpsi_SDTAddService (dvbpsi_sdt_t *p_sdt, uint16_t i_service_id, int b_eit_schedule, int b_eit_present, uint8_t i_running_status, int b_free_ca)
 Add a service description at the end of the SDT.
dvbpsi_descriptor_tdvbpsi_SDTServiceAddDescriptor (dvbpsi_sdt_service_t *p_service, uint8_t i_tag, uint8_t i_length, uint8_t *p_data)
 Add a descriptor in the SDT service.
dvbpsi_psi_section_tdvbpsi_GenSDTSections (dvbpsi_sdt_t *p_sdt)

Detailed Description

Application interface for the SDT decoder and the SDT generator.

>

Author:
Johan Bilien <jobi@via.ecp.fr> Application interface for the SDT decoder and the SDT generator. New decoded SDT tables are sent by callback to the application.

Define Documentation

#define dvbpsi_DeleteSDT (   p_sdt)
Value:
do {                                                                    \
  dvbpsi_EmptySDT(p_sdt);                                               \
  free(p_sdt);                                                          \
} while(0);

Clean and free a dvbpsi_sdt_t structure.

Parameters:
p_sdtpointer to the SDT structure
Returns:
nothing.
#define dvbpsi_NewSDT (   p_sdt,
  i_ts_id,
  i_version,
  b_current_next,
  i_network_id 
)
Value:
do {                                                                    \
  p_sdt = (dvbpsi_sdt_t*)malloc(sizeof(dvbpsi_sdt_t));                  \
  if(p_sdt != NULL)                                                     \
    dvbpsi_InitSDT(p_sdt, i_ts_id, i_version, b_current_next, i_network_id); \
} while(0);

Allocate and initialize a new dvbpsi_sdt_t structure.

Parameters:
p_sdtpointer to the SDT structure
i_ts_idtransport stream ID
i_versionSDT version
b_current_nextcurrent next indicator
i_network_idoriginal network id
Returns:
nothing.

Function Documentation

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

Destroy a SDT decoder.

Parameters:
p_demuxSubtable demultiplexor to which the decoder is attached.
i_table_idTable ID, 0x42 or 0x46.
i_extensionTable ID extension, here TS ID.
Returns:
nothing.
void dvbpsi_EmptySDT ( dvbpsi_sdt_t p_sdt)

Clean a dvbpsi_sdt_t structure.

Parameters:
p_sdtpointer to the SDT structure
Returns:
nothing.
void dvbpsi_InitSDT ( dvbpsi_sdt_t p_sdt,
uint16_t  i_ts_id,
uint8_t  i_version,
int  b_current_next,
uint16_t  i_network_id 
)

Initialize a user-allocated dvbpsi_sdt_t structure.

Parameters:
p_sdtpointer to the SDT structure
i_ts_idtransport stream ID
i_versionSDT version
b_current_nextcurrent next indicator
i_network_idoriginal network id
Returns:
nothing.
dvbpsi_sdt_service_t * dvbpsi_SDTAddService ( dvbpsi_sdt_t p_sdt,
uint16_t  i_service_id,
int  b_eit_schedule,
int  b_eit_present,
uint8_t  i_running_status,
int  b_free_ca 
)

Add a service description at the end of the SDT.

Parameters:
p_sdtpointer to the SDT structure
i_service_idService ID
b_eit_scheduleEIT Schedule flag
b_eit_presentEIT Present/Following flag
i_running_statusRunning status
b_free_caFree CA flag
Returns:
a pointer to the added service description.
dvbpsi_descriptor_t * dvbpsi_SDTServiceAddDescriptor ( dvbpsi_sdt_service_t p_service,
uint8_t  i_tag,
uint8_t  i_length,
uint8_t *  p_data 
)

Add a descriptor in the SDT service.

Parameters:
p_servicepointer to the service structure
i_tagdescriptor's tag
i_lengthdescriptor's length
p_datadescriptor's data
Returns:
a pointer to the added descriptor.