Mercurial > mplayer.hg
annotate libvo/video_out.c @ 28345:3a08f32c8fa1
Do not use select n lirc code, instead set the fd non-blocking.
select can not work because lirc_nextcode buffers data internally,
causing events to be delayed until the next keypress in some cases.
Patch by Dennis Vshivkov [jaimor (at) orcon net nz]
author | reimar |
---|---|
date | Tue, 27 Jan 2009 19:06:50 +0000 |
parents | 28bf0d126da2 |
children | e8bae856d691 |
rev | line source |
---|---|
7338
598c69a1480d
cosmetics - copyright msg removed, this file has nothing with mpeg2dec or
arpi
parents:
7326
diff
changeset
|
1 |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
2 /* this file contains libvo's common functions, variables used by |
7338
598c69a1480d
cosmetics - copyright msg removed, this file has nothing with mpeg2dec or
arpi
parents:
7326
diff
changeset
|
3 many/all drivers. */ |
1 | 4 |
5 #include <stdio.h> | |
6 #include <stdlib.h> | |
7 #include <string.h> | |
8 | |
9 #include <unistd.h> | |
5296 | 10 //#include <sys/mman.h> |
1 | 11 |
12 #include "config.h" | |
13 #include "video_out.h" | |
22232 | 14 #include "aspect.h" |
15 #include "geometry.h" | |
1 | 16 |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
17 #include "mp_msg.h" |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
18 #include "help_mp.h" |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
19 |
13787
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13744
diff
changeset
|
20 #include "osdep/shmem.h" |
1 | 21 |
5074 | 22 //int vo_flags=0; |
4736 | 23 |
18116 | 24 int xinerama_screen = -1; |
25 int xinerama_x; | |
26 int xinerama_y; | |
27 | |
388 | 28 // currect resolution/bpp on screen: (should be autodetected by vo_init()) |
29 int vo_depthonscreen=0; | |
30 int vo_screenwidth=0; | |
31 int vo_screenheight=0; | |
32 | |
5511 | 33 int vo_config_count=0; |
34 | |
388 | 35 // requested resolution/bpp: (-x -y -bpp options) |
4811
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4736
diff
changeset
|
36 int vo_dx=0; |
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4736
diff
changeset
|
37 int vo_dy=0; |
388 | 38 int vo_dwidth=0; |
39 int vo_dheight=0; | |
40 int vo_dbpp=0; | |
4981 | 41 |
10785 | 42 int vo_nomouse_input = 0; |
7539
56ea9db91251
-nograbpointer, based on old patch by Christian Ohm <chr.ohm@gmx.net>
arpi
parents:
7536
diff
changeset
|
43 int vo_grabpointer = 1; |
14066
db6de212435b
it's stupid for the default to be something both slower (for xv+dr) and visually incorrect.. use -nodouble if you want old behavior
rfelker
parents:
13787
diff
changeset
|
44 int vo_doublebuffering = 1; |
4667 | 45 int vo_vsync = 0; |
4981 | 46 int vo_fs = 0; |
1269 | 47 int vo_fsmode = 0; |
6304
ee65527096c2
pan&scan support with -vo xv by ?? <mplayer@svennevid.net>
arpi
parents:
6069
diff
changeset
|
48 float vo_panscan = 0.0f; |
11542 | 49 int vo_ontop = 0; |
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
|
50 int vo_adapter_num=0; |
cd33d1e3b709
move refreshrate and adapter_num variables to video_out because they might be usefull for other drivers, too
faust3
parents:
11542
diff
changeset
|
51 int vo_refresh_rate=0; |
12371
c000f4c23efd
keepaspect and nokeepaspect are now useable by all vos
faust3
parents:
12129
diff
changeset
|
52 int vo_keepaspect=1; |
12912
1f6bb2356d18
add var vo_rootwin and -rootwin switch for mac osx
nplourde
parents:
12601
diff
changeset
|
53 int vo_rootwin=0; |
16968
e9d849bf8050
add a switch, slave command, and vo control to toggle borderless window.
joey
parents:
16181
diff
changeset
|
54 int vo_border=1; |
14207 | 55 int WinID = -1; |
388 | 56 |
2707 | 57 int vo_pts=0; // for hw decoding |
19021 | 58 float vo_fps=0; |
2707 | 59 |
1184 | 60 char *vo_subdevice = NULL; |
5431
013458752947
disabling direct rendering by default (too buggy and conflicts with osd/sub)
arpi
parents:
5296
diff
changeset
|
61 int vo_directrendering=0; |
6781 | 62 |
10988 | 63 int vo_colorkey = 0x0000ff00; // default colorkey is green |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
64 // (0xff000000 means that colorkey has been disabled) |
10988 | 65 |
1 | 66 // |
67 // Externally visible list of all vo drivers | |
68 // | |
69 extern vo_functions_t video_out_mga; | |
70 extern vo_functions_t video_out_xmga; | |
71 extern vo_functions_t video_out_x11; | |
9569
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9546
diff
changeset
|
72 extern vo_functions_t video_out_xover; |
10316 | 73 extern vo_functions_t video_out_xvmc; |
1 | 74 extern vo_functions_t video_out_xv; |
75 extern vo_functions_t video_out_gl; | |
2124 | 76 extern vo_functions_t video_out_gl2; |
12 | 77 extern vo_functions_t video_out_dga; |
1 | 78 extern vo_functions_t video_out_sdl; |
79 extern vo_functions_t video_out_3dfx; | |
1979
6278f566cd91
tdfxfb yuv driver by Zeljko Stevanovic <zsteva@ptt.yu>
arpi
parents:
1871
diff
changeset
|
80 extern vo_functions_t video_out_tdfxfb; |
18535
8e92dd0ff93a
Add YUY2 and back end scaling on S3 Virge chips in combination with fbdev.
gpoirier
parents:
18237
diff
changeset
|
81 extern vo_functions_t video_out_s3fb; |
27375 | 82 extern vo_functions_t video_out_wii; |
1 | 83 extern vo_functions_t video_out_null; |
4214
664984198aef
zr driver (tv-out for DC10/DC10+, iomega buz, LML33...) added - patch by Rik Snel <rsnel@cube.dyndns.org>
arpi
parents:
4169
diff
changeset
|
84 extern vo_functions_t video_out_zr; |
11390
32eb3dfe44c9
new zoran driver as discussed on the CVS list. Hardware passthrough is
rik
parents:
11158
diff
changeset
|
85 extern vo_functions_t video_out_zr2; |
7326
ec3e58120e2a
extensible blinkenlights driver, can currently be used for the Arcade http://www.blinkenlights.de/arcade
rik
parents:
7069
diff
changeset
|
86 extern vo_functions_t video_out_bl; |
225 | 87 extern vo_functions_t video_out_fbdev; |
10763
7436a53876b0
vo_fbdev2 written by Joey Parrish with some minor modifications
alex
parents:
10689
diff
changeset
|
88 extern vo_functions_t video_out_fbdev2; |
286 | 89 extern vo_functions_t video_out_svga; |
528 | 90 extern vo_functions_t video_out_png; |
1130 | 91 extern vo_functions_t video_out_ggi; |
1511 | 92 extern vo_functions_t video_out_aa; |
12129 | 93 extern vo_functions_t video_out_caca; |
1871 | 94 extern vo_functions_t video_out_mpegpes; |
4599 | 95 extern vo_functions_t video_out_yuv4mpeg; |
27921 | 96 extern vo_functions_t video_out_direct3d; |
7536
70c35cd5db1f
-vo directx driver by Sascha Sommer <saschasommer@freenet.de>
arpi
parents:
7435
diff
changeset
|
97 extern vo_functions_t video_out_directx; |
6069
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
98 extern vo_functions_t video_out_dxr2; |
2645 | 99 extern vo_functions_t video_out_dxr3; |
19137
d9656bb2ae0e
new vo driver for ivtv cards tv-out through internal h/w mpeg decoder
ben
parents:
19082
diff
changeset
|
100 extern vo_functions_t video_out_ivtv; |
23905
fb63124c7920
v4l2 audio/video outputs for linux 2.6.22+ kernels (outputs formerly known as ivtv)
ben
parents:
23814
diff
changeset
|
101 extern vo_functions_t video_out_v4l2; |
5648 | 102 extern vo_functions_t video_out_jpeg; |
6053 | 103 extern vo_functions_t video_out_gif89a; |
2244 | 104 extern vo_functions_t video_out_vesa; |
3275
38344371432f
vo DirectFB support by Jiri Svoboda <Jiri.Svoboda@seznam.cz>
arpi
parents:
3201
diff
changeset
|
105 extern vo_functions_t video_out_directfb; |
8013
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
106 extern vo_functions_t video_out_dfbmga; |
4124 | 107 extern vo_functions_t video_out_xvidix; |
10979
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
108 extern vo_functions_t video_out_winvidix; |
11017 | 109 extern vo_functions_t video_out_cvidix; |
9546
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
110 extern vo_functions_t video_out_tdfx_vid; |
23984
73c9e15e7341
add XVR-100 vo, patch by Balatoni Denes (dbalatoni interware hu)
reimar
parents:
23905
diff
changeset
|
111 extern vo_functions_t video_out_xvr100; |
10689 | 112 extern vo_functions_t video_out_tga; |
15291 | 113 extern vo_functions_t video_out_macosx; |
12120
56e4423f16be
Quartz/MacOSX video output module by Nicolas Plourde
alex
parents:
12021
diff
changeset
|
114 extern vo_functions_t video_out_quartz; |
13397
6cfffb50ea42
This patch enables the compilation and linking of vo_pnm (the portable
ivo
parents:
12912
diff
changeset
|
115 extern vo_functions_t video_out_pnm; |
13398
ae4e34f267bb
This patch enables the compilation and linking of vo_md5sum to libvo.
ivo
parents:
13397
diff
changeset
|
116 extern vo_functions_t video_out_md5sum; |
4124 | 117 |
25219
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
24270
diff
changeset
|
118 const vo_functions_t* const video_out_drivers[] = |
1 | 119 { |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
120 #ifdef CONFIG_XVR100 |
23984
73c9e15e7341
add XVR-100 vo, patch by Balatoni Denes (dbalatoni interware hu)
reimar
parents:
23905
diff
changeset
|
121 &video_out_xvr100, |
73c9e15e7341
add XVR-100 vo, patch by Balatoni Denes (dbalatoni interware hu)
reimar
parents:
23905
diff
changeset
|
122 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
123 #ifdef CONFIG_TDFX_VID |
9546
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
124 &video_out_tdfx_vid, |
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
125 #endif |
27922
ea21f6e033ec
100l, the video_out_drivers list must be sorted by priority, not
reimar
parents:
27921
diff
changeset
|
126 #ifdef CONFIG_DIRECTX |
ea21f6e033ec
100l, the video_out_drivers list must be sorted by priority, not
reimar
parents:
27921
diff
changeset
|
127 &video_out_directx, |
ea21f6e033ec
100l, the video_out_drivers list must be sorted by priority, not
reimar
parents:
27921
diff
changeset
|
128 #endif |
27921 | 129 #ifdef CONFIG_DIRECT3D |
130 &video_out_direct3d, | |
131 #endif | |
27388
ac03760f7fcc
Rename all preprocessor directives related to Apple / Mac OS X.
diego
parents:
27385
diff
changeset
|
132 #ifdef CONFIG_COREVIDEO |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
133 &video_out_macosx, |
15347
18d404eebb28
do not define video_out_macosx if corevideo is not present
nplourde
parents:
15291
diff
changeset
|
134 #endif |
27388
ac03760f7fcc
Rename all preprocessor directives related to Apple / Mac OS X.
diego
parents:
27385
diff
changeset
|
135 #ifdef CONFIG_QUARTZ |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
136 &video_out_quartz, |
12601 | 137 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
138 #ifdef CONFIG_XMGA |
1 | 139 &video_out_xmga, |
140 #endif | |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
141 #ifdef CONFIG_MGA |
1 | 142 &video_out_mga, |
143 #endif | |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
144 #ifdef CONFIG_TDFXFB |
17069 | 145 &video_out_tdfxfb, |
146 #endif | |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
147 #ifdef CONFIG_S3FB |
18535
8e92dd0ff93a
Add YUY2 and back end scaling on S3 Virge chips in combination with fbdev.
gpoirier
parents:
18237
diff
changeset
|
148 &video_out_s3fb, |
8e92dd0ff93a
Add YUY2 and back end scaling on S3 Virge chips in combination with fbdev.
gpoirier
parents:
18237
diff
changeset
|
149 #endif |
27375 | 150 #ifdef CONFIG_WII |
151 &video_out_wii, | |
152 #endif | |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
153 #ifdef CONFIG_3DFX |
1 | 154 &video_out_3dfx, |
155 #endif | |
27377
d58d06eafe83
Change a bunch of X11-specific preprocessor directives.
diego
parents:
27375
diff
changeset
|
156 #ifdef CONFIG_XV |
1 | 157 &video_out_xv, |
158 #endif | |
27377
d58d06eafe83
Change a bunch of X11-specific preprocessor directives.
diego
parents:
27375
diff
changeset
|
159 #ifdef CONFIG_X11 |
1 | 160 &video_out_x11, |
9569
894d02a6469e
vo_xover is a new vo that should make easy to have x11 support for
albeu
parents:
9546
diff
changeset
|
161 &video_out_xover, |
1 | 162 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
163 #ifdef CONFIG_GL |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
164 &video_out_gl, |
2124 | 165 &video_out_gl2, |
1 | 166 #endif |
27377
d58d06eafe83
Change a bunch of X11-specific preprocessor directives.
diego
parents:
27375
diff
changeset
|
167 #ifdef CONFIG_DGA |
12 | 168 &video_out_dga, |
169 #endif | |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
170 #ifdef CONFIG_SDL |
1 | 171 &video_out_sdl, |
172 #endif | |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
173 #ifdef CONFIG_GGI |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
174 &video_out_ggi, |
1235 | 175 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
176 #ifdef CONFIG_FBDEV |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
177 &video_out_fbdev, |
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
178 &video_out_fbdev2, |
234 | 179 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
180 #ifdef CONFIG_SVGALIB |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
181 &video_out_svga, |
286 | 182 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
183 #ifdef CONFIG_AA |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
184 &video_out_aa, |
1511 | 185 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
186 #ifdef CONFIG_CACA |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
187 &video_out_caca, |
12129 | 188 #endif |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27365
diff
changeset
|
189 #ifdef CONFIG_DXR2 |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
190 &video_out_dxr2, |
6069
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
191 #endif |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27365
diff
changeset
|
192 #ifdef CONFIG_DXR3 |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
193 &video_out_dxr3, |
2645 | 194 #endif |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27365
diff
changeset
|
195 #ifdef CONFIG_IVTV |
19137
d9656bb2ae0e
new vo driver for ivtv cards tv-out through internal h/w mpeg decoder
ben
parents:
19082
diff
changeset
|
196 &video_out_ivtv, |
d9656bb2ae0e
new vo driver for ivtv cards tv-out through internal h/w mpeg decoder
ben
parents:
19082
diff
changeset
|
197 #endif |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27365
diff
changeset
|
198 #ifdef CONFIG_V4L2_DECODER |
23905
fb63124c7920
v4l2 audio/video outputs for linux 2.6.22+ kernels (outputs formerly known as ivtv)
ben
parents:
23814
diff
changeset
|
199 &video_out_v4l2, |
fb63124c7920
v4l2 audio/video outputs for linux 2.6.22+ kernels (outputs formerly known as ivtv)
ben
parents:
23814
diff
changeset
|
200 #endif |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27365
diff
changeset
|
201 #ifdef CONFIG_ZR |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
202 &video_out_zr, |
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
203 &video_out_zr2, |
4214
664984198aef
zr driver (tv-out for DC10/DC10+, iomega buz, LML33...) added - patch by Rik Snel <rsnel@cube.dyndns.org>
arpi
parents:
4169
diff
changeset
|
204 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
205 #ifdef CONFIG_BL |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
206 &video_out_bl, |
7326
ec3e58120e2a
extensible blinkenlights driver, can currently be used for the Arcade http://www.blinkenlights.de/arcade
rik
parents:
7069
diff
changeset
|
207 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
208 #ifdef CONFIG_VESA |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
209 &video_out_vesa, |
2244 | 210 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
211 #ifdef CONFIG_DIRECTFB |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
212 &video_out_directfb, |
26160 | 213 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
214 #ifdef CONFIG_DFBMGA |
8013
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
215 &video_out_dfbmga, |
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
216 #endif |
10979
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
217 #ifdef CONFIG_VIDIX |
27377
d58d06eafe83
Change a bunch of X11-specific preprocessor directives.
diego
parents:
27375
diff
changeset
|
218 #ifdef CONFIG_X11 |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
219 &video_out_xvidix, |
4124 | 220 #endif |
27727
48c1ae64255b
Replace preprocessor check for WIN32 with checks for __MINGW32__ and __CYGWIN__.
diego
parents:
27388
diff
changeset
|
221 #if defined(__MINGW32__) || defined(__CYGWIN__) |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
222 &video_out_winvidix, |
10979
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
223 #endif |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
224 &video_out_cvidix, |
10979
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
225 #endif |
13551
2466b2ee99a8
move the file writers after vo_null so they don't get autoselected - following the same logic as in libao2
alex
parents:
13507
diff
changeset
|
226 &video_out_null, |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
227 // should not be auto-selected |
28119 | 228 #ifdef CONFIG_XVMC |
17423
076ab46c63bd
prevent xvmc from been loaded before xv, and generally before any autoprobed output
iive
parents:
17069
diff
changeset
|
229 &video_out_xvmc, |
076ab46c63bd
prevent xvmc from been loaded before xv, and generally before any autoprobed output
iive
parents:
17069
diff
changeset
|
230 #endif |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
231 &video_out_mpegpes, |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
232 #ifdef CONFIG_YUV4MPEG |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
233 &video_out_yuv4mpeg, |
27071 | 234 #endif |
27385
2113bd9c6bd9
Rename preprocessor directives related to image libraries.
diego
parents:
27377
diff
changeset
|
235 #ifdef CONFIG_PNG |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
236 &video_out_png, |
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
237 #endif |
27385
2113bd9c6bd9
Rename preprocessor directives related to image libraries.
diego
parents:
27377
diff
changeset
|
238 #ifdef CONFIG_JPEG |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
239 &video_out_jpeg, |
13551
2466b2ee99a8
move the file writers after vo_null so they don't get autoselected - following the same logic as in libao2
alex
parents:
13507
diff
changeset
|
240 #endif |
27385
2113bd9c6bd9
Rename preprocessor directives related to image libraries.
diego
parents:
27377
diff
changeset
|
241 #ifdef CONFIG_GIF |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
242 &video_out_gif89a, |
13551
2466b2ee99a8
move the file writers after vo_null so they don't get autoselected - following the same logic as in libao2
alex
parents:
13507
diff
changeset
|
243 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
244 #ifdef CONFIG_TGA |
10689 | 245 &video_out_tga, |
246 #endif | |
27385
2113bd9c6bd9
Rename preprocessor directives related to image libraries.
diego
parents:
27377
diff
changeset
|
247 #ifdef CONFIG_PNM |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
248 &video_out_pnm, |
13744
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
249 #endif |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
250 #ifdef CONFIG_MD5SUM |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
251 &video_out_md5sum, |
13744
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
252 #endif |
1 | 253 NULL |
254 }; | |
6069
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
255 |
17566
f580a7755ac5
Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents:
17423
diff
changeset
|
256 void list_video_out(void){ |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
257 int i=0; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
258 mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_AvailableVideoOutputDrivers); |
18237
4231482179b6
Get ride of the several if(identify) messy lines and rearangment of some of the output, both patches by Kiriuja mplayer-patches AT en-directo_net, his changes are barely unrelated, nevertheless Im commiting them thogeter just for the sake of my mental healt, I had both patches already applied on my local three
reynaldo
parents:
18234
diff
changeset
|
259 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_OUTPUTS\n"); |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
260 while (video_out_drivers[i]) { |
8148
5b39e79af5fe
removed get_info, using the same sheme as in libmpcodecs instead
alex
parents:
8013
diff
changeset
|
261 const vo_info_t *info = video_out_drivers[i++]->info; |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
262 mp_msg(MSGT_GLOBAL, MSGL_INFO,"\t%s\t%s\n", info->short_name, info->name); |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
263 } |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
18116
diff
changeset
|
264 mp_msg(MSGT_GLOBAL, MSGL_INFO,"\n"); |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
265 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
266 |
25219
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
24270
diff
changeset
|
267 const vo_functions_t* init_best_video_out(char** vo_list){ |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
268 int i; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
269 // first try the preferred drivers, with their optional subdevice param: |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
270 if(vo_list && vo_list[0]) |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
271 while(vo_list[0][0]){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
272 char* vo=strdup(vo_list[0]); |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
273 vo_subdevice=strchr(vo,':'); |
13507
ced94062bbed
Removal of vo_pgm and vo_md5, because they have been replaced by vo_pnm
ivo
parents:
13398
diff
changeset
|
274 if (!strcmp(vo, "pgm")) |
ced94062bbed
Removal of vo_pgm and vo_md5, because they have been replaced by vo_pnm
ivo
parents:
13398
diff
changeset
|
275 mp_msg(MSGT_CPLAYER, MSGL_ERR, MSGTR_VO_PGM_HasBeenReplaced); |
ced94062bbed
Removal of vo_pgm and vo_md5, because they have been replaced by vo_pnm
ivo
parents:
13398
diff
changeset
|
276 if (!strcmp(vo, "md5")) |
ced94062bbed
Removal of vo_pgm and vo_md5, because they have been replaced by vo_pnm
ivo
parents:
13398
diff
changeset
|
277 mp_msg(MSGT_CPLAYER, MSGL_ERR, MSGTR_VO_MD5_HasBeenReplaced); |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
278 if(vo_subdevice){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
279 vo_subdevice[0]=0; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
280 ++vo_subdevice; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
281 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
282 for(i=0;video_out_drivers[i];i++){ |
25219
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
24270
diff
changeset
|
283 const vo_functions_t* video_driver=video_out_drivers[i]; |
8148
5b39e79af5fe
removed get_info, using the same sheme as in libmpcodecs instead
alex
parents:
8013
diff
changeset
|
284 const vo_info_t *info = video_driver->info; |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
285 if(!strcmp(info->short_name,vo)){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
286 // name matches, try it |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
287 if(!video_driver->preinit(vo_subdevice)) |
10220 | 288 { |
289 free(vo); | |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
290 return video_driver; // success! |
10220 | 291 } |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
292 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
293 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
294 // continue... |
10220 | 295 free(vo); |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
296 ++vo_list; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
297 if(!(vo_list[0])) return NULL; // do NOT fallback to others |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
298 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
299 // now try the rest... |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
300 vo_subdevice=NULL; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
301 for(i=0;video_out_drivers[i];i++){ |
25219
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
24270
diff
changeset
|
302 const vo_functions_t* video_driver=video_out_drivers[i]; |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
303 if(!video_driver->preinit(vo_subdevice)) |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
304 return video_driver; // success! |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
305 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
306 return NULL; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
307 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
308 |
25219
e82ecde2cbd4
Mark several uses of vo_functions_t as const to stop some of the current
reimar
parents:
24270
diff
changeset
|
309 int config_video_out(const vo_functions_t *vo, uint32_t width, uint32_t height, |
22232 | 310 uint32_t d_width, uint32_t d_height, uint32_t flags, |
311 char *title, uint32_t format) { | |
312 panscan_init(); | |
313 aspect_save_orig(width,height); | |
314 aspect_save_prescale(d_width,d_height); | |
315 | |
22324
475c60dcd459
10, checked for the wrong thing. Do aspect scaling only in config_video_out
reimar
parents:
22249
diff
changeset
|
316 if (vo->control(VOCTRL_UPDATE_SCREENINFO, NULL) == VO_TRUE) { |
22232 | 317 aspect(&d_width,&d_height,A_NOZOOM); |
318 vo_dx = (int)(vo_screenwidth - d_width) / 2; | |
319 vo_dy = (int)(vo_screenheight - d_height) / 2; | |
320 geometry(&vo_dx, &vo_dy, &d_width, &d_height, | |
321 vo_screenwidth, vo_screenheight); | |
322 vo_dx += xinerama_x; | |
323 vo_dy += xinerama_y; | |
324 vo_dwidth = d_width; | |
325 vo_dheight = d_height; | |
22249
3000f296fecc
Fix 10 in r22250, do not use screendimensions if not set
reimar
parents:
22246
diff
changeset
|
326 } |
22232 | 327 |
22246 | 328 return vo->config(width, height, d_width, d_height, flags, title, format); |
22232 | 329 } |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
330 |
28137
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
331 /** |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
332 * \brief lookup an integer in a table, table must have 0 as the last key |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
333 * \param key key to search for |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
334 * \result translation corresponding to key or "to" value of last mapping |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
335 * if not found. |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
336 */ |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
337 int lookup_keymap_table(const struct keymap *map, int key) { |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
338 while (map->from && map->from != key) map++; |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
339 return map->to; |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
340 } |
28bf0d126da2
Add and use a special lookup function to do table-based translation to MPlayer keycodes.
reimar
parents:
28136
diff
changeset
|
341 |
27365
13c920fdf7f5
Change a bunch of video-output-specific preprocessor directives from a HAVE_
diego
parents:
27071
diff
changeset
|
342 #if defined(CONFIG_FBDEV) || defined(CONFIG_VESA) |
28136
a805c65b7665
Cosmetics: get rid of some tabs and trailing whitespace.
reimar
parents:
28119
diff
changeset
|
343 /* Borrowed from vo_fbdev.c |
7069 | 344 Monitor ranges related functions*/ |
345 | |
346 char *monitor_hfreq_str = NULL; | |
347 char *monitor_vfreq_str = NULL; | |
348 char *monitor_dotclock_str = NULL; | |
349 | |
350 float range_max(range_t *r) | |
351 { | |
352 float max = 0; | |
353 | |
354 for (/* NOTHING */; (r->min != -1 && r->max != -1); r++) | |
355 if (max < r->max) max = r->max; | |
356 return max; | |
357 } | |
358 | |
359 | |
360 int in_range(range_t *r, float f) | |
361 { | |
362 for (/* NOTHING */; (r->min != -1 && r->max != -1); r++) | |
363 if (f >= r->min && f <= r->max) | |
364 return 1; | |
365 return 0; | |
366 } | |
367 | |
368 range_t *str2range(char *s) | |
369 { | |
370 float tmp_min, tmp_max; | |
371 char *endptr = s; // to start the loop | |
372 range_t *r = NULL; | |
373 int i; | |
374 | |
375 if (!s) | |
376 return NULL; | |
377 for (i = 0; *endptr; i++) { | |
378 if (*s == ',') | |
379 goto out_err; | |
380 if (!(r = (range_t *) realloc(r, sizeof(*r) * (i + 2)))) { | |
18234
a107276371a8
Part 5 and final of otvos attila's oattila AT chello-hu mp_msg changes, with lots of corrections
reynaldo
parents:
18116
diff
changeset
|
381 mp_msg(MSGT_GLOBAL, MSGL_WARN,"can't realloc 'r'\n"); |
7069 | 382 return NULL; |
383 } | |
384 tmp_min = strtod(s, &endptr); | |
385 if (*endptr == 'k' || *endptr == 'K') { | |
386 tmp_min *= 1000.0; | |
387 endptr++; | |
388 } else if (*endptr == 'm' || *endptr == 'M') { | |
389 tmp_min *= 1000000.0; | |
390 endptr++; | |
391 } | |
392 if (*endptr == '-') { | |
393 tmp_max = strtod(endptr + 1, &endptr); | |
394 if (*endptr == 'k' || *endptr == 'K') { | |
395 tmp_max *= 1000.0; | |
396 endptr++; | |
397 } else if (*endptr == 'm' || *endptr == 'M') { | |
398 tmp_max *= 1000000.0; | |
399 endptr++; | |
400 } | |
401 if (*endptr != ',' && *endptr) | |
402 goto out_err; | |
403 } else if (*endptr == ',' || !*endptr) { | |
404 tmp_max = tmp_min; | |
405 } else | |
406 goto out_err; | |
407 r[i].min = tmp_min; | |
408 r[i].max = tmp_max; | |
409 if (r[i].min < 0 || r[i].max < 0) | |
410 goto out_err; | |
411 s = endptr + 1; | |
412 } | |
413 r[i].min = r[i].max = -1; | |
414 return r; | |
415 out_err: | |
416 if (r) | |
417 free(r); | |
418 return NULL; | |
419 } | |
420 | |
421 /* Borrowed from vo_fbdev.c END */ | |
422 #endif | |
423 |