diff options
Diffstat (limited to 'vidix/vidix.h')
-rw-r--r-- | vidix/vidix.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/vidix/vidix.h b/vidix/vidix.h index 01a998b004..1aa9c1ee96 100644 --- a/vidix/vidix.h +++ b/vidix/vidix.h @@ -305,4 +305,100 @@ typedef struct vidix_oem_fx_s char *name[80]; /* effect name to display */ } vidix_oem_fx_t; +typedef struct VDXDriver { + const char *name; + struct VDXDriver *next; + int (* probe) (int verbose, int force); + int (* get_caps) (vidix_capability_t *cap); + int (*query_fourcc)(vidix_fourcc_t *); + int (*init)(void); + void (*destroy)(void); + int (*config_playback)(vidix_playback_t *); + int (*playback_on)( void ); + int (*playback_off)( void ); + /* Functions below can be missed in driver ;) */ + int (*frame_sel)( unsigned frame_idx ); + int (*get_eq)( vidix_video_eq_t * ); + int (*set_eq)( const vidix_video_eq_t * ); + int (*get_deint)( vidix_deinterlace_t * ); + int (*set_deint)( const vidix_deinterlace_t * ); + int (*copy_frame)( const vidix_dma_t * ); + int (*get_gkey)( vidix_grkey_t * ); + int (*set_gkey)( const vidix_grkey_t * ); + int (*get_num_fx)( unsigned * ); + int (*get_fx)( vidix_oem_fx_t * ); + int (*set_fx)( const vidix_oem_fx_t * ); +} VDXDriver; + +typedef struct VDXContext { + VDXDriver *drv; + /* might be filled in by much more info later on */ +} VDXContext; + +/***************************************************************************/ +/* PUBLIC API */ +/***************************************************************************/ + +typedef VDXContext *VDL_HANDLE; + +/* Opens corresponded video driver and returns handle of associated stream. + * path - specifies path where drivers are located. + * name - specifies prefered driver name (can be NULL). + * cap - specifies driver capability (TYPE_* constants). + * verbose - specifies verbose level + * returns handle if ok else NULL. + */ +VDL_HANDLE vdlOpen (const char *name,unsigned cap,int verbose); + +/* Closes stream and corresponded driver. */ +void vdlClose (VDL_HANDLE ctx); + +/* Queries driver capabilities. Return 0 if ok else errno */ +int vdlGetCapability (VDL_HANDLE, vidix_capability_t *); + +/* Queries support for given fourcc. Returns 0 if ok else errno */ +int vdlQueryFourcc (VDL_HANDLE, vidix_fourcc_t *); + +/* Returns 0 if ok else errno */ +int vdlConfigPlayback (VDL_HANDLE, vidix_playback_t *); + +/* Returns 0 if ok else errno */ +int vdlPlaybackOn (VDL_HANDLE); + +/* Returns 0 if ok else errno */ +int vdlPlaybackOff (VDL_HANDLE); + +/* Returns 0 if ok else errno */ +int vdlPlaybackFrameSelect (VDL_HANDLE, unsigned frame_idx); + +/* Returns 0 if ok else errno */ +int vdlGetGrKeys (VDL_HANDLE, vidix_grkey_t *); + +/* Returns 0 if ok else errno */ +int vdlSetGrKeys (VDL_HANDLE, const vidix_grkey_t *); + +/* Returns 0 if ok else errno */ +int vdlPlaybackGetEq (VDL_HANDLE, vidix_video_eq_t *); + +/* Returns 0 if ok else errno */ +int vdlPlaybackSetEq (VDL_HANDLE, const vidix_video_eq_t *); + +/* Returns 0 if ok else errno */ +int vdlPlaybackGetDeint (VDL_HANDLE, vidix_deinterlace_t *); + +/* Returns 0 if ok else errno */ +int vdlPlaybackSetDeint (VDL_HANDLE, const vidix_deinterlace_t *); + +/* Returns 0 if ok else errno */ +int vdlQueryNumOemEffects (VDL_HANDLE, unsigned *number); + +/* Returns 0 if ok else errno */ +int vdlGetOemEffect (VDL_HANDLE, vidix_oem_fx_t *); + +/* Returns 0 if ok else errno */ +int vdlSetOemEffect (VDL_HANDLE, const vidix_oem_fx_t *); + +/* Returns 0 if ok else errno */ +int vdlPlaybackCopyFrame (VDL_HANDLE, const vidix_dma_t *); + #endif /* MPLAYER_VIDIX_H */ |