libdvbpsi
2.0.0-git
MPEG Transport Stream PSI table parser
|
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_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_s | dvbpsi_sis_component_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_priv, 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_priv) |
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_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. More... | |
dvbpsi_psi_section_t * | dvbpsi_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_tier |
uint16_t | i_splice_command_length |
uint8_t | i_splice_command_type |
void * | p_splice_command |
uint16_t | i_descriptors_length |
dvbpsi_descriptor_t * | p_first_descriptor |
uint32_t | i_ecrc |
Application interface for the SIS decoder and the SIS generator.
>
Application interface for the SIS decoder and the SIS generator. New decoded SIS tables are sent by callback to the application.
The Splice Info Section (SIS) defines some Splice Commands, which are described below:
splice_null() splice command definition
void dvbpsi_sis_delete | ( | dvbpsi_sis_t * | p_sis | ) |
Clean and free a dvbpsi_sis_t structure.
p_sis | pointer to the SIS structure |
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.
p_sis | pointer to the SIS structure |
i_tag | descriptor's tag |
i_length | descriptor's length |
p_data | descriptor's data |
void dvbpsi_sis_detach | ( | dvbpsi_t * | p_dvbpsi, |
uint8_t | i_table_id, | ||
uint16_t | i_extension | ||
) |
Destroy a SIS decoder.
p_dvbpsi | pointer to dvbpsi to hold decoder/demuxer structure |
i_table_id | Table ID, 0xFC. |
i_extension | Table ID extension, here TS ID. |
void dvbpsi_sis_empty | ( | dvbpsi_sis_t * | p_sis | ) |
Clean a dvbpsi_sis_t structure.
p_sis | pointer to the SIS structure |
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.
p_sis | pointer to the SIS structure |
i_table_id | Table ID, 0xFC. |
i_extension | Table ID extension. |
i_version | SIS version |
b_current_next | current next indicator |
i_protocol_version | SIS protocol version (currently 0) |
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.
i_table_id | Table ID, 0xFC. |
i_extension | Table ID extension. |
i_version | SIS version |
b_current_next | current next indicator |
i_protocol_version | SIS protocol version (currently 0) |
dvbpsi_psi_section_t * dvbpsi_sis_sections_generate | ( | dvbpsi_t * | p_dvbpsi, |
dvbpsi_sis_t * | p_sis | ||
) |
SIS generator.
p_dvbpsi | handle to dvbpsi with attached decoder |
p_sis | SIS structure |
Generate SIS sections based on the dvbpsi_sis_t structure.
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_tier |
authorization tiers
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