annotate libvo/video_out.h @ 24787:02535b3216c5

Avoid text deformation and subtitles moving outside the screen in pan-and-scan mode. For this, crop amounts are passed from vo_gl as negative margins sizes. They are used to calculate aspect ratio. They are ignored when calculating subtitle positions, so subtitles will stay on screen most of the time. Based on a patch by Jindrich Makovicka [makovick gmail com].
author eugeni
date Fri, 19 Oct 2007 18:16:23 +0000
parents 0530865bb02a
children 5a4fad628819
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2 * video_out.h
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
4 * Copyright (C) Aaron Holtzman - Aug 1999
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
5 * Strongly modified, most parts rewritten: A'rpi/ESP-team - 2000-2001
6781
924263b4df10 eq reworked
alex
parents: 6755
diff changeset
6 * (C) MPlayer Developers
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
7 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8 */
4933
429994672d8c 're-include' possibility
nick
parents: 4811
diff changeset
9
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 23605
diff changeset
10 #ifndef VIDEO_OUT_H
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 23605
diff changeset
11 #define VIDEO_OUT_H
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
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
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15
5294
4e64fca268e9 moved font_laod.h
arpi
parents: 5002
diff changeset
16 //#include "font_load.h"
19431
ac69ba536915 Explicitly include libmpcodecs/img_format.h and libvo/fastmemcpy.h.
diego
parents: 19108
diff changeset
17 #include "libmpcodecs/img_format.h"
13787
e047e70a9767 Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents: 13091
diff changeset
18 //#include "vidix/vidix.h"
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
20 #define VO_EVENT_EXPOSE 1
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
21 #define VO_EVENT_RESIZE 2
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
22 #define VO_EVENT_KEYPRESS 4
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
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
924263b4df10 eq reworked
alex
parents: 6755
diff changeset
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
ad892563d9c4 Added VOCTRL_PAUSE and VOCTRL_RESUME
mswitch
parents: 4738
diff changeset
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
09198a119e39 added voctrl_guisupport and fixed some typos
alex
parents: 4592
diff changeset
29 /* true if vo driver can use GUI created windows */
09198a119e39 added voctrl_guisupport and fixed some typos
alex
parents: 4592
diff changeset
30 #define VOCTRL_GUISUPPORT 4
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6781
diff changeset
31 #define VOCTRL_GUI_NOWINDOW 19
4731
c8125c117807 added VOCTRL_FULLSCREEN
alex
parents: 4667
diff changeset
32 /* used to switch to fullscreen */
c8125c117807 added VOCTRL_FULLSCREEN
alex
parents: 4667
diff changeset
33 #define VOCTRL_FULLSCREEN 5
4738
77519b9ac057 Screenshot on the fly
nick
parents: 4736
diff changeset
34 #define VOCTRL_SCREENSHOT 6
4754
ad892563d9c4 Added VOCTRL_PAUSE and VOCTRL_RESUME
mswitch
parents: 4738
diff changeset
35 /* signal a device pause */
ad892563d9c4 Added VOCTRL_PAUSE and VOCTRL_RESUME
mswitch
parents: 4738
diff changeset
36 #define VOCTRL_PAUSE 7
ad892563d9c4 Added VOCTRL_PAUSE and VOCTRL_RESUME
mswitch
parents: 4738
diff changeset
37 /* start/resume playback */
ad892563d9c4 Added VOCTRL_PAUSE and VOCTRL_RESUME
mswitch
parents: 4738
diff changeset
38 #define VOCTRL_RESUME 8
4971
fa002f25631e direct rendering support
arpi
parents: 4933
diff changeset
39 /* libmpcodecs direct rendering: */
fa002f25631e direct rendering support
arpi
parents: 4933
diff changeset
40 #define VOCTRL_GET_IMAGE 9
5502
9cecf4b10a4b VOCTRL_DRAW_IMAGE added
arpi
parents: 5431
diff changeset
41 #define VOCTRL_DRAW_IMAGE 13
6110
7bea806b9c5f Improvment for spu subtitles.
albeu
parents: 5651
diff changeset
42 #define VOCTRL_SET_SPU_PALETTE 14
5002
70751bbd6404 voctls for decoding ahead
nick
parents: 4981
diff changeset
43 /* decoding ahead: */
70751bbd6404 voctls for decoding ahead
nick
parents: 4981
diff changeset
44 #define VOCTRL_GET_NUM_FRAMES 10
70751bbd6404 voctls for decoding ahead
nick
parents: 4981
diff changeset
45 #define VOCTRL_GET_FRAME_NUM 11
70751bbd6404 voctls for decoding ahead
nick
parents: 4981
diff changeset
46 #define VOCTRL_SET_FRAME_NUM 12
6308
4764574062a0 100l to .so
arpi
parents: 6307
diff changeset
47 #define VOCTRL_GET_PANSCAN 15
4764574062a0 100l to .so
arpi
parents: 6307
diff changeset
48 #define VOCTRL_SET_PANSCAN 16
6781
924263b4df10 eq reworked
alex
parents: 6755
diff changeset
49 /* equalizer controls */
924263b4df10 eq reworked
alex
parents: 6755
diff changeset
50 #define VOCTRL_SET_EQUALIZER 17
924263b4df10 eq reworked
alex
parents: 6755
diff changeset
51 #define VOCTRL_GET_EQUALIZER 18
8450
8cfc9309f0cc notice vo driver about skipped/dropped frames
arpi
parents: 8148
diff changeset
52 //#define VOCTRL_GUI_NOWINDOW 19
8cfc9309f0cc notice vo driver about skipped/dropped frames
arpi
parents: 8148
diff changeset
53 /* Frame duplication */
8cfc9309f0cc notice vo driver about skipped/dropped frames
arpi
parents: 8148
diff changeset
54 #define VOCTRL_DUPLICATE_FRAME 20
8cfc9309f0cc notice vo driver about skipped/dropped frames
arpi
parents: 8148
diff changeset
55 // ... 21
9560
ae2ce6ebc1fa Pass start slice to the vo it make dr + slice implemantation easier
albeu
parents: 8450
diff changeset
56 #define VOCTRL_START_SLICE 21
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6781
diff changeset
57
11542
85e503ddf65f runtime 'stay-on-top' functionality
joey
parents: 10988
diff changeset
58 #define VOCTRL_ONTOP 25
13091
25f51c72eb06 added runtime toggle of root window playback
joey
parents: 12912
diff changeset
59 #define VOCTRL_ROOTWIN 26
16968
e9d849bf8050 add a switch, slave command, and vo control to toggle borderless window.
joey
parents: 16280
diff changeset
60 #define VOCTRL_BORDER 27
19576
3e7ce339d74b Add EOSD support to vf_vo.
eugeni
parents: 19431
diff changeset
61 #define VOCTRL_DRAW_EOSD 28
3e7ce339d74b Add EOSD support to vf_vo.
eugeni
parents: 19431
diff changeset
62 #define VOCTRL_GET_EOSD_RES 29
3e7ce339d74b Add EOSD support to vf_vo.
eugeni
parents: 19431
diff changeset
63 typedef struct {
3e7ce339d74b Add EOSD support to vf_vo.
eugeni
parents: 19431
diff changeset
64 int w, h; // screen dimensions, including black borders
3e7ce339d74b Add EOSD support to vf_vo.
eugeni
parents: 19431
diff changeset
65 int mt, mb, ml, mr; // borders (top, bottom, left, right)
3e7ce339d74b Add EOSD support to vf_vo.
eugeni
parents: 19431
diff changeset
66 } mp_eosd_res_t;
11542
85e503ddf65f runtime 'stay-on-top' functionality
joey
parents: 10988
diff changeset
67
20973
c0bcec5150a3 Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents: 19576
diff changeset
68 #define VOCTRL_SET_DEINTERLACE 30
c0bcec5150a3 Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents: 19576
diff changeset
69 #define VOCTRL_GET_DEINTERLACE 31
c0bcec5150a3 Add deinterlace property, patch by Carl Eugen Hoyos
reimar
parents: 19576
diff changeset
70
22232
d0b60d14d8d7 Move common vo initialization code to video_out.c
reimar
parents: 20973
diff changeset
71 #define VOCTRL_UPDATE_SCREENINFO 32
d0b60d14d8d7 Move common vo initialization code to video_out.c
reimar
parents: 20973
diff changeset
72
9569
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
73 // 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
74 #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
75
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
76 #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
77 typedef struct {
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
78 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
79 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
80 } mp_colorkey_t;
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
81
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
82 #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
83 typedef struct {
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
84 int x,y;
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
85 int w,h;
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
86 } mp_win_t;
6307
72c87b2ec779 added panscan support for xmga/xvidix
pontscho
parents: 6304
diff changeset
87
4592
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
88 #define VO_TRUE 1
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
89 #define VO_FALSE 0
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
90 #define VO_ERROR -1
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
91 #define VO_NOTAVAIL -2
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
92 #define VO_NOTIMPL -3
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
93
4736
57f053d75893 added VOFLAG_* definitions and int vo_flags
alex
parents: 4731
diff changeset
94 #define VOFLAG_FULLSCREEN 0x01
57f053d75893 added VOFLAG_* definitions and int vo_flags
alex
parents: 4731
diff changeset
95 #define VOFLAG_MODESWITCHING 0x02
57f053d75893 added VOFLAG_* definitions and int vo_flags
alex
parents: 4731
diff changeset
96 #define VOFLAG_SWSCALE 0x04
57f053d75893 added VOFLAG_* definitions and int vo_flags
alex
parents: 4731
diff changeset
97 #define VOFLAG_FLIPPING 0x08
9569
894d02a6469e vo_xover is a new vo that should make easy to have x11 support for
albeu
parents: 9560
diff changeset
98 #define VOFLAG_XOVERLAY_SUB_VO 0x10000
4736
57f053d75893 added VOFLAG_* definitions and int vo_flags
alex
parents: 4731
diff changeset
99
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
100 typedef struct vo_info_s
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
101 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
102 /* driver name ("Matrox Millennium G200/G400" */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
103 const char *name;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
104 /* short name (for config strings) ("mga") */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
105 const char *short_name;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
106 /* author ("Aaron Holtzman <aholtzma@ess.engr.uvic.ca>") */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
107 const char *author;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
108 /* any additional comments */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
109 const char *comment;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
110 } vo_info_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
111
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
112 typedef struct vo_functions_s
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
113 {
8148
5b39e79af5fe removed get_info, using the same sheme as in libmpcodecs instead
alex
parents: 8081
diff changeset
114 vo_info_t *info;
4352
ed5b85b713a3 Extensions for video accelerated architecture
nick
parents: 3201
diff changeset
115 /*
ed5b85b713a3 Extensions for video accelerated architecture
nick
parents: 3201
diff changeset
116 * Preinitializes driver (real INITIALIZATION)
ed5b85b713a3 Extensions for video accelerated architecture
nick
parents: 3201
diff changeset
117 * arg - currently it's vo_subdevice
ed5b85b713a3 Extensions for video accelerated architecture
nick
parents: 3201
diff changeset
118 * returns: zero on successful initialization, non-zero on error.
ed5b85b713a3 Extensions for video accelerated architecture
nick
parents: 3201
diff changeset
119 */
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 13787
diff changeset
120 int (*preinit)(const char *arg);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
121 /*
4352
ed5b85b713a3 Extensions for video accelerated architecture
nick
parents: 3201
diff changeset
122 * Initialize (means CONFIGURE) the display driver.
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
123 * params:
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
124 * width,height: image source size
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
125 * d_width,d_height: size of the requested window size, just a hint
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
126 * fullscreen: flag, 0=windowd 1=fullscreen, just a hint
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
127 * title: window title, if available
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
128 * format: fourcc of pixel format
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
129 * returns : zero on successful initialization, non-zero on error.
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
130 */
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 13787
diff changeset
131 int (*config)(uint32_t width, uint32_t height, uint32_t d_width,
4433
df8e0f71cc3c new info for tuning
nick
parents: 4352
diff changeset
132 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
133 uint32_t format);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
134
4592
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
135 /*
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
136 * Control interface
5fbfd8545c3b query_ stuff replaced by new control() - patch by David Holm
arpi
parents: 4433
diff changeset
137 */
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 13787
diff changeset
138 int (*control)(uint32_t request, void *data, ...);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
139
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
140 /*
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
141 * Display a new RGB/BGR frame of the video to the screen.
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
142 * params:
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
143 * src[0] - pointer to the image
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
144 */
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 13787
diff changeset
145 int (*draw_frame)(uint8_t *src[]);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
146
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
147 /*
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
148 * Draw a planar YUV slice to the buffer:
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
149 * params:
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
150 * src[3] = source image planes (Y,U,V)
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
151 * stride[3] = source image planes line widths (in bytes)
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
152 * w,h = width*height of area to be copied (in Y pixels)
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
153 * x,y = position at the destination image (in Y pixels)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
154 */
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 13787
diff changeset
155 int (*draw_slice)(uint8_t *src[], int stride[], int w,int h, int x,int y);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
156
1501
d40f2b686846 changes according to -utf8 option, draw_osd() function added
atlka
parents: 1326
diff changeset
157 /*
d40f2b686846 changes according to -utf8 option, draw_osd() function added
atlka
parents: 1326
diff changeset
158 * Draws OSD to the screen buffer
d40f2b686846 changes according to -utf8 option, draw_osd() function added
atlka
parents: 1326
diff changeset
159 */
d40f2b686846 changes according to -utf8 option, draw_osd() function added
atlka
parents: 1326
diff changeset
160 void (*draw_osd)(void);
d40f2b686846 changes according to -utf8 option, draw_osd() function added
atlka
parents: 1326
diff changeset
161
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
162 /*
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
163 * Blit/Flip buffer to the screen. Must be called after each frame!
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
164 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
165 void (*flip_page)(void);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
166
31
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
167 /*
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
168 * This func is called after every frames to handle keyboard and
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
169 * other events. It's called in PAUSE mode too!
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
170 */
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
171 void (*check_events)(void);
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
172
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
173 /*
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
174 * Closes driver. Should restore the original state of the system.
1fc618eba830 added check_events() interface
arpi_esp
parents: 1
diff changeset
175 */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
176 void (*uninit)(void);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
177
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
178 } vo_functions_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
179
7562
92188b57a062 video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents: 7539
diff changeset
180 vo_functions_t* init_best_video_out(char** vo_list);
22232
d0b60d14d8d7 Move common vo initialization code to video_out.c
reimar
parents: 20973
diff changeset
181 int config_video_out(vo_functions_t *vo, uint32_t width, uint32_t height,
d0b60d14d8d7 Move common vo initialization code to video_out.c
reimar
parents: 20973
diff changeset
182 uint32_t d_width, uint32_t d_height, uint32_t flags,
d0b60d14d8d7 Move common vo initialization code to video_out.c
reimar
parents: 20973
diff changeset
183 char *title, uint32_t format);
17566
f580a7755ac5 Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents: 16968
diff changeset
184 void list_video_out(void);
7562
92188b57a062 video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents: 7539
diff changeset
185
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
186 // NULL terminated array of all drivers
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
187 extern vo_functions_t* video_out_drivers[];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
188
4811
38a9cddd9e4d added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents: 4754
diff changeset
189 extern int vo_flags;
38a9cddd9e4d added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents: 4754
diff changeset
190
5511
7a24a067f0af vo_config_count now counts calls to vo->config()
arpi
parents: 5502
diff changeset
191 extern int vo_config_count;
7a24a067f0af vo_config_count now counts calls to vo->config()
arpi
parents: 5502
diff changeset
192
18116
d75953576ae4 Fix and improve xinerama support
reimar
parents: 17566
diff changeset
193 extern int xinerama_screen;
d75953576ae4 Fix and improve xinerama support
reimar
parents: 17566
diff changeset
194 extern int xinerama_x;
d75953576ae4 Fix and improve xinerama support
reimar
parents: 17566
diff changeset
195 extern int xinerama_y;
d75953576ae4 Fix and improve xinerama support
reimar
parents: 17566
diff changeset
196
4618
09198a119e39 added voctrl_guisupport and fixed some typos
alex
parents: 4592
diff changeset
197 // correct resolution/bpp on screen: (should be autodetected by vo_init())
388
ccb5ebfaaeac -bpp changes
arpi_esp
parents: 218
diff changeset
198 extern int vo_depthonscreen;
ccb5ebfaaeac -bpp changes
arpi_esp
parents: 218
diff changeset
199 extern int vo_screenwidth;
ccb5ebfaaeac -bpp changes
arpi_esp
parents: 218
diff changeset
200 extern int vo_screenheight;
213
6ec8f6ab6cb1 subtitle+OSD font support
arpi_esp
parents: 31
diff changeset
201
388
ccb5ebfaaeac -bpp changes
arpi_esp
parents: 218
diff changeset
202 // 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
203 extern int vo_dx;
38a9cddd9e4d added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents: 4754
diff changeset
204 extern int vo_dy;
388
ccb5ebfaaeac -bpp changes
arpi_esp
parents: 218
diff changeset
205 extern int vo_dwidth;
ccb5ebfaaeac -bpp changes
arpi_esp
parents: 218
diff changeset
206 extern int vo_dheight;
ccb5ebfaaeac -bpp changes
arpi_esp
parents: 218
diff changeset
207 extern int vo_dbpp;
ccb5ebfaaeac -bpp changes
arpi_esp
parents: 218
diff changeset
208
7539
56ea9db91251 -nograbpointer, based on old patch by Christian Ohm <chr.ohm@gmx.net>
arpi
parents: 7435
diff changeset
209 extern int vo_grabpointer;
1268
9877eaacff9e extern vo_doublebuffering cleanup
arpi
parents: 1184
diff changeset
210 extern int vo_doublebuffering;
5431
013458752947 disabling direct rendering by default (too buggy and conflicts with osd/sub)
arpi
parents: 5294
diff changeset
211 extern int vo_directrendering;
4667
95fa3901cafc add vsync support for doublebuffering to vo_vesa
atmos4
parents: 4618
diff changeset
212 extern int vo_vsync;
4981
bfc652fc7f43 rewrite fullscreen support in some libvo driver
pontscho
parents: 4971
diff changeset
213 extern int vo_fs;
1268
9877eaacff9e extern vo_doublebuffering cleanup
arpi
parents: 1184
diff changeset
214 extern int vo_fsmode;
6304
ee65527096c2 pan&scan support with -vo xv by ?? <mplayer@svennevid.net>
arpi
parents: 6110
diff changeset
215 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
216 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
217 extern int vo_refresh_rate;
12371
c000f4c23efd keepaspect and nokeepaspect are now useable by all vos
faust3
parents: 12021
diff changeset
218 extern int vo_keepaspect;
12912
1f6bb2356d18 add var vo_rootwin and -rootwin switch for mac osx
nplourde
parents: 12371
diff changeset
219 extern int vo_rootwin;
16280
7f34acc96aa4 remove extern for variables that are already in headers.
reimar
parents: 16171
diff changeset
220 extern int vo_ontop;
16968
e9d849bf8050 add a switch, slave command, and vo control to toggle borderless window.
joey
parents: 16280
diff changeset
221 extern int vo_border;
1268
9877eaacff9e extern vo_doublebuffering cleanup
arpi
parents: 1184
diff changeset
222
24027
0530865bb02a Declare all vo_gamma variables in libvo/video_out.h and remove them from
diego
parents: 23689
diff changeset
223 extern int vo_gamma_gamma;
6755
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6308
diff changeset
224 extern int vo_gamma_brightness;
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6308
diff changeset
225 extern int vo_gamma_saturation;
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6308
diff changeset
226 extern int vo_gamma_contrast;
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6308
diff changeset
227 extern int vo_gamma_hue;
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6308
diff changeset
228 extern int vo_gamma_red_intensity;
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6308
diff changeset
229 extern int vo_gamma_green_intensity;
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6308
diff changeset
230 extern int vo_gamma_blue_intensity;
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6308
diff changeset
231
10785
e2dcade78bc6 -nomouseinput support for vo_sdl
alex
parents: 9569
diff changeset
232 extern int vo_nomouse_input;
5651
b8d8d72776f2 fix playlist bug with gui and rewrite mousecursor show/hide code
pontscho
parents: 5511
diff changeset
233
2707
97efb75dceb8 vo_pts added
arpi
parents: 1501
diff changeset
234 extern int vo_pts;
3201
039a973b3dda Newest DXR3 patch (improved 1.0rc2) by David Holm.
atmos4
parents: 2707
diff changeset
235 extern float vo_fps;
2707
97efb75dceb8 vo_pts added
arpi
parents: 1501
diff changeset
236
1184
e8c3f89ecd96 vo_subdevice implemented
al3x
parents: 1142
diff changeset
237 extern char *vo_subdevice;
e8c3f89ecd96 vo_subdevice implemented
al3x
parents: 1142
diff changeset
238
10988
c2bff70784d5 user settable colorkey
alex
parents: 10785
diff changeset
239 extern int vo_colorkey;
c2bff70784d5 user settable colorkey
alex
parents: 10785
diff changeset
240
16280
7f34acc96aa4 remove extern for variables that are already in headers.
reimar
parents: 16171
diff changeset
241 extern int WinID;
7f34acc96aa4 remove extern for variables that are already in headers.
reimar
parents: 16171
diff changeset
242
7069
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
243 #if defined(HAVE_FBDEV)||defined(HAVE_VESA)
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
244
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
245 typedef struct {
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
246 float min;
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
247 float max;
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
248 } range_t;
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
249
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
250 extern float range_max(range_t *r);
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
251 extern int in_range(range_t *r, float f);
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
252 extern range_t *str2range(char *s);
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
253 extern char *monitor_hfreq_str;
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
254 extern char *monitor_vfreq_str;
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
255 extern char *monitor_dotclock_str;
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
256
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
257 #endif
21e1ab99cb21 General Timing Formula algorithm from a scratch.
arpi
parents: 7009
diff changeset
258
4933
429994672d8c 're-include' possibility
nick
parents: 4811
diff changeset
259 #endif