Data Structures | |
struct | vbi_network |
Network description. More... | |
struct | vbi_link |
struct | vbi_aspect_ratio |
Information about the picture aspect ratio and open subtitles. More... | |
struct | vbi_program_info |
struct | vbi_event |
Event union. More... | |
US TV rating flags | |
#define | VBI_RATING_D 0x08 |
#define | VBI_RATING_L 0x04 |
#define | VBI_RATING_S 0x02 |
#define | VBI_RATING_V 0x01 |
Event types. | |
#define | VBI_EVENT_NONE 0x0000 |
#define | VBI_EVENT_CLOSE 0x0001 |
#define | VBI_EVENT_TTX_PAGE 0x0002 |
#define | VBI_EVENT_CAPTION 0x0004 |
#define | VBI_EVENT_NETWORK 0x0008 |
#define | VBI_EVENT_TRIGGER 0x0010 |
#define | VBI_EVENT_ASPECT 0x0040 |
#define | VBI_EVENT_PROG_INFO 0x0080 |
#define | VBI_EVENT_NETWORK_ID 0x0100 |
Typedefs | |
typedef unsigned int | vbi_nuid |
Unique network id (a libzvbi thing). | |
typedef vbi_link | vbi_link |
typedef vbi_program_info | vbi_program_info |
typedef vbi_event | vbi_event |
Event union. | |
typedef void(* | vbi_event_handler )(vbi_event *event, void *user_data) |
Enumerations | |
enum | vbi_link_type { VBI_LINK_NONE = 0, VBI_LINK_MESSAGE, VBI_LINK_PAGE, VBI_LINK_SUBPAGE, VBI_LINK_HTTP, VBI_LINK_FTP, VBI_LINK_EMAIL, VBI_LINK_LID, VBI_LINK_TELEWEB } |
Link type. More... | |
enum | vbi_itv_type { VBI_WEBLINK_UNKNOWN = 0, VBI_WEBLINK_PROGRAM_RELATED, VBI_WEBLINK_NETWORK_RELATED, VBI_WEBLINK_STATION_RELATED, VBI_WEBLINK_SPONSOR_MESSAGE, VBI_WEBLINK_OPERATOR } |
ITV link type. More... | |
enum | vbi_subt { VBI_SUBT_NONE, VBI_SUBT_ACTIVE, VBI_SUBT_MATTE, VBI_SUBT_UNKNOWN } |
Open subtitle information. More... | |
enum | vbi_rating_auth { VBI_RATING_AUTH_NONE = 0, VBI_RATING_AUTH_MPAA, VBI_RATING_AUTH_TV_US, VBI_RATING_AUTH_TV_CA_EN, VBI_RATING_AUTH_TV_CA_FR } |
Program rating source. More... | |
enum | vbi_prog_classf { VBI_PROG_CLASSF_NONE = 0, VBI_PROG_CLASSF_EIA_608, VBI_PROG_CLASSF_ETS_300231 } |
Program classification schemes. More... | |
enum | vbi_audio_mode { VBI_AUDIO_MODE_NONE = 0, VBI_AUDIO_MODE_MONO, VBI_AUDIO_MODE_STEREO, VBI_AUDIO_MODE_STEREO_SURROUND, VBI_AUDIO_MODE_SIMULATED_STEREO, VBI_AUDIO_MODE_VIDEO_DESCRIPTIONS, VBI_AUDIO_MODE_NON_PROGRAM_AUDIO, VBI_AUDIO_MODE_SPECIAL_EFFECTS, VBI_AUDIO_MODE_DATA_SERVICE, VBI_AUDIO_MODE_UNKNOWN } |
Type of audio transmitted on one (mono or stereo) audio track. More... | |
Functions | |
const char * | vbi_prog_type_string (vbi_prog_classf classf, int id) |
void | vbi_reset_prog_info (vbi_program_info *pi) |
vbi_bool | vbi_event_handler_add (vbi_decoder *vbi, int event_mask, vbi_event_handler handler, void *user_data) |
void | vbi_event_handler_remove (vbi_decoder *vbi, vbi_event_handler handler) |
vbi_bool | vbi_event_handler_register (vbi_decoder *vbi, int event_mask, vbi_event_handler handler, void *user_data) |
void | vbi_event_handler_unregister (vbi_decoder *vbi, vbi_event_handler handler, void *user_data) |
const char * | vbi_rating_string (vbi_rating_auth auth, int id) |
Clients can register any number of handlers needed, also different handlers for the same event. They will be called in the order registered from the vbi_decode() function. Since they block decoding, they should return as soon as possible. The event structure and all data pointed to from there must be read only. The data is only valid until the handler returns.
|
"sexually suggestive dialog" |
|
|
"indecent language" |
|
"sexual situations" |
|
"violence" |
|
The vbi decoding context is about to be closed. This event is sent by vbi_decoder_delete() and can be used to clean up event handlers. |
|
The vbi decoder received and cached another Teletext page designated by ev.ttx_page.pgno and ev.ttx_page.subno. ev.ttx_page.roll_header flags the page header as suitable for rolling page numbers, e. g. excluding pages transmitted out of order.
The ev.ttx_page.header_update flag is set when the header, excluding the page number and real time clock, changed since the last If any of the roll_header, header_update or clock_update flags are set ev.ttx_page.raw_header is a pointer to the raw header data (40 bytes), which remains valid until the event handler returns. ev.ttx_page.pn_offset will be the offset (0 ... 37) of the three digit page number in the raw or formatted header. Allways call vbi_fetch_vt_page() for proper translation of national characters and character attributes, the raw header is only provided here as a means to quickly detect changes. |
|
A Closed Caption page has changed and needs visual update. The page or "CC channel" is designated by ev.caption.pgno, see vbi_pgno for details. When the client is monitoring this page, the expected action is to call vbi_fetch_cc_page(). To speed up rendering more detailed update information is provided in vbi_page.dirty, see vbi_page. The vbi_page will be a snapshot of the status at fetch time and not event time, vbi_page.dirty accumulates all changes since the last fetch. |
|
Some station/network identifier has been received or is no longer transmitted (vbi_network all zero, eg. after a channel switch). ev.network is a vbi_network object, read only. The event will not repeat*) unless a different identifier has been received and confirmed. Minimum time to identify network, when data service is transmitted:
*) VPS/TTX and XDS will not combine in real life, feeding the decoder with artificial data can confuse the logic. |
|
Triggers are sent by broadcasters to start some action on the user interface of modern TVs. Until libzvbi implements all ;-) of WebTV and SuperTeletext the information available are program related (or unrelated) URLs, short messages and Teletext page links. This event is sent when a trigger has fired, ev.trigger points to a vbi_link structure describing the link in detail. The structure must be read only. |
|
The vbi decoder received new information (potentially from PAL WSS, NTSC XDS or EIA-J CPR-1204) about the program aspect ratio. ev.ratio is a pointer to a vbi_ratio structure. The structure must be read only. |
|
We have new information about the current or next program. ev.prog_info is a vbi_program_info pointer (due to size), read only. Preliminary. XXX Info from Teletext not implemented yet. XXX Change to get_prog_info. network ditto? |
|
Like VBI_EVENT_NETWORK, but this event will also be sent when the decoder cannot determine a network name.
|
|
Unique network id (a libzvbi thing). 0 = unknown network, bit 31 reserved for preliminary nuids. Other network codes are arbitrary. |
|
General purpose link description for ATVEF (ITV, WebTV in the United States) and EACEM (SuperTeletext et al in Europe) triggers, Teletext TOP and FLOF navigation, and for links "guessed" by libzvbi from the text (e. g. page numbers and URLs). Usually not all fields will be used. |
|
Information about the current program, preliminary. |
|
|
ITV link type.
Some ITV (WebTV, ATVEF) triggers include a type id intended to filter relevant information. The names should speak for themselves. EACEM triggers always have type |
|
Open subtitle information. Open because they have been inserted into the picture, as opposed to closed subtitles (closed caption) encoded in the vbi. |
|
Program rating source. If program rating information is available (also known in the U. S. as V-Chip data), this describes which rating scheme is being used: U. S. film, U. S. TV, Canadian English or French TV. You can convert the rating code to a string with vbi_rating_string().
When the scheme is |
|
Program classification schemes. libzvbi understands two different program classification schemes, the EIA-608 based in the United States and the ETS 300 231 based one in Europe. You can convert the program type code into a string with vbi_prog_type_string(). |
|
Type of audio transmitted on one (mono or stereo) audio track.
|
|
|
|
|
|
|
|
|
|
Apart of adding handlers this function also enables and disables decoding of data services depending on the presence of at least one handler for the respective data. A This function can be safely called at any time, even from a handler.
|
|
Apart of removing a handler this function also disables decoding of data services when no handler is registered to consume the respective data. Removing the last This function can be safely called at any time, even from a handler removing itself or another handler, and regardless if the handler has been successfully registered. |
|
return Static pointer to the string (don't free()), or |