Typedefs | |
typedef _vbi_dvb_demux | vbi_dvb_demux |
DVB VBI demultiplexer. | |
typedef vbi_bool | vbi_dvb_demux_cb (vbi_dvb_demux *dx, void *user_data, const vbi_sliced *sliced, unsigned int sliced_lines, int64_t pts) |
Functions | |
void | vbi_dvb_demux_reset (vbi_dvb_demux *dx) |
Resets DVB VBI demux. | |
unsigned int | vbi_dvb_demux_cor (vbi_dvb_demux *dx, vbi_sliced *sliced, unsigned int sliced_lines, int64_t *pts, const uint8_t **buffer, unsigned int *buffer_left) |
DVB VBI demux coroutine. | |
vbi_bool | vbi_dvb_demux_feed (vbi_dvb_demux *dx, const uint8_t *buffer, unsigned int buffer_size) |
Feeds DVB VBI demux with data. | |
void | vbi_dvb_demux_set_log_fn (vbi_dvb_demux *dx, vbi_log_mask mask, vbi_log_fn *log_fn, void *user_data) |
void | vbi_dvb_demux_delete (vbi_dvb_demux *dx) |
Deletes DVB VBI demux. | |
vbi_dvb_demux * | vbi_dvb_pes_demux_new (vbi_dvb_demux_cb *callback, void *user_data) |
Allocates DVB VBI demux. |
typedef struct _vbi_dvb_demux vbi_dvb_demux |
DVB VBI demultiplexer.
The contents of this structure are private. Call vbi_dvb_pes_demux_new() to allocate a DVB demultiplexer.
typedef vbi_bool vbi_dvb_demux_cb(vbi_dvb_demux *dx, void *user_data, const vbi_sliced *sliced, unsigned int sliced_lines, int64_t pts) |
dx | DVB demultiplexer context allocated with vbi_dvb_pes_demux_new(). | |
user_data | User data pointer given to vbi_dvb_pes_demux_new(). | |
sliced | Pointer to demultiplexed sliced data. | |
sliced_lines | Number of lines in the sliced array. | |
pts | Presentation Time Stamp associated with the first sliced line. |
void vbi_dvb_demux_reset | ( | vbi_dvb_demux * | dx | ) |
Resets DVB VBI demux.
dx | DVB demultiplexer context allocated with vbi_dvb_pes_demux_new(). |
unsigned int vbi_dvb_demux_cor | ( | vbi_dvb_demux * | dx, | |
vbi_sliced * | sliced, | |||
unsigned int | sliced_lines, | |||
int64_t * | pts, | |||
const uint8_t ** | buffer, | |||
unsigned int * | buffer_left | |||
) |
DVB VBI demux coroutine.
dx | DVB demultiplexer context allocated with vbi_dvb_pes_demux_new(). | |
sliced | Demultiplexed sliced data will be stored here. You must not change sliced and sliced_lines in successive calls until a frame is complete (i.e. the function returns a value > 0). | |
sliced_lines | At most this number of sliced lines will be stored at sliced. | |
pts | If not NULL the Presentation Time Stamp associated with the first line of the demultiplexed frame will be stored here. | |
buffer | *buffer points to DVB PES data, will be incremented by the number of bytes read from the buffer. This pointer need not align with packet boundaries. | |
buffer_left | *buffer_left is the number of bytes left in buffer, will be decremented by the number of bytes read. *buffer_left need not align with packet size. The packet filter works faster with larger buffers. When you read from an MPEG file, mapping the file into memory and passing pointers to the mapped data will be fastest. |
0
if more data is needed (*buffer_left is 0
) or the data contained errors.vbi_bool vbi_dvb_demux_feed | ( | vbi_dvb_demux * | dx, | |
const uint8_t * | buffer, | |||
unsigned int | buffer_size | |||
) |
Feeds DVB VBI demux with data.
dx | DVB demultiplexer context allocated with vbi_dvb_pes_demux_new(). | |
buffer | DVB PES data, need not align with packet boundaries. | |
buffer_size | Number of bytes in buffer, need not align with packet size. The packet filter works faster with larger buffers. |
FALSE
if the data contained errors.void vbi_dvb_demux_set_log_fn | ( | vbi_dvb_demux * | dx, | |
vbi_log_mask | mask, | |||
vbi_log_fn * | log_fn, | |||
void * | user_data | |||
) |
dx | DVB demultiplexer context allocated with vbi_dvb_pes_demux_new(). | |
mask | Which kind of information to log. Can be 0 . | |
log_fn | This function is called with log messages. Consider vbi_log_on_stderr(). Can be NULL to disable logging. | |
user_data | User pointer passed through to the log_fn function. |
With this function you can redirect log messages generated by this module from the global log function ( see vbi_set_log_fn() ) to a different function, or enable logging only in the DVB demultiplexer dx.
void vbi_dvb_demux_delete | ( | vbi_dvb_demux * | dx | ) |
Deletes DVB VBI demux.
dx | DVB demultiplexer context allocated with vbi_dvb_pes_demux_new(), can be NULL . |
vbi_dvb_demux* vbi_dvb_pes_demux_new | ( | vbi_dvb_demux_cb * | callback, | |
void * | user_data | |||
) |
Allocates DVB VBI demux.
callback | Function to be called by vbi_dvb_demux_demux() when a new frame is available. | |
user_data | User pointer passed through to callback function. |
NULL
on failure (out of memory).