Mercurial > mplayer.hg
annotate vidix/vidixlib.h @ 23011:365eef1fc4f0
Disable caching of rotated glyphs.
The following commits will add perspective distortion to the glyphs rotated
with \frx and \fry. Somewhere along the way correct caching of such glyphs
will become impossible, but in the end everything will be fine.
author | eugeni |
---|---|
date | Fri, 20 Apr 2007 22:49:48 +0000 |
parents | d74001dbe2a6 |
children | 82216ef041e0 |
rev | line source |
---|---|
3991 | 1 /* |
2 * vidixlib.h | |
3 * VIDIXLib - Library for VIDeo Interface for *niX | |
4 * This interface is introduced as universal one to MPEG decoder, | |
5 * BES == Back End Scaler and YUV2RGB hw accelerators. | |
6 * In the future it may be expanded up to capturing and audio things. | |
7 * Main goal of this this interface imlpementation is providing DGA | |
8 * everywhere where it's possible (unlike X11 and other). | |
22902 | 9 * Copyright 2002 Nick Kurshev, 2007 Benjamin Zores |
3991 | 10 * Licence: GPL |
11 * This interface is based on v4l2, fbvid.h, mga_vid.h projects | |
12 * and personally my ideas. | |
13 * NOTE: This interface is introduces as APP interface. | |
14 * Don't use it for driver. | |
15 * It provides multistreaming. This mean that APP can handle | |
16 * several streams simultaneously. (Example: Video capturing and video | |
17 * playback or capturing, video playback, audio encoding and so on). | |
18 */ | |
19 #ifndef VIDIXLIB_H | |
20 #define VIDIXLIB_H | |
21 | |
22 #ifdef __cplusplus | |
23 extern "C" { | |
24 #endif | |
25 | |
26 #include "vidix.h" | |
27 | |
22857
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
28 typedef struct VDXDriver { |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
29 const char *name; |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
30 struct VDXDriver *next; |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
31 int (* probe) (int verbose, int force); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
32 int (* get_caps) (vidix_capability_t *cap); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
33 int (*query_fourcc)(vidix_fourcc_t *); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
34 int (*init)(void); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
35 void (*destroy)(void); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
36 int (*config_playback)(vidix_playback_t *); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
37 int (*playback_on)( void ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
38 int (*playback_off)( void ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
39 /* Functions below can be missed in driver ;) */ |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
40 int (*frame_sel)( unsigned frame_idx ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
41 int (*get_eq)( vidix_video_eq_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
42 int (*set_eq)( const vidix_video_eq_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
43 int (*get_deint)( vidix_deinterlace_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
44 int (*set_deint)( const vidix_deinterlace_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
45 int (*copy_frame)( const vidix_dma_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
46 int (*get_gkey)( vidix_grkey_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
47 int (*set_gkey)( const vidix_grkey_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
48 int (*get_num_fx)( unsigned * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
49 int (*get_fx)( vidix_oem_fx_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
50 int (*set_fx)( const vidix_oem_fx_t * ); |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
51 } VDXDriver; |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
52 |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
53 typedef struct VDXContext { |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
54 VDXDriver *drv; |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
55 /* might be filled in by much more info later on */ |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
56 } VDXContext; |
77def5093daf
switch to new internal vidix API, no more dlopen/dlsym, libvidix is now a fully static library with all drivers built-in
ben
parents:
4191
diff
changeset
|
57 |
22865
441582f3ed87
simplified function prototypes to avoid casts but keep external API compatibility
ben
parents:
22862
diff
changeset
|
58 typedef VDXContext * VDL_HANDLE; |
3991 | 59 |
60 /* returns library version */ | |
22862 | 61 unsigned vdlGetVersion( void ); |
3991 | 62 |
63 /* Opens corresponded video driver and returns handle | |
64 of associated stream. | |
65 path - specifies path where drivers are located. | |
66 name - specifies prefered driver name (can be NULL). | |
67 cap - specifies driver capability (TYPE_* constants). | |
3995 | 68 verbose - specifies verbose level |
3991 | 69 returns !0 if ok else NULL. |
70 */ | |
22862 | 71 VDL_HANDLE vdlOpen(const char *path,const char *name,unsigned cap,int verbose); |
3991 | 72 /* Closes stream and corresponded driver. */ |
22865
441582f3ed87
simplified function prototypes to avoid casts but keep external API compatibility
ben
parents:
22862
diff
changeset
|
73 void vdlClose(VDL_HANDLE ctx); |
3991 | 74 |
75 /* Queries driver capabilities. Return 0 if ok else errno */ | |
22862 | 76 int vdlGetCapability(VDL_HANDLE, vidix_capability_t *); |
3991 | 77 |
78 /* Queries support for given fourcc. Returns 0 if ok else errno */ | |
22862 | 79 int vdlQueryFourcc(VDL_HANDLE,vidix_fourcc_t *); |
3991 | 80 |
81 /* Returns 0 if ok else errno */ | |
22862 | 82 int vdlConfigPlayback(VDL_HANDLE, vidix_playback_t *); |
3991 | 83 |
84 /* Returns 0 if ok else errno */ | |
22862 | 85 int vdlPlaybackOn(VDL_HANDLE); |
3991 | 86 |
87 /* Returns 0 if ok else errno */ | |
22862 | 88 int vdlPlaybackOff(VDL_HANDLE); |
3991 | 89 |
90 /* Returns 0 if ok else errno */ | |
22862 | 91 int vdlPlaybackFrameSelect(VDL_HANDLE, unsigned frame_idx ); |
3991 | 92 |
93 /* Returns 0 if ok else errno */ | |
22862 | 94 int vdlGetGrKeys(VDL_HANDLE, vidix_grkey_t * ); |
4070
b61ba6c256dd
Minor interface changes: color and video keys are moved out from playback configuring
nick
parents:
3995
diff
changeset
|
95 |
b61ba6c256dd
Minor interface changes: color and video keys are moved out from playback configuring
nick
parents:
3995
diff
changeset
|
96 /* Returns 0 if ok else errno */ |
22862 | 97 int vdlSetGrKeys(VDL_HANDLE, const vidix_grkey_t * ); |
4070
b61ba6c256dd
Minor interface changes: color and video keys are moved out from playback configuring
nick
parents:
3995
diff
changeset
|
98 |
b61ba6c256dd
Minor interface changes: color and video keys are moved out from playback configuring
nick
parents:
3995
diff
changeset
|
99 /* Returns 0 if ok else errno */ |
22862 | 100 int vdlPlaybackGetEq(VDL_HANDLE, vidix_video_eq_t * ); |
3991 | 101 |
102 /* Returns 0 if ok else errno */ | |
22862 | 103 int vdlPlaybackSetEq(VDL_HANDLE, const vidix_video_eq_t * ); |
3991 | 104 |
105 /* Returns 0 if ok else errno */ | |
22862 | 106 int vdlPlaybackGetDeint(VDL_HANDLE, vidix_deinterlace_t * ); |
4191 | 107 |
108 /* Returns 0 if ok else errno */ | |
22862 | 109 int vdlPlaybackSetDeint(VDL_HANDLE, const vidix_deinterlace_t * ); |
4191 | 110 |
111 /* Returns 0 if ok else errno */ | |
22862 | 112 int vdlQueryNumOemEffects(VDL_HANDLE, unsigned * number ); |
4191 | 113 |
114 /* Returns 0 if ok else errno */ | |
22862 | 115 int vdlGetOemEffect(VDL_HANDLE, vidix_oem_fx_t * ); |
4191 | 116 |
117 /* Returns 0 if ok else errno */ | |
22862 | 118 int vdlSetOemEffect(VDL_HANDLE, const vidix_oem_fx_t * ); |
4191 | 119 |
120 | |
121 /* Returns 0 if ok else errno */ | |
22862 | 122 int vdlPlaybackCopyFrame(VDL_HANDLE, const vidix_dma_t * ); |
3991 | 123 |
124 #ifdef __cplusplus | |
125 } | |
126 #endif | |
127 | |
128 #endif |