libdvbpsi  2.0.0-git
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: More...
 
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. More...
 
void dvbpsi_sis_detach (dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension)
 Destroy a SIS decoder. More...
 
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. More...
 
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. More...
 
void dvbpsi_sis_empty (dvbpsi_sis_t *p_sis)
 Clean a dvbpsi_sis_t structure. More...
 
void dvbpsi_sis_delete (dvbpsi_sis_t *p_sis)
 Clean and free a dvbpsi_sis_t structure. More...
 
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. More...
 
dvbpsi_psi_section_tdvbpsi_sis_sections_generate (dvbpsi_t *p_dvbpsi, dvbpsi_sis_t *p_sis)
 SIS generator. More...
 

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

◆ dvbpsi_sis_cmd_splice_null_t

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

splice_null() splice command definition

Function Documentation

◆ dvbpsi_sis_attach()

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

◆ dvbpsi_sis_delete()

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_sis_descriptor_add()

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.

◆ dvbpsi_sis_detach()

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.

◆ dvbpsi_sis_empty()

void dvbpsi_sis_empty ( dvbpsi_sis_t *  p_sis)

Clean a dvbpsi_sis_t structure.

Parameters
p_sispointer to the SIS structure
Returns
nothing.

◆ dvbpsi_sis_init()

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_new()

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_sis_sections_generate()

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

◆ b_current_next

bool b_current_next

current_next_indicator

◆ b_encrypted_packet

bool b_encrypted_packet

1 when packet is encrypted

◆ cw_index

uint8_t cw_index

CA control word

◆ i_descriptors_length

uint16_t i_descriptors_length

Descriptors loop length

◆ i_ecrc

uint32_t i_ecrc

CRC 32 of decrypted splice_info_section

◆ i_encryption_algorithm

uint8_t i_encryption_algorithm

Encryption algorithm used

◆ i_extension

uint16_t i_extension

subtable id

◆ i_protocol_version

uint8_t i_protocol_version

Protocol version shall be 0

◆ i_pts_adjustment

uint64_t i_pts_adjustment

PTS offset

◆ i_splice_command_length

uint16_t i_splice_command_length

Length of splice command

◆ i_splice_command_type

uint8_t i_splice_command_type

Splice command type

◆ i_table_id

uint8_t i_table_id

table id

◆ i_ts_id

uint16_t i_ts_id

transport_stream_id

◆ i_version

uint8_t i_version

version_number

◆ p_first_descriptor

dvbpsi_descriptor_t* p_first_descriptor

First of the following SIS descriptors

◆ p_splice_command

void* p_splice_command

Pointer to splice command structure