Mercurial > mplayer.hg
annotate libvo/video_out.h @ 35418:cedb0ba2b5c6
Move the code to set guiInfo's Track, Chapter and Angle start values.
Set them before checking whether there is any media opened, because
with no media opened we clear the counters.
author | ib |
---|---|
date | Thu, 29 Nov 2012 14:11:03 +0000 |
parents | 1278ec134f6b |
children | 29fb09ef97b9 |
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 |
31 | 33 #define VO_EVENT_EXPOSE 1 |
34 #define VO_EVENT_RESIZE 2 | |
35 #define VO_EVENT_KEYPRESS 4 | |
31043
80036ef586ff
Add reinitialization support. Necessary for fullscreen on OSX.
reimar
parents:
31017
diff
changeset
|
36 #define VO_EVENT_REINIT 8 |
32368
ff2204a57cd3
Add VO_EVENT_MOVE which is required for VOs that interact directly
reimar
parents:
31201
diff
changeset
|
37 #define VO_EVENT_MOVE 16 |
31 | 38 |
7124
eca7dbad0166
finally removed query_vaa, bes_da and vo_tune_info - the obsoleted libvo api
alex
parents:
7069
diff
changeset
|
39 /* Obsolete: VOCTRL_QUERY_VAA 1 */ |
6781 | 40 /* does the device support the required format */ |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
41 #define VOCTRL_QUERY_FORMAT 2 |
4754 | 42 /* signal a device reset seek */ |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
43 #define VOCTRL_RESET 3 |
4618 | 44 /* true if vo driver can use GUI created windows */ |
45 #define VOCTRL_GUISUPPORT 4 | |
7009 | 46 #define VOCTRL_GUI_NOWINDOW 19 |
4731 | 47 /* used to switch to fullscreen */ |
48 #define VOCTRL_FULLSCREEN 5 | |
4754 | 49 /* signal a device pause */ |
50 #define VOCTRL_PAUSE 7 | |
51 /* start/resume playback */ | |
52 #define VOCTRL_RESUME 8 | |
4971 | 53 /* libmpcodecs direct rendering: */ |
54 #define VOCTRL_GET_IMAGE 9 | |
5502 | 55 #define VOCTRL_DRAW_IMAGE 13 |
6110 | 56 #define VOCTRL_SET_SPU_PALETTE 14 |
5002 | 57 /* decoding ahead: */ |
58 #define VOCTRL_GET_NUM_FRAMES 10 | |
59 #define VOCTRL_GET_FRAME_NUM 11 | |
60 #define VOCTRL_SET_FRAME_NUM 12 | |
6308 | 61 #define VOCTRL_GET_PANSCAN 15 |
62 #define VOCTRL_SET_PANSCAN 16 | |
6781 | 63 /* equalizer controls */ |
64 #define VOCTRL_SET_EQUALIZER 17 | |
65 #define VOCTRL_GET_EQUALIZER 18 | |
8450 | 66 //#define VOCTRL_GUI_NOWINDOW 19 |
67 /* Frame duplication */ | |
68 #define VOCTRL_DUPLICATE_FRAME 20 | |
69 // ... 21 | |
9560
ae2ce6ebc1fa
Pass start slice to the vo it make dr + slice implemantation easier
albeu
parents:
8450
diff
changeset
|
70 #define VOCTRL_START_SLICE 21 |
7009 | 71 |
11542 | 72 #define VOCTRL_ONTOP 25 |
13091 | 73 #define VOCTRL_ROOTWIN 26 |
16968
e9d849bf8050
add a switch, slave command, and vo control to toggle borderless window.
joey
parents:
16280
diff
changeset
|
74 #define VOCTRL_BORDER 27 |
19576 | 75 #define VOCTRL_DRAW_EOSD 28 |
76 #define VOCTRL_GET_EOSD_RES 29 | |
11542 | 77 |
20973
c0bcec5150a3
Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents:
19576
diff
changeset
|
78 #define VOCTRL_SET_DEINTERLACE 30 |
c0bcec5150a3
Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents:
19576
diff
changeset
|
79 #define VOCTRL_GET_DEINTERLACE 31 |
c0bcec5150a3
Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents:
19576
diff
changeset
|
80 |
22232 | 81 #define VOCTRL_UPDATE_SCREENINFO 32 |
82 | |
9569
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
83 // 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
|
84 #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
|
85 |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
86 #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
|
87 typedef struct { |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
88 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
|
89 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
|
90 } mp_colorkey_t; |
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_WIN 23 |
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 int x,y; |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
95 int w,h; |
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9560
diff
changeset
|
96 } mp_win_t; |
6307 | 97 |
32702
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
98 #define VO_TRUE 1 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
99 #define VO_FALSE 0 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
100 #define VO_ERROR -1 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
101 #define VO_NOTAVAIL -2 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
102 #define VO_NOTIMPL -3 |
4592
5fbfd8545c3b
query_ stuff replaced by new control() - patch by David Holm
arpi
parents:
4433
diff
changeset
|
103 |
32702
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
104 #define VOFLAG_FULLSCREEN 0x01 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
105 #define VOFLAG_MODESWITCHING 0x02 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
106 #define VOFLAG_SWSCALE 0x04 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
107 #define VOFLAG_FLIPPING 0x08 |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
108 #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
|
109 #define VOFLAG_STEREO 0x20 //< Use to create a stereo-capable window |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
110 #define VOFLAG_XOVERLAY_SUB_VO 0x10000 |
4736 | 111 |
1 | 112 typedef struct vo_info_s |
113 { | |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
114 /* driver name ("Matrox Millennium G200/G400" */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
115 const char *name; |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
116 /* short name (for config strings) ("mga") */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
117 const char *short_name; |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
118 /* author ("Aaron Holtzman <aholtzma@ess.engr.uvic.ca>") */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
119 const char *author; |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
120 /* any additional comments */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
121 const char *comment; |
1 | 122 } vo_info_t; |
123 | |
124 typedef struct vo_functions_s | |
125 { | |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
126 const vo_info_t *info; |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
127 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
128 * Preinitializes driver (real INITIALIZATION) |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
129 * arg - currently it's vo_subdevice |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
130 * returns: zero on successful initialization, non-zero on error. |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
131 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
132 int (*preinit)(const char *arg); |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
133 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
134 * Initialize (means CONFIGURE) the display driver. |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
135 * params: |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
136 * width,height: image source size |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
137 * 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
|
138 * fullscreen: flag, 0=windowd 1=fullscreen, just a hint |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
139 * title: window title, if available |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
140 * format: fourcc of pixel format |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
141 * returns : zero on successful initialization, non-zero on error. |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
142 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
143 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
|
144 uint32_t d_height, uint32_t fullscreen, char *title, |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
145 uint32_t format); |
1 | 146 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
147 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
148 * Control interface |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
149 */ |
33305
ddb45e9443ec
Remove the variable arguments from the libvo control() functions.
iive
parents:
32702
diff
changeset
|
150 int (*control)(uint32_t request, void *data); |
1 | 151 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
152 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
153 * 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
|
154 * params: |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
155 * src[0] - pointer to the image |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
156 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
157 int (*draw_frame)(uint8_t *src[]); |
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 * Draw a planar YUV slice to the buffer: |
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[3] = source image planes (Y,U,V) |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
163 * stride[3] = source image planes line widths (in bytes) |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
164 * 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
|
165 * 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
|
166 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
167 int (*draw_slice)(uint8_t *src[], int stride[], int w,int h, int x,int y); |
1 | 168 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
169 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
170 * Draws OSD to the screen buffer |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
171 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
172 void (*draw_osd)(void); |
1501
d40f2b686846
changes according to -utf8 option, draw_osd() function added
atlka
parents:
1326
diff
changeset
|
173 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
174 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
175 * 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
|
176 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
177 void (*flip_page)(void); |
1 | 178 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
179 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
180 * 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
|
181 * other events. It's called in PAUSE mode too! |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
182 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
183 void (*check_events)(void); |
31 | 184 |
31201
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
185 /* |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
186 * 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
|
187 */ |
203789464176
misc cosmetics: K&R style nits, #include placement, indentation
diego
parents:
31049
diff
changeset
|
188 void (*uninit)(void); |
1 | 189 } vo_functions_t; |
190 | |
25219
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
25216
diff
changeset
|
191 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
|
192 int config_video_out(const vo_functions_t *vo, uint32_t width, uint32_t height, |
22232 | 193 uint32_t d_width, uint32_t d_height, uint32_t flags, |
194 char *title, uint32_t format); | |
17566
f580a7755ac5
Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents:
16968
diff
changeset
|
195 void list_video_out(void); |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
196 |
1 | 197 // 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
|
198 extern const vo_functions_t* const video_out_drivers[]; |
1 | 199 |
4811
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
200 extern int vo_flags; |
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
201 |
5511 | 202 extern int vo_config_count; |
203 | |
18116 | 204 extern int xinerama_screen; |
205 extern int xinerama_x; | |
206 extern int xinerama_y; | |
207 | |
4618 | 208 // correct resolution/bpp on screen: (should be autodetected by vo_init()) |
388 | 209 extern int vo_depthonscreen; |
210 extern int vo_screenwidth; | |
211 extern int vo_screenheight; | |
213 | 212 |
388 | 213 // 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
|
214 extern int vo_dx; |
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4754
diff
changeset
|
215 extern int vo_dy; |
388 | 216 extern int vo_dwidth; |
217 extern int vo_dheight; | |
218 extern int vo_dbpp; | |
219 | |
7539
56ea9db91251
-nograbpointer, based on old patch by Christian Ohm <chr.ohm@gmx.net>
arpi
parents:
7435
diff
changeset
|
220 extern int vo_grabpointer; |
1268 | 221 extern int vo_doublebuffering; |
5431
013458752947
disabling direct rendering by default (too buggy and conflicts with osd/sub)
arpi
parents:
5294
diff
changeset
|
222 extern int vo_directrendering; |
4667 | 223 extern int vo_vsync; |
4981 | 224 extern int vo_fs; |
1268 | 225 extern int vo_fsmode; |
6304
ee65527096c2
pan&scan support with -vo xv by ?? <mplayer@svennevid.net>
arpi
parents:
6110
diff
changeset
|
226 extern float vo_panscan; |
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
|
227 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
|
228 extern int vo_refresh_rate; |
12371
c000f4c23efd
keepaspect and nokeepaspect are now useable by all vos
faust3
parents:
12021
diff
changeset
|
229 extern int vo_keepaspect; |
12912
1f6bb2356d18
add var vo_rootwin and -rootwin switch for mac osx
nplourde
parents:
12371
diff
changeset
|
230 extern int vo_rootwin; |
16280
7f34acc96aa4
remove extern for variables that are already in headers.
reimar
parents:
16171
diff
changeset
|
231 extern int vo_ontop; |
16968
e9d849bf8050
add a switch, slave command, and vo control to toggle borderless window.
joey
parents:
16280
diff
changeset
|
232 extern int vo_border; |
1268 | 233 |
24027
0530865bb02a
Declare all vo_gamma variables in libvo/video_out.h and remove them from
diego
parents:
23689
diff
changeset
|
234 extern int vo_gamma_gamma; |
6755 | 235 extern int vo_gamma_brightness; |
236 extern int vo_gamma_saturation; | |
237 extern int vo_gamma_contrast; | |
238 extern int vo_gamma_hue; | |
239 extern int vo_gamma_red_intensity; | |
240 extern int vo_gamma_green_intensity; | |
241 extern int vo_gamma_blue_intensity; | |
242 | |
10785 | 243 extern int vo_nomouse_input; |
31047 | 244 extern int enable_mouse_movements; |
5651
b8d8d72776f2
fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents:
5511
diff
changeset
|
245 |
2707 | 246 extern int vo_pts; |
3201 | 247 extern float vo_fps; |
2707 | 248 |
1184 | 249 extern char *vo_subdevice; |
250 | |
10988 | 251 extern int vo_colorkey; |
252 | |
29862
fbb1f57a313e
Added -name, -title and -use-filename-title options and implementation in X11 vos
ptt
parents:
29524
diff
changeset
|
253 extern char *vo_winname; |
fbb1f57a313e
Added -name, -title and -use-filename-title options and implementation in X11 vos
ptt
parents:
29524
diff
changeset
|
254 extern char *vo_wintitle; |
fbb1f57a313e
Added -name, -title and -use-filename-title options and implementation in X11 vos
ptt
parents:
29524
diff
changeset
|
255 |
28760
dec2bc0855e8
Make WinID a 64 bit integer, this should avoid issues with valid Window
reimar
parents:
28598
diff
changeset
|
256 extern int64_t WinID; |
16280
7f34acc96aa4
remove extern for variables that are already in headers.
reimar
parents:
16171
diff
changeset
|
257 |
7069 | 258 typedef struct { |
259 float min; | |
32702
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
260 float max; |
7af3e6f901fd
Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
cehoyos
parents:
32533
diff
changeset
|
261 } range_t; |
7069 | 262 |
28051 | 263 float range_max(range_t *r); |
264 int in_range(range_t *r, float f); | |
265 range_t *str2range(char *s); | |
7069 | 266 extern char *monitor_hfreq_str; |
267 extern char *monitor_vfreq_str; | |
268 extern char *monitor_dotclock_str; | |
269 | |
31017 | 270 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
|
271 int from; |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28051
diff
changeset
|
272 int to; |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28051
diff
changeset
|
273 }; |
31017 | 274 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
|
275 struct vo_rect { |
db19e31a2c7c
Add a calc_src_dst_rects that calculates from window size, panscan etc.
reimar
parents:
28446
diff
changeset
|
276 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
|
277 }; |
28598
4172d83194f2
Extend calc_src_dst_rects to also calculate the border values needed for
reimar
parents:
28592
diff
changeset
|
278 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
|
279 struct vo_rect *borders, const struct vo_rect *crop); |
31049
b40e41324173
Avoid duplicating mouse-movement command-generation code.
reimar
parents:
31047
diff
changeset
|
280 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
|
281 |
35050
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
282 static inline int pixel_stride(unsigned fmt) { |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
283 if (IMGFMT_IS_RGB(fmt)) |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
284 return (IMGFMT_RGB_DEPTH(fmt) + 7) / 8; |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
285 if (IMGFMT_IS_BGR(fmt)) |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
286 return (IMGFMT_BGR_DEPTH(fmt) + 7) / 8; |
35053
dda2444f4825
Fix OSD position again for interleaved YUV formats.
reimar
parents:
35050
diff
changeset
|
287 if (fmt == IMGFMT_YUY2 || fmt == IMGFMT_UYVY) |
dda2444f4825
Fix OSD position again for interleaved YUV formats.
reimar
parents:
35050
diff
changeset
|
288 return 2; |
35050
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
289 return IMGFMT_IS_YUVP16(fmt) ? 2 : 1; |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
290 } |
b291f44d864a
Avoid some code duplication related to drawing the OSD.
reimar
parents:
33305
diff
changeset
|
291 |
29524
b1a437cdc60d
Add infrastructure and test code to enable aspect scaling and panscan in windowed mode.
reimar
parents:
28760
diff
changeset
|
292 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
|
293 { |
35126 | 294 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
|
295 } |
b1a437cdc60d
Add infrastructure and test code to enable aspect scaling and panscan in windowed mode.
reimar
parents:
28760
diff
changeset
|
296 |
26029 | 297 #endif /* MPLAYER_VIDEO_OUT_H */ |