Application interface for all DVB/PSI decoders.
More...
Go to the source code of this file.
Application interface for all DVB/PSI decoders.
>
- Author
- Arnaud de Bossoreille de Ribou bozo@.nosp@m.via..nosp@m.ecp.f.nosp@m.r Jean-Paul Saman jpsam.nosp@m.an@v.nosp@m.ideol.nosp@m.an.o.nosp@m.rg
Application interface for all DVB/PSI decoders. The generic decoder structure is public so that external decoders are allowed.
◆ DVBPSI_DECODER
#define DVBPSI_DECODER |
( |
| x | ) |
|
Value:
struct dvbpsi_decoder_s dvbpsi_decoder_t
dvbpsi_decoder_t type definition.
Definition dvbpsi.h:105
Helper macro for casting a private decoder into a dvbpsi_decoder_t.
◆ DVBPSI_DECODER_COMMON
#define DVBPSI_DECODER_COMMON |
Value: \ \
uint8_t i_magic[3]; \
bool b_complete_header; \
bool b_discontinuity; \
bool b_current_valid; \
uint8_t i_continuity_counter; \
uint8_t i_last_section_number; \
int i_section_max_size; \
int i_need; \
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.
Definition dvbpsi.h:219
struct dvbpsi_psi_section_s dvbpsi_psi_section_t
dvbpsi_psi_section_t type definition.
Definition dvbpsi.h:209
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.
◆ DVBPSI_GCC_VERSION
#define DVBPSI_GCC_VERSION |
( |
| maj, |
|
|
| min ) |
Value:
Helper macro for GCC version check.
◆ DVBPSI_VERSION
#define DVBPSI_VERSION 1.3.0 |
Human readible DVBPSI version
◆ DVBPSI_VERSION_INT
#define DVBPSI_VERSION_INT ((1<<16)+(3<<8)+0) |
Machine readible DVBPSI version
◆ dvbpsi_callback_gather_t
Callback used for gathering psi sections on behalf of PSI decoders.
pointer to psi section
- Parameters
-
p_dvbpsi | pointer to dvbpsi handle |
◆ dvbpsi_t
DVBPSI handle structure abstration.
dvbpsi_t type definition.
◆ dvbpsi_msg_level
DVBPSI message level enumeration type.
Enumerator |
---|
DVBPSI_MSG_NONE | No messages
|
DVBPSI_MSG_ERROR | Error messages only
|
DVBPSI_MSG_WARN | Error and Warning messages
|
DVBPSI_MSG_DEBUG | Error, warning and debug messages
|
◆ dvbpsi_decoder_delete()
Deletes decoder struct and frees its memory.
- Parameters
-
- Returns
- nothing
Delets a dvbpsi_t handle by calling free(handle). Make sure to detach any decoder of encoder before deleting the dvbpsi handle.
◆ dvbpsi_decoder_new()
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.
- Parameters
-
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) |
- Returns
- pointer to memory of size 'psi_size' that can be casted into a dvbpsi_decoder_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
- See also
- dvbpsi_decoder_delete() function.
◆ dvbpsi_decoder_present()
bool dvbpsi_decoder_present |
( |
dvbpsi_t * | p_dvbpsi | ) |
|
Determines if a decoder has been attached to dvbpsi_t handle.
- Parameters
-
p_dvbpsi | handle to dvbpsi with attached decoder |
- Returns
- true when decoder is attached, else it will return false.
Determines if a decoder is attached to this dvbpsi_t handle. When the dvbpsi handle is invalid the fuction will return false.
◆ dvbpsi_decoder_psi_section_add()
Add a section to the dvbpsi_decoder_t::p_sections list.
- Parameters
-
p_decoder | pointer to dvbpsi_decoder_t with decoder |
p_section | PSI section to add to dvbpsi_decoder_t::p_sections list |
- Returns
- true if it overwrites a earlier section, false otherwise
◆ dvbpsi_decoder_psi_sections_completed()
Have all sections for this decoder been received?
- Parameters
-
- Returns
- true when all PSI sections have been received, false otherwise
◆ dvbpsi_decoder_reset()
Resets a decoder internal state.
- Parameters
-
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. |
- Returns
- nothing
◆ dvbpsi_delete()
void dvbpsi_delete |
( |
dvbpsi_t * | p_dvbpsi | ) |
|
Deletes a dvbpsi_t handle created with dvbpsi_new.
- Parameters
-
p_dvbpsi | pointer to dvbpsi_t malloced data |
- Returns
- nothing
Delets a dvbpsi_t handle by calling free(handle). Make sure to detach any decoder of encoder before deleting the dvbpsi handle.
◆ dvbpsi_new()
Create a new dvbpsi_t handle to be used by PSI decoders or encoders.
- Parameters
-
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 |
- Returns
- pointer to dvbpsi_t malloced data
Creates a handle to use with PSI decoder and encoder API functions. The handle must be freed with dvbpsi_delete().
◆ dvbpsi_packet_push()
bool dvbpsi_packet_push |
( |
dvbpsi_t * | p_dvbpsi, |
|
|
uint8_t * | p_data ) |
Injection of a TS packet into a PSI decoder.
- Parameters
-
p_dvbpsi | handle to dvbpsi with attached decoder |
p_data | pointer to a 188 bytes playload of a TS packet |
- Returns
- true when packet has been handled, false on error.
Injection of a TS packet into a PSI decoder.