Mercurial > mplayer.hg
annotate libvo/video_out.h @ 8644:0bfd73828e33
This patch fixes so that the exit code (or return code if you like) is set
to zero when mplayer exits because of natural EOF or by the quit command.
This can be useful if you (like me) use mplayer in scripts.
patch by Oskar Liljeblad <oskar@osk.mine.nu>
author | arpi |
---|---|
date | Sun, 29 Dec 2002 21:06:20 +0000 |
parents | 8cfc9309f0cc |
children | ae2ce6ebc1fa |
rev | line source |
---|---|
1 | 1 /* |
2 * video_out.h | |
3 * | |
4 * Copyright (C) Aaron Holtzman - Aug 1999 | |
31 | 5 * Strongly modified, most parts rewritten: A'rpi/ESP-team - 2000-2001 |
6781 | 6 * (C) MPlayer Developers |
1 | 7 * |
8 */ | |
4933 | 9 |
10 #ifndef __VIDEO_OUT_H | |
11 #define __VIDEO_OUT_H 1 | |
1 | 12 |
13 #include <inttypes.h> | |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
14 #include <stdarg.h> |
1 | 15 |
5294 | 16 //#include "font_load.h" |
408 | 17 #include "img_format.h" |
8081 | 18 //#include "../vidix/vidix.h" |
1 | 19 |
31 | 20 #define VO_EVENT_EXPOSE 1 |
21 #define VO_EVENT_RESIZE 2 | |
22 #define VO_EVENT_KEYPRESS 4 | |
23 | |
7124
eca7dbad0166
finally removed query_vaa, bes_da and vo_tune_info - the obsoleted libvo api
alex
parents:
7069
diff
changeset
|
24 /* Obsolete: VOCTRL_QUERY_VAA 1 */ |
6781 | 25 /* does the device support the required format */ |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
26 #define VOCTRL_QUERY_FORMAT 2 |
4754 | 27 /* signal a device reset seek */ |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
28 #define VOCTRL_RESET 3 |
4618 | 29 /* true if vo driver can use GUI created windows */ |
30 #define VOCTRL_GUISUPPORT 4 | |
7009 | 31 #define VOCTRL_GUI_NOWINDOW 19 |
4731 | 32 /* used to switch to fullscreen */ |
33 #define VOCTRL_FULLSCREEN 5 | |
4738 | 34 #define VOCTRL_SCREENSHOT 6 |
4754 | 35 /* signal a device pause */ |
36 #define VOCTRL_PAUSE 7 | |
37 /* start/resume playback */ | |
38 #define VOCTRL_RESUME 8 | |
4971 | 39 /* libmpcodecs direct rendering: */ |
40 #define VOCTRL_GET_IMAGE 9 | |
5502 | 41 #define VOCTRL_DRAW_IMAGE 13 |
6110 | 42 #define VOCTRL_SET_SPU_PALETTE 14 |
5002 | 43 /* decoding ahead: */ |
44 #define VOCTRL_GET_NUM_FRAMES 10 | |
45 #define VOCTRL_GET_FRAME_NUM 11 | |
46 #define VOCTRL_SET_FRAME_NUM 12 | |
6308 | 47 #define VOCTRL_GET_PANSCAN 15 |
48 #define VOCTRL_SET_PANSCAN 16 | |
6781 | 49 /* equalizer controls */ |
50 #define VOCTRL_SET_EQUALIZER 17 | |
51 #define VOCTRL_GET_EQUALIZER 18 | |
8450 | 52 //#define VOCTRL_GUI_NOWINDOW 19 |
53 /* Frame duplication */ | |
54 #define VOCTRL_DUPLICATE_FRAME 20 | |
55 // ... 21 | |
7009 | 56 |
6307 | 57 |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
58 #define VO_TRUE 1 |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
59 #define VO_FALSE 0 |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
60 #define VO_ERROR -1 |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
61 #define VO_NOTAVAIL -2 |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
62 #define VO_NOTIMPL -3 |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
63 |
4736 | 64 #define VOFLAG_FULLSCREEN 0x01 |
65 #define VOFLAG_MODESWITCHING 0x02 | |
66 #define VOFLAG_SWSCALE 0x04 | |
67 #define VOFLAG_FLIPPING 0x08 | |
68 | |
1 | 69 typedef struct vo_info_s |
70 { | |
71 /* driver name ("Matrox Millennium G200/G400" */ | |
72 const char *name; | |
73 /* short name (for config strings) ("mga") */ | |
74 const char *short_name; | |
75 /* author ("Aaron Holtzman <aholtzma@ess.engr.uvic.ca>") */ | |
76 const char *author; | |
77 /* any additional comments */ | |
78 const char *comment; | |
79 } vo_info_t; | |
80 | |
81 typedef struct vo_functions_s | |
82 { | |
8148
5b39e79af5fe
removed get_info, using the same sheme as in libmpcodecs instead
alex
parents:
8081
diff
changeset
|
83 vo_info_t *info; |
4352 | 84 /* |
85 * Preinitializes driver (real INITIALIZATION) | |
86 * arg - currently it's vo_subdevice | |
87 * returns: zero on successful initialization, non-zero on error. | |
88 */ | |
89 uint32_t (*preinit)(const char *arg); | |
1 | 90 /* |
4352 | 91 * Initialize (means CONFIGURE) the display driver. |
31 | 92 * params: |
93 * width,height: image source size | |
94 * d_width,d_height: size of the requested window size, just a hint | |
95 * fullscreen: flag, 0=windowd 1=fullscreen, just a hint | |
96 * title: window title, if available | |
97 * format: fourcc of pixel format | |
98 * returns : zero on successful initialization, non-zero on error. | |
1 | 99 */ |
4433 | 100 uint32_t (*config)(uint32_t width, uint32_t height, uint32_t d_width, |
101 uint32_t d_height, uint32_t fullscreen, char *title, | |
7124
eca7dbad0166
finally removed query_vaa, bes_da and vo_tune_info - the obsoleted libvo api
alex
parents:
7069
diff
changeset
|
102 uint32_t format); |
1 | 103 |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
104 /* |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
105 * Control interface |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
106 */ |
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
107 uint32_t (*control)(uint32_t request, void *data, ...); |
1 | 108 |
109 /* | |
31 | 110 * Display a new RGB/BGR frame of the video to the screen. |
111 * params: | |
112 * src[0] - pointer to the image | |
1 | 113 */ |
114 uint32_t (*draw_frame)(uint8_t *src[]); | |
115 | |
116 /* | |
31 | 117 * Draw a planar YUV slice to the buffer: |
118 * params: | |
119 * src[3] = source image planes (Y,U,V) | |
120 * stride[3] = source image planes line widths (in bytes) | |
121 * w,h = width*height of area to be copied (in Y pixels) | |
122 * x,y = position at the destination image (in Y pixels) | |
1 | 123 */ |
124 uint32_t (*draw_slice)(uint8_t *src[], int stride[], int w,int h, int x,int y); | |
125 | |
1501
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1326
diff
changeset
|
126 /* |
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1326
diff
changeset
|
127 * Draws OSD to the screen buffer |
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1326
diff
changeset
|
128 */ |
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1326
diff
changeset
|
129 void (*draw_osd)(void); |
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1326
diff
changeset
|
130 |
1 | 131 /* |
31 | 132 * Blit/Flip buffer to the screen. Must be called after each frame! |
1 | 133 */ |
134 void (*flip_page)(void); | |
135 | |
31 | 136 /* |
137 * This func is called after every frames to handle keyboard and | |
138 * other events. It's called in PAUSE mode too! | |
139 */ | |
140 void (*check_events)(void); | |
141 | |
142 /* | |
143 * Closes driver. Should restore the original state of the system. | |
144 */ | |
1 | 145 void (*uninit)(void); |
146 | |
147 } vo_functions_t; | |
148 | |
1142 | 149 char *vo_format_name(int format); |
1326 | 150 int vo_init(void); |
151 | |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
152 vo_functions_t* init_best_video_out(char** vo_list); |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
153 void list_video_out(); |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
154 |
1 | 155 // NULL terminated array of all drivers |
156 extern vo_functions_t* video_out_drivers[]; | |
157 | |
4811
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
158 extern int vo_flags; |
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
159 |
5511 | 160 extern int vo_config_count; |
161 | |
4618 | 162 // correct resolution/bpp on screen: (should be autodetected by vo_init()) |
388 | 163 extern int vo_depthonscreen; |
164 extern int vo_screenwidth; | |
165 extern int vo_screenheight; | |
213 | 166 |
388 | 167 // requested resolution/bpp: (-x -y -bpp options) |
4811
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
168 extern int vo_dx; |
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
169 extern int vo_dy; |
388 | 170 extern int vo_dwidth; |
171 extern int vo_dheight; | |
172 extern int vo_dbpp; | |
173 | |
7539
56ea9db91251
-nograbpointer, based on old patch by Christian Ohm <chr.ohm@gmx.net>
arpi
parents:
7435
diff
changeset
|
174 extern int vo_grabpointer; |
1268 | 175 extern int vo_doublebuffering; |
5431
013458752947
disabling direct rendering by default (too buggy and conflicts with osd/sub)
arpi
parents:
5294
diff
changeset
|
176 extern int vo_directrendering; |
4667 | 177 extern int vo_vsync; |
4981 | 178 extern int vo_fs; |
1268 | 179 extern int vo_fsmode; |
6304
ee65527096c2
pan&scan support with -vo xv by ?? <mplayer@svennevid.net>
arpi
parents:
6110
diff
changeset
|
180 extern float vo_panscan; |
1268 | 181 |
6755 | 182 extern int vo_gamma_brightness; |
183 extern int vo_gamma_saturation; | |
184 extern int vo_gamma_contrast; | |
185 extern int vo_gamma_hue; | |
186 extern int vo_gamma_red_intensity; | |
187 extern int vo_gamma_green_intensity; | |
188 extern int vo_gamma_blue_intensity; | |
189 | |
5651
b8d8d72776f2
fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents:
5511
diff
changeset
|
190 extern int vo_mouse_timer_const; |
b8d8d72776f2
fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents:
5511
diff
changeset
|
191 |
2707 | 192 extern int vo_pts; |
3201 | 193 extern float vo_fps; |
2707 | 194 |
1184 | 195 extern char *vo_subdevice; |
196 | |
7069 | 197 #if defined(HAVE_FBDEV)||defined(HAVE_VESA) |
198 | |
199 typedef struct { | |
200 float min; | |
201 float max; | |
202 } range_t; | |
203 | |
204 extern float range_max(range_t *r); | |
205 extern int in_range(range_t *r, float f); | |
206 extern range_t *str2range(char *s); | |
207 extern char *monitor_hfreq_str; | |
208 extern char *monitor_vfreq_str; | |
209 extern char *monitor_dotclock_str; | |
210 | |
211 #endif | |
212 | |
4933 | 213 #endif |