view libmpcodecs/ad.h @ 23510:a6c619ee9d30

Teletext support for tv:// (v4l and v4l2 only) modified patch from Otvos Attila oattila at chello dot hu Module uses zvbi library for all low-level VBI operations (like I/O with vbi device, converting vbi pages into usefull vbi_page stuctures, rendering them into RGB32 images). All teletext related stuff (except properties, slave commands and rendering osd in text mode or RGB32 rendered teletext pages in spu mode) is implemented in tvi_vbi.c New properties: teletext_page - switching between pages teletext_mode - switch between on/off/opaque/transparent modes teletext_format - (currently read-only) allows to get format info (black/white,gray,text) teletext_half_page - trivial zooming (displaying top/bottom half of teletext page) New slave commands: teletext_add_dec - user interface for jumping to any page by editing page number interactively teletext_go_link - goes though links, specified on current page
author voroshil
date Sun, 10 Jun 2007 00:06:12 +0000
parents e72d8e3955ea
children 6ac1ece1f9fe
line wrap: on
line source


#include "mpc_info.h"
typedef mp_codec_info_t ad_info_t;

/* interface of video decoder drivers */
typedef struct ad_functions_s
{
	ad_info_t *info;
        int (*preinit)(sh_audio_t *sh);
        int (*init)(sh_audio_t *sh);
        void (*uninit)(sh_audio_t *sh);
        int (*control)(sh_audio_t *sh,int cmd,void* arg, ...);
        int (*decode_audio)(sh_audio_t *sh,unsigned char* buffer,int minlen,int maxlen);
} ad_functions_t;

// NULL terminated array of all drivers
extern ad_functions_t* mpcodecs_ad_drivers[];

// fallback if ADCTRL_RESYNC not implemented: sh_audio->a_in_buffer_len=0;
#define ADCTRL_RESYNC_STREAM 1       /* resync, called after seeking! */

// fallback if ADCTRL_SKIP not implemented: ds_fill_buffer(sh_audio->ds);
#define ADCTRL_SKIP_FRAME 2         /* skip block/frame, called while seeking! */

// fallback if ADCTRL_QUERY_FORMAT not implemented: sh_audio->sample_format
#define ADCTRL_QUERY_FORMAT 3 /* test for availabilty of a format */

// fallback: use hw mixer in libao
#define ADCTRL_SET_VOLUME 4 /* set volume (used for mp3lib and liba52) */