libdvbpsi  1.2.0
Data Structures | Typedefs | Functions | Variables
sis.h File Reference

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

Go to the source code of this file.

Data Structures

struct  dvbpsi_sis_s
 SIS structure. More...
struct  dvbpsi_sis_cmd_splice_null_s
 splice_null() splice command definition More...
struct  dvbpsi_sis_break_duration_s
 splice break duration More...
struct  dvbpsi_sis_component_utc_splice_time_s
 combined component tag and UTC splice time definition More...
struct  dvbpsi_sis_splice_event_s
 splice events structure, More...
struct  dvbpsi_sis_cmd_splice_schedule_s
 splice_schedule() splice command definition More...
struct  dvbpsi_sis_splice_time_s
 splice_time() splice definition More...
struct  dvbpsi_sis_component_splice_time_s
 component_tag, splice_time definition More...
struct  dvbpsi_sis_cmd_splice_insert_s
 splice_insert() splice command definition More...
struct  dvbpsi_sis_cmd_time_signal_s
 time_signal() splice command definition More...
struct  dvbpsi_sis_cmd_bandwidth_reservation_s
 bandwidth_reservation() splice command definition More...

Typedefs

typedef struct
dvbpsi_sis_cmd_splice_null_s 
dvbpsi_sis_cmd_splice_null_t
 The Splice Info Section (SIS) defines some Splice Commands, which are described below:
typedef struct
dvbpsi_sis_break_duration_s 
dvbpsi_sis_break_duration_t
 splice event definition
typedef struct
dvbpsi_sis_component_utc_splice_time_s 
dvbpsi_sis_component_utc_splice_time_t
 combined component tag and UTC splice time definition
typedef struct
dvbpsi_sis_splice_event_s 
dvbpsi_sis_splice_event_t
 splice event definition
typedef struct
dvbpsi_sis_cmd_splice_schedule_s 
dvbpsi_sis_cmd_splice_schedule_t
 splice_schedule() splice command definition
typedef struct
dvbpsi_sis_splice_time_s 
dvbpsi_sis_splice_time_t
 splice_time() splice definition
typedef struct
dvbpsi_sis_component_splice_time_s 
dvbpsi_sis_component_splice_time_t
 component_tag, splice_time definition
typedef struct
dvbpsi_sis_cmd_splice_insert_s 
dvbpsi_sis_cmd_splice_insert_t
 splice_insert() splice command definition
typedef struct
dvbpsi_sis_cmd_time_signal_s 
dvbpsi_sis_cmd_time_signal_t
 time_signal() splice command definition
typedef struct
dvbpsi_sis_cmd_bandwidth_reservation_s 
dvbpsi_sis_cmd_bandwidth_reservation_t
 bandwidth_reservation() splice command definition
typedef void(* dvbpsi_sis_callback )(void *p_cb_data, dvbpsi_sis_t *p_new_sis)
 Callback type definition.

Functions

struct dvbpsi_sis_s __attribute__ ((packed)) dvbpsi_sis_t
bool dvbpsi_sis_attach (dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension, dvbpsi_sis_callback pf_callback, void *p_cb_data)
 Creation and initialization of a SIS decoder. It is attached to p_dvbpsi.
void dvbpsi_sis_detach (dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension)
 Destroy a SIS decoder.
void dvbpsi_sis_init (dvbpsi_sis_t *p_sis, uint8_t i_table_id, uint16_t i_extension, uint8_t i_version, bool b_current_next, uint8_t i_protocol_version)
 Initialize a user-allocated dvbpsi_sis_t structure.
dvbpsi_sis_t * dvbpsi_sis_new (uint8_t i_table_id, uint16_t i_extension, uint8_t i_version, bool b_current_next, uint8_t i_protocol_version)
 Allocate and initialize a new dvbpsi_sis_t structure.
void dvbpsi_sis_empty (dvbpsi_sis_t *p_sis)
 Clean a dvbpsi_sis_t structure.
void dvbpsi_sis_delete (dvbpsi_sis_t *p_sis)
 Clean and free a dvbpsi_sis_t structure.
dvbpsi_descriptor_tdvbpsi_sis_descriptor_add (dvbpsi_sis_t *p_sis, uint8_t i_tag, uint8_t i_length, uint8_t *p_data)
 Add a descriptor in the SIS service.
dvbpsi_psi_section_tdvbpsi_sis_sections_generate (dvbpsi_t *p_dvbpsi, dvbpsi_sis_t *p_sis)
 SIS generator.

Variables

uint8_t i_table_id
uint16_t i_extension
uint16_t i_ts_id
uint8_t i_version
uint8_t i_protocol_version
bool b_current_next
bool b_encrypted_packet
uint8_t i_encryption_algorithm
uint64_t i_pts_adjustment
uint8_t cw_index
uint16_t i_splice_command_length
uint8_t i_splice_command_type
void * p_splice_command
uint16_t i_descriptors_length
dvbpsi_descriptor_tp_first_descriptor
uint32_t i_ecrc

