Teletext IDL packet demultiplexer
[Low Level Decoding]

Functions to decode data transmissions in Teletext Independent Data Line packets (EN 300 708 section 6). More...

Typedefs

typedef struct _vbi_idl_demux vbi_idl_demux
 IDL demultiplexer context.
typedef vbi_bool vbi_idl_demux_cb (vbi_idl_demux *dx, const uint8_t *buffer, unsigned int n_bytes, unsigned int flags, void *user_data)

Functions

void vbi_idl_demux_reset (vbi_idl_demux *dx)
vbi_bool vbi_idl_demux_feed (vbi_idl_demux *dx, const uint8_t buffer[42])
void vbi_idl_demux_delete (vbi_idl_demux *dx)
vbi_idl_demuxvbi_idl_a_demux_new (unsigned int channel, unsigned int address, vbi_idl_demux_cb *callback, void *user_data)

vbi_idl_demux_cb flags



#define VBI_IDL_DATA_LOST   (1 << 0)
#define VBI_IDL_DEPENDENT   (1 << 3)

Detailed Description

Functions to decode data transmissions in Teletext Independent Data Line packets (EN 300 708 section 6).


Define Documentation

#define VBI_IDL_DATA_LOST   (1 << 0)

Data was lost (not received or uncorrectable) between the current and previous call.

#define VBI_IDL_DEPENDENT   (1 << 3)

IDL Format A flag (EN 300 708 section 6.5.2): The data may require the use of data in other channels or with other service packet addresses as defined by the application.


Typedef Documentation

typedef struct _vbi_idl_demux vbi_idl_demux

IDL demultiplexer context.

The contents of this structure are private.

Call vbi_idl_demux_new() to allocate an IDL demultiplexer context.

typedef vbi_bool vbi_idl_demux_cb(vbi_idl_demux *dx, const uint8_t *buffer, unsigned int n_bytes, unsigned int flags, void *user_data)
Parameters:
dx IDL demultiplexer returned by vbi_idl_a_demux_new() and given to vbi_idl_demux_feed().
buffer Pointer to received user data.
n_bytes Number of bytes in the buffer. Can be 0 if the decoded packet did not contain user data.
flags VBI_IDL_DATA_LOST, VBI_IDL_DEPENDENT.
user_data User pointer passed to vbi_idl_demux_new().

The vbi_idl_demux_feed() function calls a function of this type after successfully decoding an IDL packet.

Returns:
FALSE to abort vbi_idl_demux_feed() and return FALSE.

Function Documentation

void vbi_idl_demux_reset ( vbi_idl_demux dx  ) 
Parameters:
dx IDL demultiplexer allocated with vbi_idl_a_demux_new().

Resets the IDL demux context, useful for example after a channel change.

Since:
0.2.14
vbi_bool vbi_idl_demux_feed ( vbi_idl_demux dx,
const uint8_t  buffer[42] 
)
Parameters:
dx IDL demultiplexer allocated with vbi_idl_a_demux_new().
buffer Teletext packet (last 42 bytes, i. e. without clock run-in and framing code), as in struct vbi_sliced.

This function takes a stream of Teletext packets, filters out packets of the desired data channel and address and calls the output function given to vbi_idl_a_demux_new() when new user data is available.

Returns:
FALSE if the packet contained incorrectable errors.
Since:
0.2.14
void vbi_idl_demux_delete ( vbi_idl_demux dx  ) 
Parameters:
dx IDL demultiplexer allocated with vbi_idl_a_demux_new(), can be NULL.

Frees all resources associated with dx.

Since:
0.2.14
vbi_idl_demux* vbi_idl_a_demux_new ( unsigned int  channel,
unsigned int  address,
vbi_idl_demux_cb callback,
void *  user_data 
)
Parameters:
channel Filter out packets of this channel.
address Filter out packets with this service data address.
callback Function to be called by vbi_idl_demux_feed() when new data is available.
user_data User pointer passed through to callback function.

Allocates a new Independent Data Line format A (EN 300 708 section 6.5) demultiplexer.

Returns:
Pointer to newly allocated IDL demultiplexer which must be freed with vbi_idl_demux_delete() when done. NULL on failure (out of memory).
Since:
0.2.14

Generated on 23 Jan 2011 for ZVBI Library by  doxygen 1.6.1