Mercurial > mplayer.hg
annotate libvo/video_out.c @ 18049:77a3b0d11ca5
Limit the number of entires to the amount that does fit into the chunk.
the function need rewrite as it assumes quite many things that are not guaranteed by the specifications.
author | iive |
---|---|
date | Thu, 06 Apr 2006 20:04:02 +0000 |
parents | f580a7755ac5 |
children | d75953576ae4 |
rev | line source |
---|---|
7338
598c69a1480d
cosmetics - copyright msg removed, this file has nothing with mpeg2dec or
arpi
parents:
7326
diff
changeset
|
1 |
598c69a1480d
cosmetics - copyright msg removed, this file has nothing with mpeg2dec or
arpi
parents:
7326
diff
changeset
|
2 /* this file contains libvo's common functions, variables used by |
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" | |
14 | |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
15 #include "mp_msg.h" |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
16 #include "help_mp.h" |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
17 |
13787
e047e70a9767
Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents:
13744
diff
changeset
|
18 #include "osdep/shmem.h" |
1 | 19 |
5074 | 20 //int vo_flags=0; |
4736 | 21 |
388 | 22 // currect resolution/bpp on screen: (should be autodetected by vo_init()) |
23 int vo_depthonscreen=0; | |
24 int vo_screenwidth=0; | |
25 int vo_screenheight=0; | |
26 | |
5511 | 27 int vo_config_count=0; |
28 | |
388 | 29 // 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
|
30 int vo_dx=0; |
38a9cddd9e4d
added vo_dx,vo_dy (used currently only by X based outputs)
alex
parents:
4736
diff
changeset
|
31 int vo_dy=0; |
388 | 32 int vo_dwidth=0; |
33 int vo_dheight=0; | |
34 int vo_dbpp=0; | |
4981 | 35 |
10785 | 36 int vo_nomouse_input = 0; |
7539
56ea9db91251
-nograbpointer, based on old patch by Christian Ohm <chr.ohm@gmx.net>
arpi
parents:
7536
diff
changeset
|
37 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
|
38 int vo_doublebuffering = 1; |
4667 | 39 int vo_vsync = 0; |
4981 | 40 int vo_fs = 0; |
1269 | 41 int vo_fsmode = 0; |
6304
ee65527096c2
pan&scan support with -vo xv by ?? <mplayer@svennevid.net>
arpi
parents:
6069
diff
changeset
|
42 float vo_panscan = 0.0f; |
11542 | 43 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
|
44 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
|
45 int vo_refresh_rate=0; |
12371
c000f4c23efd
keepaspect and nokeepaspect are now useable by all vos
faust3
parents:
12129
diff
changeset
|
46 int vo_keepaspect=1; |
12912
1f6bb2356d18
add var vo_rootwin and -rootwin switch for mac osx
nplourde
parents:
12601
diff
changeset
|
47 int vo_rootwin=0; |
16968
e9d849bf8050
add a switch, slave command, and vo control to toggle borderless window.
joey
parents:
16181
diff
changeset
|
48 int vo_border=1; |
14207 | 49 int WinID = -1; |
388 | 50 |
2707 | 51 int vo_pts=0; // for hw decoding |
3201 | 52 float vo_fps=0; // for mp1e rte |
2707 | 53 |
1184 | 54 char *vo_subdevice = NULL; |
5431
013458752947
disabling direct rendering by default (too buggy and conflicts with osd/sub)
arpi
parents:
5296
diff
changeset
|
55 int vo_directrendering=0; |
6781 | 56 |
10988 | 57 int vo_colorkey = 0x0000ff00; // default colorkey is green |
11158
85f4534d1edb
Colorkeying can be disabled. Fbdev, svga and vesa vidix colorkeying support
alex
parents:
11017
diff
changeset
|
58 // (0xff000000 means that colorkey has been disabled) |
10988 | 59 |
1 | 60 // |
61 // Externally visible list of all vo drivers | |
62 // | |
63 extern vo_functions_t video_out_mga; | |
64 extern vo_functions_t video_out_xmga; | |
65 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
|
66 extern vo_functions_t video_out_xover; |
10316 | 67 extern vo_functions_t video_out_xvmc; |
1 | 68 extern vo_functions_t video_out_xv; |
69 extern vo_functions_t video_out_gl; | |
2124 | 70 extern vo_functions_t video_out_gl2; |
12 | 71 extern vo_functions_t video_out_dga; |
38 | 72 extern vo_functions_t video_out_fsdga; |
1 | 73 extern vo_functions_t video_out_sdl; |
74 extern vo_functions_t video_out_3dfx; | |
1979
6278f566cd91
tdfxfb yuv driver by Zeljko Stevanovic <zsteva@ptt.yu>
arpi
parents:
1871
diff
changeset
|
75 extern vo_functions_t video_out_tdfxfb; |
1 | 76 extern vo_functions_t video_out_null; |
2528 | 77 //extern vo_functions_t video_out_odivx; |
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
|
78 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
|
79 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
|
80 extern vo_functions_t video_out_bl; |
1 | 81 extern vo_functions_t video_out_syncfb; |
225 | 82 extern vo_functions_t video_out_fbdev; |
10763
7436a53876b0
vo_fbdev2 written by Joey Parrish with some minor modifications
alex
parents:
10689
diff
changeset
|
83 extern vo_functions_t video_out_fbdev2; |
286 | 84 extern vo_functions_t video_out_svga; |
528 | 85 extern vo_functions_t video_out_png; |
1130 | 86 extern vo_functions_t video_out_ggi; |
1511 | 87 extern vo_functions_t video_out_aa; |
12129 | 88 extern vo_functions_t video_out_caca; |
1871 | 89 extern vo_functions_t video_out_mpegpes; |
4599 | 90 extern vo_functions_t video_out_yuv4mpeg; |
7536
70c35cd5db1f
-vo directx driver by Sascha Sommer <saschasommer@freenet.de>
arpi
parents:
7435
diff
changeset
|
91 #ifdef HAVE_DIRECTX |
70c35cd5db1f
-vo directx driver by Sascha Sommer <saschasommer@freenet.de>
arpi
parents:
7435
diff
changeset
|
92 extern vo_functions_t video_out_directx; |
70c35cd5db1f
-vo directx driver by Sascha Sommer <saschasommer@freenet.de>
arpi
parents:
7435
diff
changeset
|
93 #endif |
6069
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
94 #ifdef HAVE_DXR2 |
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
95 extern vo_functions_t video_out_dxr2; |
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
96 #endif |
2645 | 97 extern vo_functions_t video_out_dxr3; |
5648 | 98 #ifdef HAVE_JPEG |
99 extern vo_functions_t video_out_jpeg; | |
100 #endif | |
6053 | 101 #ifdef HAVE_GIF |
102 extern vo_functions_t video_out_gif89a; | |
103 #endif | |
4561 | 104 #ifdef HAVE_VESA |
2244 | 105 extern vo_functions_t video_out_vesa; |
106 #endif | |
8013
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
107 #ifdef HAVE_DIRECTFB |
3275
38344371432f
vo DirectFB support by Jiri Svoboda <Jiri.Svoboda@seznam.cz>
arpi
parents:
3201
diff
changeset
|
108 extern vo_functions_t video_out_directfb; |
10047 | 109 #if DIRECTFBVERSION >= 915 |
8013
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
110 extern vo_functions_t video_out_dfbmga; |
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
111 #endif |
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
112 #endif |
4124 | 113 #ifdef CONFIG_VIDIX |
114 extern vo_functions_t video_out_xvidix; | |
10979
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
115 extern vo_functions_t video_out_winvidix; |
11017 | 116 extern vo_functions_t video_out_cvidix; |
4124 | 117 #endif |
9546
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
118 #ifdef HAVE_TDFX_VID |
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
119 extern vo_functions_t video_out_tdfx_vid; |
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
120 #endif |
10689 | 121 #ifdef HAVE_TGA |
122 extern vo_functions_t video_out_tga; | |
123 #endif | |
12120
56e4423f16be
Quartz/MacOSX video output module by Nicolas Plourde
alex
parents:
12021
diff
changeset
|
124 #ifdef MACOSX |
15347
18d404eebb28
do not define video_out_macosx if corevideo is not present
nplourde
parents:
15291
diff
changeset
|
125 #ifdef MACOSX_COREVIDEO |
15291 | 126 extern vo_functions_t video_out_macosx; |
15347
18d404eebb28
do not define video_out_macosx if corevideo is not present
nplourde
parents:
15291
diff
changeset
|
127 #endif |
12120
56e4423f16be
Quartz/MacOSX video output module by Nicolas Plourde
alex
parents:
12021
diff
changeset
|
128 extern vo_functions_t video_out_quartz; |
56e4423f16be
Quartz/MacOSX video output module by Nicolas Plourde
alex
parents:
12021
diff
changeset
|
129 #endif |
13744
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
130 #ifdef HAVE_PNM |
13397
6cfffb50ea42
This patch enables the compilation and linking of vo_pnm (the portable
ivo
parents:
12912
diff
changeset
|
131 extern vo_functions_t video_out_pnm; |
13744
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
132 #endif |
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
133 #ifdef HAVE_MD5SUM |
13398
ae4e34f267bb
This patch enables the compilation and linking of vo_md5sum to libvo.
ivo
parents:
13397
diff
changeset
|
134 extern vo_functions_t video_out_md5sum; |
13744
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
135 #endif |
4124 | 136 |
1 | 137 vo_functions_t* video_out_drivers[] = |
138 { | |
9546
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
139 #ifdef HAVE_TDFX_VID |
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
140 &video_out_tdfx_vid, |
8feb4bb5b334
vo tdfx vid, even faster than tdfxfb and that's just the beginning ;)
albeu
parents:
9380
diff
changeset
|
141 #endif |
8729
561aa9c850f7
Rearrange the vo and ao driver order to prefer the native drivers and give
diego
parents:
8148
diff
changeset
|
142 #ifdef HAVE_DIRECTX |
561aa9c850f7
Rearrange the vo and ao driver order to prefer the native drivers and give
diego
parents:
8148
diff
changeset
|
143 &video_out_directx, |
561aa9c850f7
Rearrange the vo and ao driver order to prefer the native drivers and give
diego
parents:
8148
diff
changeset
|
144 #endif |
12601 | 145 #ifdef MACOSX |
15347
18d404eebb28
do not define video_out_macosx if corevideo is not present
nplourde
parents:
15291
diff
changeset
|
146 #ifdef MACOSX_COREVIDEO |
15291 | 147 &video_out_macosx, |
15347
18d404eebb28
do not define video_out_macosx if corevideo is not present
nplourde
parents:
15291
diff
changeset
|
148 #endif |
12601 | 149 &video_out_quartz, |
150 #endif | |
1179 | 151 #ifdef HAVE_XMGA |
1 | 152 &video_out_xmga, |
153 #endif | |
1179 | 154 #ifdef HAVE_MGA |
1 | 155 &video_out_mga, |
156 #endif | |
157 #ifdef HAVE_SYNCFB | |
158 &video_out_syncfb, | |
159 #endif | |
17069 | 160 #ifdef HAVE_TDFXFB |
161 &video_out_tdfxfb, | |
162 #endif | |
1 | 163 #ifdef HAVE_3DFX |
164 &video_out_3dfx, | |
165 #endif | |
166 #ifdef HAVE_XV | |
167 &video_out_xv, | |
168 #endif | |
169 #ifdef HAVE_X11 | |
170 &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
|
171 &video_out_xover, |
1 | 172 #endif |
173 #ifdef HAVE_GL | |
10880
ba9557e864c0
vo_gl2 port to win32 patch by Tristan Seligmann <mithrandi-mplayer-dev-eng at mithrandi.za.net>
faust3
parents:
10785
diff
changeset
|
174 &video_out_gl, |
2124 | 175 &video_out_gl2, |
1 | 176 #endif |
12 | 177 #ifdef HAVE_DGA |
178 &video_out_dga, | |
1235 | 179 // &video_out_fsdga, |
12 | 180 #endif |
1 | 181 #ifdef HAVE_SDL |
182 &video_out_sdl, | |
183 #endif | |
1235 | 184 #ifdef HAVE_GGI |
185 &video_out_ggi, | |
186 #endif | |
234 | 187 #ifdef HAVE_FBDEV |
188 &video_out_fbdev, | |
10763
7436a53876b0
vo_fbdev2 written by Joey Parrish with some minor modifications
alex
parents:
10689
diff
changeset
|
189 &video_out_fbdev2, |
234 | 190 #endif |
286 | 191 #ifdef HAVE_SVGALIB |
192 &video_out_svga, | |
193 #endif | |
1511 | 194 #ifdef HAVE_AA |
195 &video_out_aa, | |
196 #endif | |
12129 | 197 #ifdef HAVE_CACA |
198 &video_out_caca, | |
199 #endif | |
6069
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
200 #ifdef HAVE_DXR2 |
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
201 &video_out_dxr2, |
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
202 #endif |
2645 | 203 #ifdef HAVE_DXR3 |
204 &video_out_dxr3, | |
205 #endif | |
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
|
206 #ifdef HAVE_ZR |
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
|
207 &video_out_zr, |
11390
32eb3dfe44c9
new zoran driver as discussed on the CVS list. Hardware passthrough is
rik
parents:
11158
diff
changeset
|
208 &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
|
209 #endif |
7326
ec3e58120e2a
extensible blinkenlights driver, can currently be used for the Arcade http://www.blinkenlights.de/arcade
rik
parents:
7069
diff
changeset
|
210 #ifdef HAVE_BL |
ec3e58120e2a
extensible blinkenlights driver, can currently be used for the Arcade http://www.blinkenlights.de/arcade
rik
parents:
7069
diff
changeset
|
211 &video_out_bl, |
ec3e58120e2a
extensible blinkenlights driver, can currently be used for the Arcade http://www.blinkenlights.de/arcade
rik
parents:
7069
diff
changeset
|
212 #endif |
4561 | 213 #ifdef HAVE_VESA |
2244 | 214 &video_out_vesa, |
215 #endif | |
3275
38344371432f
vo DirectFB support by Jiri Svoboda <Jiri.Svoboda@seznam.cz>
arpi
parents:
3201
diff
changeset
|
216 #ifdef HAVE_DIRECTFB |
38344371432f
vo DirectFB support by Jiri Svoboda <Jiri.Svoboda@seznam.cz>
arpi
parents:
3201
diff
changeset
|
217 &video_out_directfb, |
10047 | 218 #if DIRECTFBVERSION >= 915 |
8013
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
219 &video_out_dfbmga, |
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
220 #endif |
bd100a3d486f
Here's a new vo plugin that uses DirectFB. It's meant for Matrox G400
arpi
parents:
7867
diff
changeset
|
221 #endif |
10979
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
222 #ifdef CONFIG_VIDIX |
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
223 #ifdef HAVE_X11 |
4124 | 224 &video_out_xvidix, |
225 #endif | |
10979
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
226 #ifdef WIN32 |
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
227 &video_out_winvidix, |
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
228 #endif |
11017 | 229 &video_out_cvidix, |
10979
ea4426db0db5
new vidix vo modules for textmode console and windows
faust3
parents:
10880
diff
changeset
|
230 #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
|
231 &video_out_null, |
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
|
232 // should not be auto-selected |
17423
076ab46c63bd
prevent xvmc from been loaded before xv, and generally before any autoprobed output
iive
parents:
17069
diff
changeset
|
233 #ifdef HAVE_XVMC |
076ab46c63bd
prevent xvmc from been loaded before xv, and generally before any autoprobed output
iive
parents:
17069
diff
changeset
|
234 &video_out_xvmc, |
076ab46c63bd
prevent xvmc from been loaded before xv, and generally before any autoprobed output
iive
parents:
17069
diff
changeset
|
235 #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
|
236 &video_out_mpegpes, |
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
|
237 &video_out_yuv4mpeg, |
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
|
238 #ifdef HAVE_PNG |
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
|
239 &video_out_png, |
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 |
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
|
241 #ifdef HAVE_JPEG |
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
|
242 &video_out_jpeg, |
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 |
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
|
244 #ifdef HAVE_GIF |
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
|
245 &video_out_gif89a, |
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
|
246 #endif |
10689 | 247 #ifdef HAVE_TGA |
248 &video_out_tga, | |
249 #endif | |
13744
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
250 #ifdef HAVE_PNM |
13397
6cfffb50ea42
This patch enables the compilation and linking of vo_pnm (the portable
ivo
parents:
12912
diff
changeset
|
251 &video_out_pnm, |
13744
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
252 #endif |
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
253 #ifdef HAVE_MD5SUM |
13398
ae4e34f267bb
This patch enables the compilation and linking of vo_md5sum to libvo.
ivo
parents:
13397
diff
changeset
|
254 &video_out_md5sum, |
13744
d66e3d5865b8
Add --enable and --disable options for vo_pnm and vo_md5sum to configure.
ivo
parents:
13551
diff
changeset
|
255 #endif |
1 | 256 NULL |
257 }; | |
6069
8e88e92fe331
Initial support for dxr2. Based on patch from Tobias Diedrich <ranma@gmx.at>.
albeu
parents:
6053
diff
changeset
|
258 |
17566
f580a7755ac5
Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents:
17423
diff
changeset
|
259 void list_video_out(void){ |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
260 int i=0; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
261 mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_AvailableVideoOutputDrivers); |
15789
32d9c8a0a02b
adds some more -identify output, patch by kiriuja < mplayer DASH patches PAM en DASH directo POUM net>
gpoirier
parents:
15347
diff
changeset
|
262 if (identify) |
32d9c8a0a02b
adds some more -identify output, patch by kiriuja < mplayer DASH patches PAM en DASH directo POUM net>
gpoirier
parents:
15347
diff
changeset
|
263 mp_msg(MSGT_GLOBAL, 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
|
264 while (video_out_drivers[i]) { |
8148
5b39e79af5fe
removed get_info, using the same sheme as in libmpcodecs instead
alex
parents:
8013
diff
changeset
|
265 const vo_info_t *info = video_out_drivers[i++]->info; |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
266 printf("\t%s\t%s\n", info->short_name, info->name); |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
267 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
268 printf("\n"); |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
269 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
270 |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
271 vo_functions_t* init_best_video_out(char** vo_list){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
272 int i; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
273 // 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
|
274 if(vo_list && vo_list[0]) |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
275 while(vo_list[0][0]){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
276 char* vo=strdup(vo_list[0]); |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
277 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
|
278 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
|
279 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
|
280 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
|
281 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
|
282 if(vo_subdevice){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
283 vo_subdevice[0]=0; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
284 ++vo_subdevice; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
285 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
286 for(i=0;video_out_drivers[i];i++){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
287 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
|
288 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
|
289 if(!strcmp(info->short_name,vo)){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
290 // name matches, try it |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
291 if(!video_driver->preinit(vo_subdevice)) |
10220 | 292 { |
293 free(vo); | |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
294 return video_driver; // success! |
10220 | 295 } |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
296 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
297 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
298 // continue... |
10220 | 299 free(vo); |
7562
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
300 ++vo_list; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
301 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
|
302 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
303 // now try the rest... |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
304 vo_subdevice=NULL; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
305 for(i=0;video_out_drivers[i];i++){ |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
306 vo_functions_t* video_driver=video_out_drivers[i]; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
307 if(!video_driver->preinit(vo_subdevice)) |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
308 return video_driver; // success! |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
309 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
310 return NULL; |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
311 } |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
312 |
92188b57a062
video out driver list support (like -vc, example: -vo xmga,xv,x11,)
arpi
parents:
7539
diff
changeset
|
313 |
7069 | 314 #if defined(HAVE_FBDEV)||defined(HAVE_VESA) |
315 /* Borrowed from vo_fbdev.c | |
316 Monitor ranges related functions*/ | |
317 | |
318 char *monitor_hfreq_str = NULL; | |
319 char *monitor_vfreq_str = NULL; | |
320 char *monitor_dotclock_str = NULL; | |
321 | |
322 float range_max(range_t *r) | |
323 { | |
324 float max = 0; | |
325 | |
326 for (/* NOTHING */; (r->min != -1 && r->max != -1); r++) | |
327 if (max < r->max) max = r->max; | |
328 return max; | |
329 } | |
330 | |
331 | |
332 int in_range(range_t *r, float f) | |
333 { | |
334 for (/* NOTHING */; (r->min != -1 && r->max != -1); r++) | |
335 if (f >= r->min && f <= r->max) | |
336 return 1; | |
337 return 0; | |
338 } | |
339 | |
340 range_t *str2range(char *s) | |
341 { | |
342 float tmp_min, tmp_max; | |
343 char *endptr = s; // to start the loop | |
344 range_t *r = NULL; | |
345 int i; | |
346 | |
347 if (!s) | |
348 return NULL; | |
349 for (i = 0; *endptr; i++) { | |
350 if (*s == ',') | |
351 goto out_err; | |
352 if (!(r = (range_t *) realloc(r, sizeof(*r) * (i + 2)))) { | |
353 printf("can't realloc 'r'\n"); | |
354 return NULL; | |
355 } | |
356 tmp_min = strtod(s, &endptr); | |
357 if (*endptr == 'k' || *endptr == 'K') { | |
358 tmp_min *= 1000.0; | |
359 endptr++; | |
360 } else if (*endptr == 'm' || *endptr == 'M') { | |
361 tmp_min *= 1000000.0; | |
362 endptr++; | |
363 } | |
364 if (*endptr == '-') { | |
365 tmp_max = strtod(endptr + 1, &endptr); | |
366 if (*endptr == 'k' || *endptr == 'K') { | |
367 tmp_max *= 1000.0; | |
368 endptr++; | |
369 } else if (*endptr == 'm' || *endptr == 'M') { | |
370 tmp_max *= 1000000.0; | |
371 endptr++; | |
372 } | |
373 if (*endptr != ',' && *endptr) | |
374 goto out_err; | |
375 } else if (*endptr == ',' || !*endptr) { | |
376 tmp_max = tmp_min; | |
377 } else | |
378 goto out_err; | |
379 r[i].min = tmp_min; | |
380 r[i].max = tmp_max; | |
381 if (r[i].min < 0 || r[i].max < 0) | |
382 goto out_err; | |
383 s = endptr + 1; | |
384 } | |
385 r[i].min = r[i].max = -1; | |
386 return r; | |
387 out_err: | |
388 if (r) | |
389 free(r); | |
390 return NULL; | |
391 } | |
392 | |
393 /* Borrowed from vo_fbdev.c END */ | |
394 #endif | |
395 |