Mercurial > mplayer.hg
annotate libvo/video_out.h @ 36892:f50427ad9ff6
Internally map item 'potmeter' onto 'hpotmeter'.
Former version of the GUI treated a potmeter very similar to a hpotmeter
(the Win32 GUI still does so) and lots of skins are solely using
potmeters instead of hpotmeters, although this doesn't make sense at
all.
The current version of the GUI is treating a potmeter differently, but
in order to not break old skins, restore the old behaviour.
For the X11/GTK GUI, a potmeter is now simply a hpotmeter with
button=NULL and (button)width=(button)height=0. For the Win32 GUI
(where skins unfortunately are handled a bit differently and things
are more complicated) a potmeter is now a hpotmeter without button
but (button)width=(widget)width and (button)height=(widget)height.
Additionally, print a legacy information, because the item 'potmeter' is
obsolete now and oughtn't be used any longer.
author | ib |
---|---|
date | Mon, 10 Mar 2014 17:32:29 +0000 |
parents | 8c331bcef482 |
children |
rev | line source |
---|---|
1 | 1 /* |
28446
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
2 * Copyright (C) Aaron Holtzman - Aug 1999 |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
3 * Strongly modified, most parts rewritten: A'rpi/ESP-team - 2000-2001 |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
4 * (C) MPlayer developers |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
5 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
6 * This file is part of MPlayer. |
1 | 7 * |
28446
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
8 * MPlayer is free software; you can redistribute it and/or modify |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
11 * (at your option) any later version. |
1 | 12 * |
28446
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
13 * MPlayer is distributed in the hope that it will be useful, |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
16 * GNU General Public License for more details. |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
17 * |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
18 * You should have received a copy of the GNU General Public License along |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
19 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
1 | 21 */ |
28446
7681eab10aea
Add standard license headers, unify header formatting.
diego
parents:
28137
diff
changeset
|
22 |
26029 | 23 #ifndef MPLAYER_VIDEO_OUT_H |
24 #define MPLAYER_VIDEO_OUT_H | |
1 | 25 |
26 #include <inttypes.h> | |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
27 #include <stdarg.h> |
1 | 28 |
32466
9e627a1793b1
Move font_load.[ch], font_load_ft.c and osd_font.h from libvo to sub.
cigaes
parents:
32391
diff
changeset
|
29 //#include "sub/font_load.h" |
19431
ac69ba536915
Explicitly include libmpcodecs/img_format.h and libvo/fastmemcpy.h.
diego
parents:
19108
diff
changeset
|
30 #include "libmpcodecs/img_format.h" |
13787
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13091
diff
changeset
|
31 //#include "vidix/vidix.h" |
1 | 32 |
36171 | 33 |
34 #define ROTATE(t, x, y) do { \ | |
35 t rot_tmp = x; \ | |
36 x = y; \ | |
37 y = -rot_tmp; \ | |
38 } while(0) | |
39 | |
31 | 40 #define VO_EVENT_EXPOSE 1 |
41 #define VO_EVENT_RESIZE 2 | |
42 #define VO_EVENT_KEYPRESS 4 | |
31043
80036ef586ff
Add reinitialization support. Necessary for fullscreen on OSX.
reimar
parents:
31017
diff
changeset
|
43 #define VO_EVENT_REINIT 8 |
32368
ff2204a57cd3
Add VO_EVENT_MOVE which is required for VOs that interact directly
reimar
parents:
31201
diff
changeset
|
44 #define VO_EVENT_MOVE 16 |
36167 | 45 #define VO_EVENT_MOUSE 32 |
31 | 46 |
7124
eca7dbad0166
finally removed query_vaa, bes_da and vo_tune_info - the obsoleted libvo api
alex
parents:
7069
diff
changeset
|
47 /* Obsolete: VOCTRL_QUERY_VAA 1 */ |
6781 | 48 /* does the device support the required format */ |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
49 #define VOCTRL_QUERY_FORMAT 2 |
4754 | 50 /* signal a device reset seek */ |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
51 #define VOCTRL_RESET 3 |
4618 | 52 /* true if vo driver can use GUI created windows */ |
53 #define VOCTRL_GUISUPPORT 4 | |
4731 | 54 /* used to switch to fullscreen */ |
55 #define VOCTRL_FULLSCREEN 5 | |
4754 | 56 /* signal a device pause */ |
57 #define VOCTRL_PAUSE 7 | |
58 /* start/resume playback */ | |
59 #define VOCTRL_RESUME 8 | |
4971 | 60 /* libmpcodecs direct rendering: */ |
61 #define VOCTRL_GET_IMAGE 9 | |
5502 | 62 #define VOCTRL_DRAW_IMAGE 13 |
6110 | 63 #define VOCTRL_SET_SPU_PALETTE 14 |
5002 | 64 /* decoding ahead: */ |
65 #define VOCTRL_GET_NUM_FRAMES 10 | |
66 #define VOCTRL_GET_FRAME_NUM 11 | |
67 #define VOCTRL_SET_FRAME_NUM 12 | |
6308 | 68 #define VOCTRL_GET_PANSCAN 15 |
69 #define VOCTRL_SET_PANSCAN 16 | |
6781 | 70 /* equalizer controls */ |
71 #define VOCTRL_SET_EQUALIZER 17 | |
72 #define VOCTRL_GET_EQUALIZER 18 | |
8450 | 73 /* Frame duplication */ |
74 #define VOCTRL_DUPLICATE_FRAME 20 | |
75 // ... 21 | |
9560
ae2ce6ebc1fa
Pass start slice to the vo it make dr + slice implemantation easier
albeu
parents:
8450
diff
changeset
|
76 #define VOCTRL_START_SLICE 21 |
7009 | 77 |
11542 | 78 #define VOCTRL_ONTOP 25 |
13091 | 79 #define VOCTRL_ROOTWIN 26 |
16968
e9d849bf8050
add a switch, slave command, and vo control to toggle borderless window.
joey
parents:
16280
diff
changeset
|
80 #define VOCTRL_BORDER 27 |
19576 | 81 #define VOCTRL_DRAW_EOSD 28 |
82 #define VOCTRL_GET_EOSD_RES 29 | |
11542 | 83 |
20973
c0bcec5150a3
Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents:
19576
diff
changeset
|
84 #define VOCTRL_SET_DEINTERLACE 30 |
c0bcec5150a3
Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents:
19576
diff
changeset
|
85 #define VOCTRL_GET_DEINTERLACE 31 |
c0bcec5150a3
Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents:
19576
diff
changeset
|
86 |
22232 | 87 #define VOCTRL_UPDATE_SCREENINFO 32 |
88 | |
9569
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
89 // Vo can be used by xover |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
90 #define VOCTRL_XOVERLAY_SUPPORT 22 |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
91 |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
92 #define VOCTRL_XOVERLAY_SET_COLORKEY 24 |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
93 typedef struct { |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
94 uint32_t x11; // The raw x11 color |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
95 uint16_t r,g,b; |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
96 } mp_colorkey_t; |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
97 |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
98 #define VOCTRL_XOVERLAY_SET_WIN 23 |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
99 typedef struct { |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
100 int x,y; |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
101 int w,h; |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
102 } mp_win_t; |
6307 | 103 |
32702
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
104 #define VO_TRUE 1 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
105 #define VO_FALSE 0 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
106 #define VO_ERROR -1 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
107 #define VO_NOTAVAIL -2 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
108 #define VO_NOTIMPL -3 |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
109 |
32702
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
110 #define VOFLAG_FULLSCREEN 0x01 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
111 #define VOFLAG_MODESWITCHING 0x02 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
112 #define VOFLAG_SWSCALE 0x04 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
113 #define VOFLAG_FLIPPING 0x08 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
114 #define VOFLAG_HIDDEN 0x10 //< Use to create a hidden window |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
115 #define VOFLAG_STEREO 0x20 //< Use to create a stereo-capable window |
36219 | 116 #define VOFLAG_DEPTH 0x40 //< Request a depth buffer |
32702
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
117 #define VOFLAG_XOVERLAY_SUB_VO 0x10000 |
4736 | 118 |
1 | 119 typedef struct vo_info_s |
120 { | |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
121 /* driver name ("Matrox Millennium G200/G400" */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
122 const char *name; |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
123 /* short name (for config strings) ("mga") */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
124 const char *short_name; |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
125 /* author ("Aaron Holtzman <aholtzma@ess.engr.uvic.ca>") */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
126 const char *author; |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
127 /* any additional comments */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
128 const char *comment; |
1 | 129 } vo_info_t; |
130 | |
131 typedef struct vo_functions_s | |
132 { | |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
133 const vo_info_t *info; |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
134 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
135 * Preinitializes driver (real INITIALIZATION) |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
136 * arg - currently it's vo_subdevice |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
137 * returns: zero on successful initialization, non-zero on error. |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
138 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
139 int (*preinit)(const char *arg); |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
140 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
141 * Initialize (means CONFIGURE) the display driver. |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
142 * params: |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
143 * width,height: image source size |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
144 * d_width,d_height: size of the requested window size, just a hint |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
145 * fullscreen: flag, 0=windowd 1=fullscreen, just a hint |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
146 * title: window title, if available |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
147 * format: fourcc of pixel format |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
148 * returns : zero on successful initialization, non-zero on error. |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
149 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
150 int (*config)(uint32_t width, uint32_t height, uint32_t d_width, |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
151 uint32_t d_height, uint32_t fullscreen, char *title, |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
152 uint32_t format); |
1 | 153 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
154 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
155 * Control interface |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
156 */ |
33305
ddb45e9443ec
Remove the variable arguments from the libvo control() functions.
iive
parents:
32702
diff
changeset
|
157 int (*control)(uint32_t request, void *data); |
1 | 158 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
159 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
160 * Display a new RGB/BGR frame of the video to the screen. |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
161 * params: |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
162 * src[0] - pointer to the image |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
163 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
164 int (*draw_frame)(uint8_t *src[]); |
1 | 165 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
166 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
167 * Draw a planar YUV slice to the buffer: |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
168 * params: |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
169 * src[3] = source image planes (Y,U,V) |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
170 * stride[3] = source image planes line widths (in bytes) |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
171 * w,h = width*height of area to be copied (in Y pixels) |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
172 * x,y = position at the destination image (in Y pixels) |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
173 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
174 int (*draw_slice)(uint8_t *src[], int stride[], int w,int h, int x,int y); |
1 | 175 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
176 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
177 * Draws OSD to the screen buffer |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
178 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
179 void (*draw_osd)(void); |
1501
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1326
diff
changeset
|
180 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
181 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
182 * Blit/Flip buffer to the screen. Must be called after each frame! |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
183 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
184 void (*flip_page)(void); |
1 | 185 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
186 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
187 * This func is called after every frames to handle keyboard and |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
188 * other events. It's called in PAUSE mode too! |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
189 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
190 void (*check_events)(void); |
31 | 191 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
192 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
193 * Closes driver. Should restore the original state of the system. |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
194 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
195 void (*uninit)(void); |
1 | 196 } vo_functions_t; |
197 | |
25219
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
25216
diff
changeset
|
198 const vo_functions_t* init_best_video_out(char** vo_list); |
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
25216
diff
changeset
|
199 int config_video_out(const vo_functions_t *vo, uint32_t width, uint32_t height, |
22232 | 200 uint32_t d_width, uint32_t d_height, uint32_t flags, |
201 char *title, uint32_t format); | |
17566
f580a7755ac5
Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents:
16968
diff
changeset
|
202 void list_video_out(void); |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
203 |
1 | 204 // NULL terminated array of all drivers |
25219
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
25216
diff
changeset
|
205 extern const vo_functions_t* const video_out_drivers[]; |
1 | 206 |
4811
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
207 extern int vo_flags; |
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
208 |
5511 | 209 extern int vo_config_count; |
210 | |
18116 | 211 extern int xinerama_screen; |
212 extern int xinerama_x; | |
213 extern int xinerama_y; | |
214 | |
4618 | 215 // correct resolution/bpp on screen: (should be autodetected by vo_init()) |
388 | 216 extern int vo_depthonscreen; |
217 extern int vo_screenwidth; | |
218 extern int vo_screenheight; | |
213 | 219 |
388 | 220 // 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
|
221 extern int vo_dx; |
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
222 extern int vo_dy; |
388 | 223 extern int vo_dwidth; |
224 extern int vo_dheight; | |
225 extern int vo_dbpp; | |
226 | |
7539
56ea9db91251
-nograbpointer, based on old patch by Christian Ohm <chr.ohm@gmx.net>
arpi
parents:
7435
diff
changeset
|
227 extern int vo_grabpointer; |
1268 | 228 extern int vo_doublebuffering; |
5431
013458752947
disabling direct rendering by default (too buggy and conflicts with osd/sub)
arpi
parents:
5294
diff
changeset
|
229 extern int vo_directrendering; |
4667 | 230 extern int vo_vsync; |
4981 | 231 extern int vo_fs; |
1268 | 232 extern int vo_fsmode; |
6304
ee65527096c2
pan&scan support with -vo xv by ?? <mplayer@svennevid.net>
arpi
parents:
6110
diff
changeset
|
233 extern float vo_panscan; |
36186
3b15983f5e48
Add options to determine where borders will be added when adjusting for aspect.
reimar
parents:
36171
diff
changeset
|
234 extern float vo_border_pos_x; |
3b15983f5e48
Add options to determine where borders will be added when adjusting for aspect.
reimar
parents:
36171
diff
changeset
|
235 extern float vo_border_pos_y; |
36171 | 236 extern int vo_rotate; |
12021
cd33d1e3b709
move refreshrate and adapter_num variables to video_out because they might be usefull for other drivers, too
faust3
parents:
11542
diff
changeset
|
237 extern int vo_adapter_num; |
cd33d1e3b709
move refreshrate and adapter_num variables to video_out because they might be usefull for other drivers, too
faust3
parents:
11542
diff
changeset
|
238 extern int vo_refresh_rate; |
12371
c000f4c23efd
keepaspect and nokeepaspect are now useable by all vos
faust3
parents:
12021
diff
changeset
|
239 extern int vo_keepaspect; |
12912
1f6bb2356d18
add var vo_rootwin and -rootwin switch for mac osx
nplourde
parents:
12371
diff
changeset
|
240 extern int vo_rootwin; |
16280
7f34acc96aa4
remove extern for variables that are already in headers.
reimar
parents:
16171
diff
changeset
|
241 extern int vo_ontop; |
16968
e9d849bf8050
add a switch, slave command, and vo control to toggle borderless window.
joey
parents:
16280
diff
changeset
|
242 extern int vo_border; |
1268 | 243 |
24027
0530865bb02a
Declare all vo_gamma variables in libvo/video_out.h and remove them from
diego
parents:
23689
diff
changeset
|
244 extern int vo_gamma_gamma; |
6755 | 245 extern int vo_gamma_brightness; |
246 extern int vo_gamma_saturation; | |
247 extern int vo_gamma_contrast; | |
248 extern int vo_gamma_hue; | |
249 extern int vo_gamma_red_intensity; | |
250 extern int vo_gamma_green_intensity; | |
251 extern int vo_gamma_blue_intensity; | |
252 | |
10785 | 253 extern int vo_nomouse_input; |
31047 | 254 extern int enable_mouse_movements; |
5651
b8d8d72776f2
fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents:
5511
diff
changeset
|
255 |
2707 | 256 extern int vo_pts; |
3201 | 257 extern float vo_fps; |
2707 | 258 |
1184 | 259 extern char *vo_subdevice; |
260 | |
10988 | 261 extern int vo_colorkey; |
262 | |
29862
fbb1f57a313e
Added -name, -title and -use-filename-title options and implementation in X11 vos
ptt
parents:
29524
diff
changeset
|
263 extern char *vo_winname; |
fbb1f57a313e
Added -name, -title and -use-filename-title options and implementation in X11 vos
ptt
parents:
29524
diff
changeset
|
264 extern char *vo_wintitle; |
fbb1f57a313e
Added -name, -title and -use-filename-title options and implementation in X11 vos
ptt
parents:
29524
diff
changeset
|
265 |
28760
dec2bc0855e8
Make WinID a 64 bit integer, this should avoid issues with valid Window
reimar
parents:
28598
diff
changeset
|
266 extern int64_t WinID; |
16280
7f34acc96aa4
remove extern for variables that are already in headers.
reimar
parents:
16171
diff
changeset
|
267 |
7069 | 268 typedef struct { |
269 float min; | |
32702
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
270 float max; |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
271 } range_t; |
7069 | 272 |
28051 | 273 float range_max(range_t *r); |
274 int in_range(range_t *r, float f); | |
275 range_t *str2range(char *s); | |
7069 | 276 extern char *monitor_hfreq_str; |
277 extern char *monitor_vfreq_str; | |
278 extern char *monitor_dotclock_str; | |
279 | |
31017 | 280 struct mp_keymap { |
28137
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28051
diff
changeset
|
281 int from; |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28051
diff
changeset
|
282 int to; |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28051
diff
changeset
|
283 }; |
31017 | 284 int lookup_keymap_table(const struct mp_keymap *map, int key); |
28511
db19e31a2c7c
Add a calc_src_dst_rects that calculates from window size, panscan etc.
reimar
parents:
28446
diff
changeset
|
285 struct vo_rect { |
db19e31a2c7c
Add a calc_src_dst_rects that calculates from window size, panscan etc.
reimar
parents:
28446
diff
changeset
|
286 int left, right, top, bottom, width, height; |
db19e31a2c7c
Add a calc_src_dst_rects that calculates from window size, panscan etc.
reimar
parents:
28446
diff
changeset
|
287 }; |
28598
4172d83194f2
Extend calc_src_dst_rects to also calculate the border values needed for
reimar
parents:
28592
diff
changeset
|
288 void calc_src_dst_rects(int src_width, int src_height, struct vo_rect *src, struct vo_rect *dst, |
4172d83194f2
Extend calc_src_dst_rects to also calculate the border values needed for
reimar
parents:
28592
diff
changeset
|
289 struct vo_rect *borders, const struct vo_rect *crop); |
31049
b40e41324173
Avoid duplicating mouse-movement command-generation code.
reimar
parents:
31047
diff
changeset
|
290 void vo_mouse_movement(int posx, int posy); |
28137
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28051
diff
changeset
|
291 |
35050
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
292 static inline int pixel_stride(unsigned fmt) { |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
293 if (IMGFMT_IS_RGB(fmt)) |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
294 return (IMGFMT_RGB_DEPTH(fmt) + 7) / 8; |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
295 if (IMGFMT_IS_BGR(fmt)) |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
296 return (IMGFMT_BGR_DEPTH(fmt) + 7) / 8; |
35053
dda2444f4825
Fix OSD position again for interleaved YUV formats.
reimar
parents:
35050
diff
changeset
|
297 if (fmt == IMGFMT_YUY2 || fmt == IMGFMT_UYVY) |
dda2444f4825
Fix OSD position again for interleaved YUV formats.
reimar
parents:
35050
diff
changeset
|
298 return 2; |
35050
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
299 return IMGFMT_IS_YUVP16(fmt) ? 2 : 1; |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
300 } |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
301 |
29524
b1a437cdc60d
Add infrastructure and test code to enable aspect scaling and panscan in windowed mode.
reimar
parents:
28760
diff
changeset
|
302 static inline int aspect_scaling(void) |
b1a437cdc60d
Add infrastructure and test code to enable aspect scaling and panscan in windowed mode.
reimar
parents:
28760
diff
changeset
|
303 { |
35126 | 304 return vo_fs || vo_keepaspect; |
29524
b1a437cdc60d
Add infrastructure and test code to enable aspect scaling and panscan in windowed mode.
reimar
parents:
28760
diff
changeset
|
305 } |
b1a437cdc60d
Add infrastructure and test code to enable aspect scaling and panscan in windowed mode.
reimar
parents:
28760
diff
changeset
|
306 |
36188
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
307 static inline int apply_border_pos(int full, int part, float pos) { |
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
308 if (pos >= 0.0 && pos <= 1.0) { |
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
309 return pos*(full - part); |
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
310 } |
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
311 if (pos < 0) |
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
312 return pos * part; |
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
313 return full - part + (pos - 1) * part; |
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
314 } |
34116de1aa96
Apply forgotten move of apply_border_pos function.
reimar
parents:
36186
diff
changeset
|
315 |
26029 | 316 #endif /* MPLAYER_VIDEO_OUT_H */ |