|
libdvbpsi
2.0.0-git
MPEG Transport Stream PSI table parser
|
Application interface for all DVB/PSI decoders. More...
Go to the source code of this file.
Data Structures | |
| struct | dvbpsi_s |
| DVBPSI handle structure. More... | |
| struct | dvbpsi_decoder_s |
| PSI decoder structure. More... | |
Macros | |
| #define | DVBPSI_VERSION 2.0.0 |
| #define | DVBPSI_VERSION_INT ((2<<16)+(0<<8)+0) |
| #define | DVBPSI_GCC_VERSION(maj, min) (0) |
| Helper macro for GCC version check. | |
| #define | DVBPSI_DECODER(x) ((dvbpsi_decoder_t *)(x)) |
| Helper macro for casting a private decoder into a dvbpsi_decoder_t. | |
| #define | DVBPSI_DECODER_COMMON |
| Common members for all dvbpsi table decoders. These should be the first members of a table decoder struct, such that they can be casted to a dvbpsi_decoder_t type. More... | |
Typedefs | |
| typedef struct dvbpsi_s | dvbpsi_t |
| DVBPSI handle structure abstration. More... | |
| typedef enum dvbpsi_msg_level | dvbpsi_msg_level_t |
| DVBPSI message level enumeration type definition. | |
| typedef void(* | dvbpsi_message_cb) (dvbpsi_t *handle, const dvbpsi_msg_level_t level, const char *msg) |
| Callback type definition. | |
| typedef struct dvbpsi_decoder_s | dvbpsi_decoder_t |
| dvbpsi_decoder_t type definition. | |
| typedef struct dvbpsi_psi_section_s | dvbpsi_psi_section_t |
| dvbpsi_psi_section_t type definition. | |
| typedef void(* | dvbpsi_callback_gather_t) (dvbpsi_t *p_dvbpsi, dvbpsi_psi_section_t *p_section) |
| Callback used for gathering psi sections on behalf of PSI decoders. More... | |
| typedef void(* | dvbpsi_callback_new_t) (dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension, void *p_data) |
| Callback used in case of a new PSI table is detected. More... | |
| typedef void(* | dvbpsi_callback_del_t) (dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension) |
| Callback used to delete PSI table. More... | |
Enumerations | |
| enum | dvbpsi_msg_level { DVBPSI_MSG_NONE = -1 , DVBPSI_MSG_ERROR = 0 , DVBPSI_MSG_WARN = 1 , DVBPSI_MSG_DEBUG = 2 } |
| DVBPSI message level enumeration type. More... | |
Functions | |
| dvbpsi_t * | dvbpsi_new (dvbpsi_message_cb callback, enum dvbpsi_msg_level level) |
| Create a new dvbpsi_t handle to be used by PSI decoders or encoders. More... | |
| void | dvbpsi_delete (dvbpsi_t *p_dvbpsi) |
| Deletes a dvbpsi_t handle created with dvbpsi_new. More... | |
| bool | dvbpsi_packet_push (dvbpsi_t *p_dvbpsi, const uint8_t *p_data) |
| void * | dvbpsi_decoder_new (dvbpsi_callback_gather_t pf_gather, const int i_section_max_size, const bool b_discontinuity, const size_t psi_size) |
| Create a new (private) dvbpsi decoder. More... | |
| void | dvbpsi_decoder_delete (dvbpsi_decoder_t *p_decoder) |
| Deletes decoder struct and frees any associated PSI section memory. Any memory attached to the dvbpsi_decoder_t::p_priv pointer member is the responsibility of the calling application. More... | |
| void | dvbpsi_decoder_reset (dvbpsi_decoder_t *p_decoder, const bool b_force) |
| Resets a decoder internal state. More... | |
| bool | dvbpsi_decoder_psi_sections_completed (dvbpsi_decoder_t *p_decoder) |
| Have all sections for this decoder been received? More... | |
| bool | dvbpsi_decoder_psi_section_add (dvbpsi_decoder_t *p_decoder, dvbpsi_psi_section_t *p_section) |
| Add a section to the dvbpsi_decoder_t::p_sections list. More... | |
| __attribute__ ((deprecated, unused)) bool dvbpsi_decoder_present(dvbpsi_t *p_dvbpsi) | |
| dvbpsi_atsc_DetachEIT is deprecated use More... | |
Application interface for all DVB/PSI decoders.
>
Application interface for all DVB/PSI decoders. The generic decoder structure is public so that external decoders are allowed.
| #define DVBPSI_DECODER_COMMON |
Common members for all dvbpsi table decoders. These should be the first members of a table decoder struct, such that they can be casted to a dvbpsi_decoder_t type.
Pointer to next decoder the list
| #define DVBPSI_VERSION 2.0.0 |
Human readible DVBPSI version
| #define DVBPSI_VERSION_INT ((2<<16)+(0<<8)+0) |
Machine readible DVBPSI version
| void(* dvbpsi_callback_del_t)(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension) |
Callback used to delete PSI table.
table extention to attach
| p_dvbpsi | pointer to dvbpsi handle |
| i_table_id | table id to attach |
| void(* dvbpsi_callback_gather_t)(dvbpsi_t< em >p_dvbpsi, dvbpsi_psi_section_t</em > p_section) |
Callback used for gathering psi sections on behalf of PSI decoders.
pointer to psi section
| p_dvbpsi | pointer to dvbpsi handle |
| void(* dvbpsi_callback_new_t)(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extension, void *p_data) |
Callback used in case of a new PSI table is detected.
pointer to callback data
| p_dvbpsi | pointer to dvbpsi handle |
| i_table_id | table id to attach |
| i_extension | table extention to attach |
| enum dvbpsi_msg_level |
| __attribute__ | ( | (deprecated, unused) | ) |
dvbpsi_atsc_DetachEIT is deprecated use
dvbpsi_atsc_DeleteVCT is deprecated use
dvbpsi_atsc_EmptyVCT is deprecated use
dvbpsi_atsc_NewVCT is deprecated use
dvbpsi_atsc_InitVCT is deprecated use
dvbpsi_atsc_DetachVCT is deprecated use
dvbpsi_atsc_DeleteSTT is deprecated use
dvbpsi_atsc_EmptySTT is deprecated use
dvbpsi_atsc_NewSTT is deprecated use
dvbpsi_atsc_InitSTT is deprecated use
dvbpsi_atsc_DetachSTT is deprecated use
dvbpsi_atsc_DeleteMGT is deprecated use
dvbpsi_atsc_EmptyMGT is deprecated use
dvbpsi_atsc_NewMGT is deprecated use
dvbpsi_atsc_InitMGT is deprecated use
dvbpsi_atsc_DetachMGT is deprecated use
dvbpsi_atsc_DeleteETT is deprecated use
dvbpsi_atsc_EmptyETT is deprecated use
dvbpsi_atsc_NewETT is deprecated use
dvbpsi_atsc_InitETT is deprecated use
dvbpsi_atsc_DetachETT is deprecated use
dvbpsi_atsc_DeleteEIT is deprecated use
dvbpsi_atsc_EmptyEIT is deprecated use
dvbpsi_atsc_NewEIT is deprecated use
dvbpsi_atsc_InitEIT is deprecated use
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached. |
| i_table_id | Table ID, 0xCB. |
| i_extension | Table ID extension, here TS ID. |
| p_eit | pointer to the EIT structure |
| i_table_id | Table ID, 0xCB. |
| i_extension | Table ID extension, here TS ID. |
| i_version | EIT version |
| i_protocol | PSIP Protocol version. |
| i_source_id | Source id. |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xCB. |
| i_extension | Table ID extension, here TS ID. |
| i_version | EIT version |
| i_protocol | PSIP Protocol version. |
| i_source_id | Source id. |
| b_current_next | current next indicator |
| p_eit | pointer to the EIT structure |
| p_eit | pointer to the EIT structure |
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table ID extension, normally 0x0000. |
| p_ett | pointer to the ETT structure |
| i_table_id | Table ID, 0xCC. |
| i_extension | Table ID extension, normally 0x0000. |
| i_version | version |
| i_protocol | PSIP Protocol version. |
| i_etm_id | ETM Identifier. |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xCC. |
| i_extension | Table ID extension, normally 0x0000. |
| i_version | version |
| i_protocol | PSIP Protocol version. |
| i_etm_id | ETM Identifier. |
| b_current_next | current next indicator |
| p_ett | pointer to the ETT structure |
| p_ett | pointer to the ETT structure |
Destroy a MGT decoder.
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached |
| i_table_id | Table ID, 0xC7. |
| i_extension | Table ID extension, here 0x0000. |
| p_mgt | pointer to the MGT structure |
| i_table_id | Table ID, 0xC7. |
| i_extension | Table ID extension, here 0x0000. |
| i_version | MGT version |
| i_protocol | PSIP Protocol version. |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xC7. |
| i_extension | Table ID extension, here 0x0000. |
| i_version | MGT version |
| i_protocol | PSIP Protocol version. |
| b_current_next | current next indicator |
| p_mgt | pointer to the MGT structure |
Clean and free a dvbpsi_mgt_t structure.
| p_mgt | pointer to the MGT structure |
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached. |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table extension, ignored as this should always be 0. (Required to match prototype for demux) |
| p_stt | pointer to the STT structure |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table extension, ignored as this should always be 0. |
| i_protocol | PSIP Protocol version. |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table extension, ignored as this should always be 0. |
| i_version | PSIP Protocol version. |
| b_current_next | current next indicator |
Clean a dvbpsi_atsc_stt_t structure.
| p_stt | pointer to the STT structure |
Clean a dvbpsi_atsc_stt_t structure.
| p_stt | pointer to the STT structure |
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached. |
| i_table_id | Table ID, 0xC8 or 0xC9. |
| i_extension | Table ID extension, here TS ID. |
| i_table_id | Table ID, 0xC8 or 0xC9. |
| i_extension | Table ID extension, here TS ID. |
| i_protocol | PSIP Protocol version. |
| b_cable_vct | Whether this is CVCT or a TVCT. |
| i_version | VCT version |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xC8 or 0xC9. |
| i_extension | Table ID extension, here TS ID. |
| i_protocol | PSIP Protocol version. |
| b_cable_vct | Whether this is CVCT or a TVCT. |
| i_version | VCT version |
| b_current_next | current next indicator |
Clean a dvbpsi_vct_t structure.
| p_vct | pointer to the VCT structure |
Clean a dvbpsi_vct_t structure.
| p_vct | pointer to the VCT structure |
dvbpsi_atsc_DeleteEIT is deprecated use
dvbpsi_atsc_EmptyEIT is deprecated use
dvbpsi_atsc_NewEIT is deprecated use
dvbpsi_atsc_InitEIT is deprecated use
dvbpsi_atsc_DetachEIT is deprecated use
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached |
| i_table_id | Table ID, 0xCB. |
| i_extension | Table ID extension, here TS ID. |
| pf_callback | function to call back on new EIT. |
| p_priv | private data given in argument to the callback. |
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached. |
| i_table_id | Table ID, 0xCB. |
| i_extension | Table ID extension, here TS ID. |
| p_eit | pointer to the EIT structure |
| i_table_id | Table ID, 0xCB. |
| i_extension | Table ID extension, here TS ID. |
| i_version | EIT version |
| i_protocol | PSIP Protocol version. |
| i_source_id | Source id. |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xCB. |
| i_extension | Table ID extension, here TS ID. |
| i_version | EIT version |
| i_protocol | PSIP Protocol version. |
| i_source_id | Source id. |
| b_current_next | current next indicator |
| p_eit | pointer to the EIT structure |
| p_eit | pointer to the EIT structure |
dvbpsi_atsc_DetachEIT is deprecated use
dvbpsi_atsc_DeleteETT is deprecated use
dvbpsi_atsc_EmptyETT is deprecated use
dvbpsi_atsc_NewETT is deprecated use
dvbpsi_atsc_InitETT is deprecated use
dvbpsi_atsc_DetachETT is deprecated use
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached |
| i_table_id | Table ID, 0xCC. |
| i_extension | Table ID extension, normally 0x0000. |
| pf_callback | function to call back on new ETT. |
| p_priv | private data given in argument to the callback. |
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table ID extension, normally 0x0000. |
| p_ett | pointer to the ETT structure |
| i_table_id | Table ID, 0xCC. |
| i_extension | Table ID extension, normally 0x0000. |
| i_version | version |
| i_protocol | PSIP Protocol version. |
| i_etm_id | ETM Identifier. |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xCC. |
| i_extension | Table ID extension, normally 0x0000. |
| i_version | version |
| i_protocol | PSIP Protocol version. |
| i_etm_id | ETM Identifier. |
| b_current_next | current next indicator |
| p_ett | pointer to the ETT structure |
| p_ett | pointer to the ETT structure |
dvbpsi_atsc_DetachEIT is deprecated use
dvbpsi_atsc_DeleteMGT is deprecated use
dvbpsi_atsc_EmptyMGT is deprecated use
dvbpsi_atsc_NewMGT is deprecated use
dvbpsi_atsc_InitMGT is deprecated use
dvbpsi_atsc_DetachMGT is deprecated use
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached |
| i_table_id | Table ID, 0xC7. |
| i_extension | Table ID extension, here 0x0000. |
| pf_callback | function to call back on new MGT. |
| p_priv | private data given in argument to the callback. |
Destroy a MGT decoder.
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached |
| i_table_id | Table ID, 0xC7. |
| i_extension | Table ID extension, here 0x0000. |
| p_mgt | pointer to the MGT structure |
| i_table_id | Table ID, 0xC7. |
| i_extension | Table ID extension, here 0x0000. |
| i_version | MGT version |
| i_protocol | PSIP Protocol version. |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xC7. |
| i_extension | Table ID extension, here 0x0000. |
| i_version | MGT version |
| i_protocol | PSIP Protocol version. |
| b_current_next | current next indicator |
| p_mgt | pointer to the MGT structure |
Clean and free a dvbpsi_mgt_t structure.
| p_mgt | pointer to the MGT structure |
dvbpsi_atsc_DetachEIT is deprecated use
dvbpsi_atsc_DeleteSTT is deprecated use
dvbpsi_atsc_EmptySTT is deprecated use
dvbpsi_atsc_NewSTT is deprecated use
dvbpsi_atsc_InitSTT is deprecated use
dvbpsi_atsc_DetachSTT is deprecated use
| p_eit | pointer to the EIT structure |
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table ID extension, here it should be 0. |
| pf_stt_callback | function to call back on new STT. |
| p_priv | private data given in argument to the callback. |
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached. |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table extension, ignored as this should always be 0. (Required to match prototype for demux) |
| p_stt | pointer to the STT structure |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table extension, ignored as this should always be 0. |
| i_protocol | PSIP Protocol version. |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xCD. |
| i_extension | Table extension, ignored as this should always be 0. |
| i_version | PSIP Protocol version. |
| b_current_next | current next indicator |
Clean a dvbpsi_atsc_stt_t structure.
| p_stt | pointer to the STT structure |
Clean a dvbpsi_atsc_stt_t structure.
| p_stt | pointer to the STT structure |
dvbpsi_atsc_DetachEIT is deprecated use
dvbpsi_atsc_DeleteVCT is deprecated use
dvbpsi_atsc_EmptyVCT is deprecated use
dvbpsi_atsc_NewVCT is deprecated use
dvbpsi_atsc_InitVCT is deprecated use
dvbpsi_atsc_DetachVCT is deprecated use
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached. |
| i_table_id | Table ID, 0xC8 or 0xC9. |
| i_extension | Table ID extension, here TS ID. |
| pf_vct_callback | function to call back on new VCT. |
| p_priv | private data given in argument to the callback. |
| p_dvbpsi | dvbpsi handle to Subtable demultiplexor to which the decoder is attached. |
| i_table_id | Table ID, 0xC8 or 0xC9. |
| i_extension | Table ID extension, here TS ID. |
| i_table_id | Table ID, 0xC8 or 0xC9. |
| i_extension | Table ID extension, here TS ID. |
| i_protocol | PSIP Protocol version. |
| b_cable_vct | Whether this is CVCT or a TVCT. |
| i_version | VCT version |
| b_current_next | current next indicator |
| i_table_id | Table ID, 0xC8 or 0xC9. |
| i_extension | Table ID extension, here TS ID. |
| i_protocol | PSIP Protocol version. |
| b_cable_vct | Whether this is CVCT or a TVCT. |
| i_version | VCT version |
| b_current_next | current next indicator |
Clean a dvbpsi_vct_t structure.
| p_vct | pointer to the VCT structure |
Clean a dvbpsi_vct_t structure.
| p_vct | pointer to the VCT structure |
References dvbpsi_atsc_eit_empty(), dvbpsi_atsc_ett_empty(), dvbpsi_atsc_mgt_empty(), dvbpsi_atsc_stt_empty(), and dvbpsi_atsc_vct_empty().
| void dvbpsi_decoder_delete | ( | dvbpsi_decoder_t * | p_decoder | ) |
Deletes decoder struct and frees any associated PSI section memory. Any memory attached to the dvbpsi_decoder_t::p_priv pointer member is the responsibility of the calling application.
| p_decoder | pointer to dvbpsi_decoder_t with decoder |
Delets a dvbpsi_t handle by calling free(handle). Make sure to detach any decoder or encoder before deleting the dvbpsi handle.
| void * dvbpsi_decoder_new | ( | dvbpsi_callback_gather_t | pf_gather, |
| const int | i_section_max_size, | ||
| const bool | b_discontinuity, | ||
| const size_t | psi_size | ||
| ) |
Create a new (private) dvbpsi decoder.
| pf_gather | pointer to gather function for PSI decoder. |
| i_section_max_size | Max size of a section for this decoder |
| b_discontinuity | Discontinuity flag |
| psi_size | size of new PSI struct, eg: sizeof(dvbpsi_pat_t) |
Creates a void pointer that points to a private dvbpsi decoder struct (eg: dvbpsi_pat_t). The first elements in this newly created decoder should contain DVBPSI_DECODER_COMMON, which corresponds to a dvbpsi_decoder_t. Upon return the pointer should be casted to the correct type. Delete the pointer with
| bool dvbpsi_decoder_psi_section_add | ( | dvbpsi_decoder_t * | p_decoder, |
| dvbpsi_psi_section_t * | p_section | ||
| ) |
Add a section to the dvbpsi_decoder_t::p_sections list.
| p_decoder | pointer to dvbpsi_decoder_t with decoder |
| p_section | PSI section to add to dvbpsi_decoder_t::p_sections list |
| bool dvbpsi_decoder_psi_sections_completed | ( | dvbpsi_decoder_t * | p_decoder | ) |
Have all sections for this decoder been received?
| p_decoder | pointer to dvbpsi_decoder_t with decoder |
| void dvbpsi_decoder_reset | ( | dvbpsi_decoder_t * | p_decoder, |
| const bool | b_force | ||
| ) |
Resets a decoder internal state.
| p_decoder | pointer to dvbpsi_decoder_t with decoder |
| b_force | If 'b_force' is true then dvbpsi_decoder_t::b_current_valid is set to false, invalidating the current section. |
| void dvbpsi_delete | ( | dvbpsi_t * | p_dvbpsi | ) |
Deletes a dvbpsi_t handle created with dvbpsi_new.
| p_dvbpsi | pointer to dvbpsi_t malloced data |
Delets a dvbpsi_t handle by calling free(handle). Make sure to detach any decoder of encoder before deleting the dvbpsi handle.
| dvbpsi_t * dvbpsi_new | ( | dvbpsi_message_cb | callback, |
| enum dvbpsi_msg_level | level | ||
| ) |
Create a new dvbpsi_t handle to be used by PSI decoders or encoders.
| callback | message callback handler, if NULL then no errors, warnings or debug messages will be sent to the caller application |
| level | enum dvbpsi_msg_level for filtering logging messages |
Creates a handle to use with PSI decoder and encoder API functions. The handle must be freed with dvbpsi_delete().