Detailed Description

Application interface for the SIS decoder and the SIS generator.

>

Author
Jean-Paul Saman jpsam.nosp@m.an@v.nosp@m.ideol.nosp@m.an.o.nosp@m.rg Application interface for the SIS decoder and the SIS generator. New decoded SIS tables are sent by callback to the application.

Typedef Documentation

The Splice Info Section (SIS) defines some Splice Commands, which are described below:

splice_null() splice command definition

Function Documentation

bool dvbpsi_sis_attach ( dvbpsi_t p_dvbpsi,
uint8_t  i_table_id,
uint16_t  i_extension,
dvbpsi_sis_callback  pf_callback,
void *  p_cb_data 
)

Creation and initialization of a SIS decoder. It is attached to p_dvbpsi.

Parameters
p_dvbpsipointer to dvbpsi to hold decoder/demuxer structure
i_table_idTable ID, 0xFC.
i_extensionTable ID extension.
pf_callbackfunction to call back on new SIS.
p_cb_dataprivate data given in argument to the callback.
Returns
true on success, false on failure
void dvbpsi_sis_delete ( dvbpsi_sis_t *  p_sis)

Clean and free a dvbpsi_sis_t structure.

Parameters
p_sispointer to the SIS structure
Returns
nothing.
dvbpsi_descriptor_t * dvbpsi_sis_descriptor_add ( dvbpsi_sis_t *  p_sis,
uint8_t  i_tag,
uint8_t  i_length,
uint8_t *  p_data 
)

Add a descriptor in the SIS service.

Parameters
p_sispointer to the SIS structure
i_tagdescriptor's tag
i_lengthdescriptor's length
p_datadescriptor's data
Returns
a pointer to the added descriptor.
void dvbpsi_sis_detach ( dvbpsi_t p_dvbpsi,
uint8_t  i_table_id,
uint16_t  i_extension 
)

Destroy a SIS decoder.

Parameters
p_dvbpsipointer to dvbpsi to hold decoder/demuxer structure
i_table_idTable ID, 0xFC.
i_extensionTable ID extension, here TS ID.
Returns
nothing.
void dvbpsi_sis_empty ( dvbpsi_sis_t *  p_sis)

Clean a dvbpsi_sis_t structure.

Parameters
p_sispointer to the SIS structure
Returns
nothing.
void dvbpsi_sis_init ( dvbpsi_sis_t *  p_sis,
uint8_t  i_table_id,
uint16_t  i_extension,
uint8_t  i_version,
bool  b_current_next,
uint8_t  i_protocol_version 
)

Initialize a user-allocated dvbpsi_sis_t structure.

Parameters
p_sispointer to the SIS structure
i_table_idTable ID, 0xFC.
i_extensionTable ID extension.
i_versionSIS version
b_current_nextcurrent next indicator
i_protocol_versionSIS protocol version (currently 0)
Returns
nothing.
dvbpsi_sis_t * dvbpsi_sis_new ( uint8_t  i_table_id,
uint16_t  i_extension,
uint8_t  i_version,
bool  b_current_next,
uint8_t  i_protocol_version 
)

Allocate and initialize a new dvbpsi_sis_t structure.

Parameters
i_table_idTable ID, 0xFC.
i_extensionTable ID extension.
i_versionSIS version
b_current_nextcurrent next indicator
i_protocol_versionSIS protocol version (currently 0)
Returns
p_sis pointer to the SIS structure
dvbpsi_psi_section_t * dvbpsi_sis_sections_generate ( dvbpsi_t p_dvbpsi,
dvbpsi_sis_t *  p_sis 
)

SIS generator.

Parameters
p_dvbpsihandle to dvbpsi with attached decoder
p_sisSIS structure
Returns
a pointer to the list of generated PSI sections.

Generate SIS sections based on the dvbpsi_sis_t structure.

Variable Documentation

bool b_current_next

current_next_indicator

bool b_encrypted_packet

1 when packet is encrypted

uint8_t cw_index

CA control word

uint16_t i_descriptors_length

Descriptors loop length

uint32_t i_ecrc

CRC 32 of decrypted splice_info_section

uint8_t i_encryption_algorithm

Encryption algorithm used

uint16_t i_extension

subtable id

uint8_t i_protocol_version

Protocol version shall be 0

uint64_t i_pts_adjustment

PTS offset

uint16_t i_splice_command_length

Length of splice command

uint8_t i_splice_command_type

Splice command type

uint8_t i_table_id

table id

uint16_t i_ts_id

transport_stream_id

uint8_t i_version

version_number

dvbpsi_descriptor_t* p_first_descriptor

First of the following SIS descriptors

void* p_splice_command

Pointer to splice command structure