Mercurial > mplayer.hg
annotate DOCS/video.html @ 4339:4b231f3778a6
entudjam?
author | gabucino |
---|---|
date | Thu, 24 Jan 2002 17:14:09 +0000 |
parents | 82d33038b2d0 |
children | fa6f2467125c |
rev | line source |
---|---|
1612 | 1 <HTML> |
1704 | 2 <BODY BGCOLOR=white> |
3 | |
4 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
1612 | 5 |
2745 | 6 <P><B><A NAME=2.3.1>2.3.1. Video output devices</A></B></P> |
1612 | 7 |
1682 | 8 <TABLE BORDER=0> |
9 | |
1987 | 10 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>General:</B></P></TD><TR> |
1612 | 11 |
3027 | 12 <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, |
13 sans-serif" size=2><A HREF=#2.3.1.13>x11</A></TD><TD> </TD><TD><FONT | |
14 face="Verdana, Arial, Helvetica, sans-serif" size=2>X11 with optional SHM | |
15 extension</TD><TR> | |
16 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
17 size=2><A HREF=#2.3.1.2>xv</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
18 Helvetica, sans-serif" size=2>X11 using overlays with the Xvideo extension | |
19 (hardware YUV & scaling)</TD><TR> | |
20 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
21 size=2><A HREF=#2.3.1.10>gl</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
22 Helvetica, sans-serif" size=2>OpenGL renderer, so far works only with: | |
1682 | 23 <UL><LI>all cards with Utah-GLX |
24 <LI>Matrox cards with X/DRI >=4.0.3 | |
25 <LI>Radeon with X/DRI CVS</UL></TD><TR> | |
3027 | 26 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
3583 | 27 size=2><A HREF=#2.3.1.10>gl2</A></TD><TD></TD><TD><FONT face="Verdana, Arial, |
28 Helvetica, sans-serif" size=2>OpenGL renderer, multiple textures version</TD><TR> | |
29 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
3027 | 30 size=2><A HREF=#2.3.1.3>dga</A></TD><TD></TD><TD><FONT face="Verdana, Arial, |
31 Helvetica, sans-serif" size=2>X11 DGA extension</TD><TR> | |
32 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
33 size=2><A HREF=#2.3.1.6>fbdev</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
34 Helvetica, sans-serif" size=2>Output to general framebuffers</TD><TR> | |
35 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
36 size=2><A HREF=#2.3.1.5>svga</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
37 Helvetica, sans-serif" size=2>Output to SVGAlib</TD><TR> | |
38 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
39 size=2><A HREF=#2.3.1.4>sdl</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
40 Helvetica, sans-serif" size=2> | |
1682 | 41 <CODE>1.1.7:</CODE> supports software scaling<BR> |
42 <CODE>1.1.8:</CODE> supports Xvideo (hardware scaling/fullscreen)<BR> | |
43 <CODE>1.2.0:</CODE> supports AAlib (-vo aa is very recommended, see below!)</TD><TR> | |
3027 | 44 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
45 size=2><A HREF=#2.3.1.14-TODO>ggi</A></TD><TD></TD><TD><FONT face="Verdana, | |
46 Arial, Helvetica, sans-serif" size=2>similar to SDL</TD><TR> | |
47 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
48 size=2><A HREF=#2.3.1.11>aa</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
49 Helvetica, sans-serif" size=2>textmode rendering with AAlib</TD><TR> | |
50 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
51 size=2><a href=#2.3.1.12>vesa</a></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
52 Helvetica, sans-serif" size=2>Output to VESA BIOS.</TD><TR> | |
3583 | 53 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
4199 | 54 size=2><a href=#2.3.1.15>vidix</a></TD><TD></TD><TD><FONT face="Verdana, Arial, |
55 Helvetica, sans-serif" size=2>VIDeo Interface for *niX (this entry is not a | |
56 real driver, but an explanation of VIDIX)</TD><TR> | |
57 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
58 size=2><a href=#2.3.1.15>xvidix</a></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
59 Helvetica, sans-serif" size=2>VIDIX in X window</TD><TR> | |
60 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
3583 | 61 size=2>directfb</TD><TD></TD><TD><FONT face="Verdana, Arial, |
62 Helvetica, sans-serif" size=2>Direct Framebuffer Device</TD><TR> | |
1682 | 63 |
3027 | 64 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" |
65 size=2>Card specific:</B></P></TD><TR> | |
1612 | 66 |
3027 | 67 <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, |
68 sans-serif" size=2><A HREF=#2.3.1.7>mga</A></TD><TD> </TD><TD><FONT | |
69 face="Verdana, Arial, Helvetica, sans-serif" size=2>Matrox G200/G400 hardware | |
70 YUV overlay via the mga_vid device</TD><TR> | |
71 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
72 size=2><A HREF=#2.3.1.7>xmga</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
73 Helvetica, sans-serif" size=2>Matrox G200/G400 overlay (mga_vid) in X11 | |
74 window<BR> | |
1682 | 75 (<I>Xv emulation on X 3.3.x!</I>)</TD><TR> |
3027 | 76 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
77 size=2>syncfb</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, | |
78 sans-serif" size=2>Matrox G400 YUV support on framebuffer (obsoleted, use | |
79 mga/xmga)</TD><TR> | |
80 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
81 size=2>3dfx</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
82 size=2>Voodoo3/Banshee hardware YUV (/dev/3dfx) support (not yet tested, maybe | |
83 broken)</TD><TR> | |
84 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
85 size=2><A HREF=#2.3.1.9>tdfxfb</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
86 Helvetica, sans-serif" size=2>Voodoo3/Banshee hardware YUV support on tdfx | |
87 framebuffer (works!)</TD><TR> | |
4339 | 88 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
89 size=2><A HREF=#2.3.1.16>zr</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
90 Helvetica, sans-serif" size=2>Displaying on some hardware MJPEG capture/playback | |
91 boards (DC10, DC10+, LML33)</TD><TR> | |
1682 | 92 |
3027 | 93 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" |
94 size=2>Special:</B></P></TD><TR> | |
1612 | 95 |
3027 | 96 <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, |
97 sans-serif" size=2>png</TD><TD> </TD><TD><FONT face="Verdana, Arial, | |
98 Helvetica, sans-serif" size=2>PNG files output (use -z switch to set | |
99 compression)</TD><TR> | |
100 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
101 size=2>pgm</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
102 size=2>PGM files output (for testing purposes or ffmpeg encoding)</TD><TR> | |
103 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
104 size=2>md5</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
105 size=2>MD5sum output (for MPEG conformance tests)</TD><TR> | |
106 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
107 size=2>null</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
108 size=2>Null output (for speed tests/benchmarking)</TD><TR> | |
1682 | 109 </TABLE> |
1612 | 110 |
1682 | 111 <P>NOTE: <I>check the following subsections for details and requirements!</I></P> |
1612 | 112 |
113 | |
2745 | 114 <P><B><A NAME=2.3.1.1>2.3.1.1. Setting up MTRR</A></B></P> |
1612 | 115 |
1946 | 116 <P>It is VERY recommended to check if the MTRR registers are set up properly, |
117 because they can give a big performance boost.</P> | |
118 | |
119 <P>Do a '<CODE>cat /proc/mtrr</CODE>' :</P> | |
120 | |
121 <P><CODE> | |
122 --($:~)-- cat /proc/mtrr<BR> | |
123 reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR> | |
124 reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1<BR> | |
125 </CODE></P> | |
126 | |
127 <P>It's right, shows my Matrox G400 with 16Mb memory. I did this from | |
128 XFree 4.x.x , which sets up MTRR registers automatically.</P> | |
129 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
130 <P>If nothing worked, you have to do it manually. First, you have to find the base |
1946 | 131 address. |
1682 | 132 You have 3 ways to find it:</P> |
1612 | 133 |
1682 | 134 <P><UL> |
135 <LI>from X11 startup messages, for example: | |
136 <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
137 (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI> |
1682 | 138 <LI>from /proc/pci (use lspci -v command): |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
139 <P> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
140 <CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
141 <CODE>Memory at d8000000 (32-bit, prefetchable)</CODE> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
142 </P> |
1682 | 143 <LI>from mga_vid kernel driver messages (use dmesg): |
144 <P><CODE>mga_mem_base = d8000000</CODE></P> | |
145 </UL></P> | |
1612 | 146 |
1682 | 147 <P>Then let's find the memory size. This is very easy, just convert video ram |
148 size to hexadecimal, or use this table:</P> | |
1612 | 149 |
1682 | 150 <TABLE BORDER=0> |
151 <TD> </TD><TD>1 MB</TD><TD WIDTH=10%></TD><TD>0x100000</TD><TR> | |
152 <TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD><TR> | |
153 <TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD><TR> | |
154 <TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD><TR> | |
155 <TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD><TR> | |
156 <TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD><TR> | |
157 </TABLE> | |
1612 | 158 |
159 | |
1682 | 160 <P>You know base address and memory size, let's setup mtrr registers! |
161 For example, for the Matrox card above (base=0xd8000000) with 32MB | |
162 ram (size=0x2000000) just execute:</P> | |
1612 | 163 |
164 | |
1682 | 165 <P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> |
1612 | 166 |
167 | |
1682 | 168 <P>Not all CPUs support MTRRs. For example older K6-2's [around 266Mhz, |
169 stepping 0] doesn't support MTRR, but stepping 12's do ('<CODE>cat /proc/cpuinfo</CODE>' | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
170 to check it').</P> |
1612 | 171 |
2745 | 172 <P><B><A NAME=2.3.1.2>2.3.1.2. Xv</A></B></P> |
1612 | 173 |
1682 | 174 <P>Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines |
175 using the XVideo extension. This is what the option '-vo xv' uses. | |
176 In order to make this work, be sure to check the following:</P> | |
177 <P><UL> | |
178 <LI>You have to use XFree86 4.0.2 or newer (former versions don't have XVideo) | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
179 <LI>Your card actually supports hardware acceleration (modern cards do) |
1682 | 180 <LI>X loads the XVideo extension, it's something like this: |
1612 | 181 |
1682 | 182 <P><CODE> (II) Loading extension XVideo</CODE></P> |
183 <P>in /var/log/XFree86.0.log</P> | |
1612 | 184 |
1682 | 185 <P>NOTE: this loads only the XFree86's extension. In a good install, this is |
186 always loaded, and doesn't mean that the _card's_ XVideo support is loaded!</P> | |
1612 | 187 |
1682 | 188 <LI>Your card has Xv support under Linux. To check, try 'xvinfo', it is the |
189 part of the XFree86 distribution. It should display a long text, similar | |
190 to this: | |
191 <PRE> | |
1612 | 192 X-Video Extension version 2.2 |
193 screen #0 | |
194 Adaptor #0: "Savage Streams Engine" | |
195 number of ports: 1 | |
196 port base: 43 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
197 operations supported: PutImage |
1612 | 198 supported visuals: |
199 depth 16, visualID 0x22 | |
200 depth 16, visualID 0x23 | |
201 number of attributes: 5 | |
202 (...) | |
203 Number of image formats: 7 | |
204 id: 0x32595559 (YUY2) | |
205 guid: 59555932-0000-0010-8000-00aa00389b71 | |
206 bits per pixel: 16 | |
207 number of planes: 1 | |
208 type: YUV (packed) | |
209 id: 0x32315659 (YV12) | |
210 guid: 59563132-0000-0010-8000-00aa00389b71 | |
211 bits per pixel: 12 | |
212 number of planes: 3 | |
213 type: YUV (planar) | |
214 (...etc...) | |
1682 | 215 </PRE> |
1612 | 216 |
1682 | 217 <P>It must support YUY2 packed, and YV12 planar pixel formats to be |
218 usable with <B>MPlayer</B>.</P> | |
1612 | 219 |
1682 | 220 <LI>And finally, check if <B>MPlayer</B> was compiled with 'xv' support. |
221 ./configure prints this. | |
1612 | 222 |
1682 | 223 </UL></P> |
224 | |
2745 | 225 <P><B><A NAME=2.3.1.2.1>2.3.1.2.1. 3dfx cards</A></B></P> |
1612 | 226 |
1682 | 227 <P>Older 3dfx drivers were known to have problems with XVideo acceleration, |
228 it didn't support either YUY2 or YV12, and so. Verify that you have | |
3942 | 229 XFree86 version 4.1.0 or greater, it works ok with YUY2, but <B>crashes |
230 with YV12</B>! Thus, either wait for 4.2.0 or use the | |
1682 | 231 <A HREF="http://dri.sourceforge.net">DRI</A> cvs. |
232 If you experience strange effects using -vo xv, try SDL (it has XVideo too) | |
2745 | 233 and see if it helps. Check the <A HREF="#2.3.1.4">SDL section</A> for details.</P> |
1612 | 234 |
2745 | 235 <P><B>OR</B>, try the NEW -vo tdfxfb driver! See the <A HREF=#2.3.1.9>2.3.1.9</A> |
1992 | 236 section!</P> |
1612 | 237 |
2865 | 238 |
2745 | 239 <P><B><A NAME=2.3.1.2.2>2.3.1.2.2. S3 cards</A></B></P> |
1682 | 240 |
241 <P>S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 | |
3942 | 242 or greater (in case of image problems, try 16bpp). As for S3 Virge.. there is |
243 xv support, but the card itself is very slow, so you better sell it.</P> | |
1682 | 244 |
3027 | 245 <P><B>NOTE</B>: Savage cards have a slow YV12 image displaying capability (it needs |
2883 | 246 to do YV12->YUY2 conversion, because the Savage hardware can't display YV12). |
247 So when this documentation says at some point "this has YV12 output use this, | |
3027 | 248 it's faster", it's not sure. Try.</P> |
2865 | 249 |
250 | |
2745 | 251 <P><B><A NAME=2.3.1.2.3>2.3.1.2.3. nVidia cards</A></B></P> |
1612 | 252 |
3938 | 253 <P>nVidia isn't a very good choice under Linux (according to NVidia, this |
254 is <A HREF="users_against_developers.html#nvidia">not true</A>).. You'll have to use the | |
3290 | 255 binary closed-source nVidia driver, available at nVidia's website. The standard XFree86 |
1682 | 256 driver doesn't support XVideo for these cards, due to nVidia's closed |
257 sources/specifications.</P> | |
1612 | 258 |
3290 | 259 <P>As far as I know the latest XFree86 driver contains XVideo support for |
260 Geforce 2 and 3.</P> | |
261 | |
1682 | 262 <P><UL><LI>Riva128 cards don't have XVideo support even with the nvidia driver :( |
263 Complain to NVidia.</UL></P> | |
1612 | 264 |
265 | |
2745 | 266 <P><B><A NAME=2.3.1.2.4>2.3.1.2.4. ATI cards</A></B></P> |
1612 | 267 |
1920 | 268 <P> |
4177 | 269 <LI>The <A HREF="http://www.linuxvideo.org/gatos">GATOS driver</A> (which you |
270 should use, unless you have Rage128 or Radeon) has VSYNC enabled by default. It | |
271 means that decoding speed (!) is synced to the monitor's refresh rate. If | |
272 playing seems to be slow, try disabling VSYNC somehow, or set refresh rate to | |
273 n*(fps of the movie) Hz.</LI> | |
1920 | 274 |
275 <LI>Radeon VE - currently only XFree86 CVS has driver for this card, version | |
3027 | 276 4.1.0 doesn't. And no TV out support. Of course with <B>MPlayer</B> you can |
277 happily get <B>accelerated</B> display, with or without <B>TV output</B>, and | |
278 no libraries or X are needed. Read <a href=#2.3.1.12>VESA driver</a> and <A | |
3053 | 279 HREF=#2.3.1.14>Radeon video overlay</A> sections).</LI> </P> |
1612 | 280 |
281 | |
2745 | 282 <P><B><A NAME=2.3.1.2.5>2.3.1.2.5. NeoMagic cards</A></B></P> |
1922
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
283 |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
284 <P> |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
285 These cards can be found in many laptops. Under Linux, their peak is only DGA. |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
286 Unfortunately, the DGA driver in X 4.1.0 doesn't work, you'll have to wait for |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
287 4.2.0, or download a modified driver for 4.0.3 or 4.1.0 from here : |
2614 | 288 <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver">http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver</A> |
1922
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
289 (there is also the patch to the driver's source).<BR> |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
290 Drivers provided by <A HREF="mailto:tomee@cpi.pl">Tomek Jarzynka</A>. |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
291 </P> |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
292 |
3794 | 293 <P><B><A NAME=2.3.1.2.6>2.3.1.2.6. Trident cards</A></B></P> |
294 | |
295 <P>If you want to use xv with a trident card, provided that it doesn't | |
296 work with 4.1.0, try the latest cvs of Xfree or wait for Xfree 4.2.0. | |
297 The latest cvs adds support for fullscreen xv support with the | |
298 Cyberblade XP card.</P> | |
1922
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
299 |
2745 | 300 <P><B><A NAME=2.3.1.3>2.3.1.3. DGA</A></B></P> |
1612 | 301 |
2745 | 302 <P><B><A NAME=2.3.1.3.1>2.3.1.3.1. Summary</A></B></P> |
1612 | 303 |
1682 | 304 <P>This document tries to explain in some words what DGA is in general and |
305 what the DGA video output driver for mplayer can do (and what it can't).</P> | |
1612 | 306 |
307 | |
2745 | 308 <P><B><A NAME=2.3.1.3.2>2.3.1.3.2. What is DGA</A></B></P> |
1612 | 309 |
1682 | 310 <P>DGA is short for Direct Graphics Access and is a means for a program to |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
311 bypass the X-Server and directly modifying the framebuffer memory. |
1682 | 312 Technically spoken this happens by mapping the framebuffer memory into |
313 the memory range of your process. This is allowed by the kernel only | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
314 if you have superuser privileges. You can get these either by logging in |
1682 | 315 as root or by setting the suid bit on the mplayer excecutable (NOT |
316 recommended!).</P> | |
1612 | 317 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
318 <P>There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was |
1682 | 319 introduced with XFree 4.0.1.</P> |
1612 | 320 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
321 <P>DGA1 provides only direct framebuffer access as described above. For |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
322 switching the resolution of the video signal you have to rely on the |
1682 | 323 XVidMode extension.</P> |
1612 | 324 |
1682 | 325 <P>DGA2 incorporates the features of XVidMode extension and also allows |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
326 switching the depth of the display. So you may, although basically |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
327 running a 32 bit depth XServer, switch to a depth of 15 bits and vice |
1682 | 328 versa. </P> |
1612 | 329 |
1682 | 330 <P>However DGA has some drawbacks. It seems it is somewhat dependent on the |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
331 graphics chip you use and on the implementation of the XServer's video |
1682 | 332 driver that controls this chip. So it does not work on every system ...</P> |
1612 | 333 |
334 | |
2745 | 335 <P><B><A NAME=2.3.1.3.3>2.3.1.3.3. Installing DGA support for MPlayer</A></B></P> |
1682 | 336 |
337 <P>First make sure X loads the DGA extension, see in /var/log/XFree86.0.log:</P> | |
338 | |
339 <P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> | |
340 | |
341 <P>See, XFree86 4.0.x or greater is VERY RECOMMENDED! | |
342 <B>MPlayer</B>'s DGA driver is autodetected on ./configure, or you can force it | |
343 with --enable-dga.</P> | |
1612 | 344 |
1682 | 345 <P>If the driver couldn't switch to a smaller resolution, experiment with |
346 switches -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that | |
347 the movie fits in. There is no converter right now.. :(</P> | |
1612 | 348 |
1682 | 349 <P>Become ROOT. DGA needs root access to be able to write directly video memory. |
350 If you want to run it as user, then install <B>MPlayer</B> SUID root:</P> | |
1612 | 351 |
1682 | 352 <P><CODE> |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
353 chown root /usr/local/bin/mplayer<BR> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
354 chmod 750 /usr/local/bin/mplayer<BR> |
1686 | 355 chmod +s /usr/local/bin/mplayer</CODE></P> |
1612 | 356 |
357 | |
1682 | 358 <P>Now it works as a simple user, too.</P> |
1612 | 359 |
360 | |
1682 | 361 <P><B>!!!! BUT STAY TUNED !!!!</B><BR> |
362 This is a <B>BIG</B> security risk! Never do this on a server or on a computer | |
363 can be accessed by more people than only you because they can gain root | |
364 privilegies through suid root mplayer.<BR> | |
365 <B>!!!! SO YOU HAVE BEEN WARNED ... !!!!</B></P> | |
366 | |
367 <P>Now use '-vo dga' option, and there you go! (hope so:) | |
368 You should also try if the '-vo sdl:dga' option works for you! It's much | |
369 faster!!!</P> | |
370 | |
2745 | 371 <P><B><A NAME=2.3.1.3.4>2.3.1.3.4. Resolution switching</A></B></P> |
1682 | 372 |
373 <P>The DGA driver allows for switching the resolution of the output signal. | |
374 This avoids the need for doing (slow) software scaling and at the same | |
375 time provides a fullscreen image. Ideally it would switch to the exact | |
376 resolution (except for honouring aspect ratio) of the video data, but the | |
1686 | 377 XServer only allows switching to resolutions predefined in |
1682 | 378 <CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> for XFree 4.0.X respectively). |
379 Those are defined by so-called modelines and depend on the capabilites | |
380 of your video hardware. The XServer scans this config file on startup and | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
381 disables the modelines not suitable for your hardware. You can find |
1682 | 382 out which modes survive with the X11 log file. It can be found at: |
383 <CODE>/var/log/XFree86.0.log</CODE>.</P> | |
384 <P>See appendix A for some sample modeline definitions.</P> | |
385 | |
2745 | 386 <P><B><A NAME=2.3.1.3.5>2.3.1.3.5. DGA & MPlayer</A></B></P> |
1612 | 387 |
1682 | 388 <P>DGA is used in two places with <B>MPlayer</B>: The SDL driver can be made to make |
389 use of it (-vo sdl:dga) and within the DGA driver (-vo dga). | |
390 The above said is true for both; in the following sections I'll explain | |
391 how the DGA driver for <B>MPlayer</B> works.</P> | |
1612 | 392 |
2745 | 393 <P><B><A NAME=2.3.1.3.6>2.3.1.3.6. Features of the DGA driver</A></B></P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
394 |
1682 | 395 <P>The DGA driver is invoked by specifying -vo dga at the command line. |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
396 The default behaviour is to switch to a resolution matching the original |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
397 resolution of the video as close as possible. It deliberately ignores the |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
398 -vm and -fs switches (enabling of video mode switching and fullscreen) - |
1682 | 399 it always tries to cover as much area of your screen as possible by switching |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
400 the video mode, thus refraining to use a single additional cycle of your CPU |
1682 | 401 to scale the image. |
402 If you don't like the mode it chooses you may force it to choose the mode | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
403 matching closest the resolution you specify by -x and -y. |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
404 By providing the -v option, the DGA driver will print, among a lot of other |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
405 things, a list of all resolutions supported by your current XF86-Config |
1682 | 406 file. |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
407 Having DGA2 you may also force it to use a certain depth by using the -bpp |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
408 option. Valid depths are 15, 16, 24 and 32. It depends on your hardware |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
409 whether these depths are natively supported or if a (possibly slow) |
1682 | 410 conversion has to be done.</P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
411 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
412 <P>If you should be lucky enough to have enough offscreen memory left to |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
413 put a whole image there, the DGA driver will use doublebuffering, which |
1682 | 414 results in much smoother movie replaying. It will tell you whether double- |
415 buffering is enabled or not.</P> | |
1612 | 416 |
1682 | 417 <P>Doublebuffering means that the next frame of your video is being drawn in |
418 some offscreen memory while the current frame is being displayed. When the | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
419 next frame is ready, the graphics chip is just told the location in memory |
1682 | 420 of the new frame and simply fetches the data to be displayed from there. |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
421 In the meantime the other buffer in memory will be filled again with new |
1682 | 422 video data.</P> |
423 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
424 Doublebuffering may be switched on by using the option -double and may be |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
425 disabled with -nodouble. Current default option is to disable |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
426 doublebuffering. When using the DGA driver, onscreen display (OSD) only |
1682 | 427 works with doublebuffering enabled. However, enabling doublebuffering may |
428 result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of | |
429 CPU time!) depending on the implementation of DGA for your hardware.</P> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
430 |
1682 | 431 |
2745 | 432 <P><B><A NAME=2.3.1.3.7>2.3.1.3.7. Speed issues</A></B></P> |
1682 | 433 |
434 <P>Generally spoken, DGA framebuffer access should be at least as fast as using | |
435 the X11 driver with the additional benefit of getting a fullscreen image. | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
436 The percentage speed values printed by mplayer have to be interpreted with |
1682 | 437 some care, as for example, with the X11 driver they do not include the time |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
438 used by the X-Server needed for the actual drawing. Hook a terminal to a |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
439 serial line of your box and start top to see what is really going on in your |
1682 | 440 box ...</P> |
441 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
442 <P>Generally spoken, the speedup done by using DGA against 'normal' use of X11 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
443 highly depends on your graphics card and how well the X-Server module for it |
1682 | 444 is optimized.</P> |
445 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
446 <P>If you have a slow system, better use 15 or 16bit depth since they require |
1682 | 447 only half the memory bandwidth of a 32 bit display.</P> |
1612 | 448 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
449 <P>Using a depth of 24bit is even a good idea if your card natively just supports |
1682 | 450 32 bit depth since it transfers 25% less data compared to the 32/32 mode.</P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
451 |
1682 | 452 <P>I've seen some avi files already be replayed on a Pentium MMX 266. AMD K6-2 |
453 CPUs might work at 400 MHZ and above.</P> | |
1612 | 454 |
2745 | 455 <P><B><A NAME=2.3.1.3.8>2.3.1.3.8. Known bugs</A></B></P> |
1682 | 456 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
457 <P>Well, according to some developpers of XFree, DGA is quite a beast. They |
1682 | 458 tell you better not to use it. Its implementation is not always flawless |
459 with every chipset driver for XFree out there.</P> | |
1612 | 460 |
1682 | 461 <P><UL> |
462 <LI>with XFree 4.0.3 and nv.o there is a bug resulting in strange colors | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
463 <LI>ATI driver requires to switch mode back more than once after finishing |
1682 | 464 using of DGA |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
465 <LI>some drivers simply fail to switch back to normal resolution (use |
1682 | 466 Ctrl-Alt-Keypad +, - to switch back manually) |
467 <LI>some drivers simply display strange colors | |
468 <LI>some drivers lie about the amount of memory they map into the process's | |
469 address space, thus vo_dga won't use doublebuffering (SIS?) | |
470 <LI>some drivers seem to fail to report even a single valid mode. In this | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
471 case the DGA driver will crash telling you about a nonsense mode of |
1682 | 472 100000x100000 or the like ... |
473 <LI>OSD only works with doublebuffering enabled | |
474 </UL></P> | |
475 | |
2745 | 476 <P><B><A NAME=2.3.1.3.9>2.3.1.3.9. Future work</A></B></P> |
1682 | 477 |
478 <P><UL><LI>use of the new X11 render interface for OSD | |
479 <LI>where is my TODO list ???? :-(((</UL></P> | |
1612 | 480 |
481 | |
2745 | 482 <P><B><A NAME=2.3.1.3.A>2.3.1.3.A. Some modelines</A></B></P> |
1612 | 483 |
1682 | 484 <PRE> |
1612 | 485 Section "Modes" |
486 Identifier "Modes[0]" | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
487 Modeline "800x600" 40 800 840 968 1056 600 601 605 628 |
1612 | 488 Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
489 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 |
1612 | 490 Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan |
491 Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 | |
492 Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan | |
493 Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan | |
494 EndSection | |
1682 | 495 </PRE> |
1612 | 496 |
1682 | 497 <P>These entries work fine with my Riva128 chip, using nv.o XServer driver |
498 module.</P> | |
1612 | 499 |
500 | |
2745 | 501 <P><B><A NAME=2.3.1.3.B>2.3.1.3.B. Bug Reports</A></B></P> |
1612 | 502 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
503 <P>If you experience troubles with the DGA driver please feel free to file |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
504 a bug report to me (e-mail address below). Please start mplayer with the |
1682 | 505 -v option and include all lines in the bug report that start with vo_dga:</P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
506 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
507 <P>Please do also include the version of X11 you are using, the graphics card |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
508 and your CPU type. The X11 driver module (defined in XF86-Config) might |
1682 | 509 also help. Thanks!</P> |
1612 | 510 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
511 |
1682 | 512 <P><I>Acki (acki@acki-netz.de, www.acki-netz.de)</I></P> |
1612 | 513 |
514 | |
2745 | 515 <P><B><A NAME=2.3.1.4>2.3.1.4. SDL</A></B></P> |
1612 | 516 |
3988 | 517 <P>SDL (Simple Directmedia Layer) is basically an unified video/audio |
518 interface. Programs that use it know only about SDL, and not about what video | |
519 or audio driver does SDL actually use. For example a Doom port using SDL can | |
520 run on svgalib, aalib, X, fbdev, and others, you only have to specify the | |
521 (for example) video driver to use with the SDL_VIDEODRIVER environment | |
522 variable. Well, in theory.</P> | |
523 | |
524 <P>With <B>MPlayer</B>, we used its X11 driver's software scaler ability for | |
525 cards/drivers that doesn't support XVideo, until we made our own (faster, | |
526 nicer) software scaler. Also we used its aalib output, but now we have ours | |
527 which is more comfortable. Its DGA mode was better than ours, until | |
528 recently. Get it now? :)</P> | |
529 | |
530 <P>It also helps with some buggy drivers/cards if the video is jerky | |
531 (not slow system problem), or audio is lagging.</P> | |
532 | |
1682 | 533 <P>Here are some notes about SDL out in <B>MPlayer</B>.</P> |
1612 | 534 |
535 | |
536 | |
1682 | 537 <P><TABLE BORDER=0> |
1987 | 538 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>There are several commandline switches for SDL:</B></P></TD><TR> |
539 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vo sdl:name</TD><TD> </TD><TD> | |
540 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>specifies sdl video driver to use (ie. aalib, dga, x11)</TD><TR> | |
541 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-ao sdl:name</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>specifies sdl audio driver to use (ie. dsp, | |
1682 | 542 esd, arts)</TD><TR> |
1987 | 543 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-noxv</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>disables Xvideo hardware acceleration</TD><TR> |
544 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-forcexv</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>tries to force Xvideo acceleration</TD><TR> | |
1612 | 545 |
1987 | 546 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>SDL Keys:</B></P></TD><TR> |
1612 | 547 |
1987 | 548 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>F</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>toggles fullscreen/windowed mode</TD><TR> |
549 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>C</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>cycles available fullscreen modes</TD><TR> | |
550 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>W/S</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>mappings for * and / (mixer control)</TD><TR> | |
1612 | 551 |
1682 | 552 </TABLE></P> |
1612 | 553 |
1682 | 554 <P><B>KNOWN BUGS:</B></P> |
555 <P><UL><LI>Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa !) | |
556 It's bug in SDL, I can't change it (tested with SDL 1.2.1). | |
557 </UL></P> | |
1612 | 558 |
2745 | 559 <P><B><A NAME=2.3.1.5>2.3.1.5. SVGAlib</A></B></P> |
1682 | 560 |
561 <P>If you don't have X, you can use the SVGAlib target! Be sure not to use the | |
562 -fs switch, since it toggles the usage of the software scaler, and it's | |
563 SLOOOW now, unless you have a real fast CPU (and/or MTRR?). :(</P> | |
1612 | 564 |
1682 | 565 <P>Of course you'll have to install svgalib and its development package in |
566 order for <B>MPlayer</B> build its SVGAlib driver (autodetected, but can be | |
567 forced), and don't forget to edit /etc/vga/libvga.config to suit your | |
568 card & monitor.</P> | |
1612 | 569 |
2745 | 570 <P><B><A NAME=2.3.1.6>2.3.1.6. Framebuffer output (FBdev)</A></B></P> |
1682 | 571 |
572 <P>Whether to build the FBdev target is autodetected during ./configure . | |
573 Read the framebuffer documentation in the kernel sources | |
574 (Documentation/fb/*) for info on how to enable it, etc.. !</P> | |
1612 | 575 |
1682 | 576 <P>If your card doesn't support VBE 2.0 standard (older ISA/PCI |
577 cards, such as S3 Trio64), only VBE 1.2 (or older?) : | |
578 Well, VESAfb is still available, but you'll have to load SciTech Display | |
579 Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or | |
580 whatever. And don't forget to register your UniVBE ;))</P> | |
1612 | 581 |
1682 | 582 <P>The FBdev output takes some additional parameters above the others:</P> |
1612 | 583 |
1682 | 584 <P><TABLE BORDER=0> |
1987 | 585 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fb</TD><TD> </TD><TD> |
586 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>specify the framebuffer device to use (/dev/fd0)</TD><TR> | |
587 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fbmode</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>mode name to use (according to /etc/fb.modes)</TD><TR> | |
588 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fbmodeconfig</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> config file of modes (default /etc/fb.modes)</TD><TR> | |
589 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_hfreq</TD><TD></TD><TD ROWSPAN=3><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>IMPORTANT values, see example.conf</TD><TR> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
590 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_vfreq</TD><TD></TD><TR> |
1987 | 591 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_dotclock</TD><TD></TD><TR> |
1682 | 592 </TABLE></P> |
1612 | 593 |
1682 | 594 <P>If you want to change to a specific mode, then use</P> |
1612 | 595 |
1682 | 596 <P><CODE> mplayer -vm -fbmode (NameOfMode) filename</CODE></P> |
1612 | 597 |
1682 | 598 <P><UL><LI><B>-vm</B> alone will choose the most suitable mode from /etc/fb.modes . Can be |
599 used together with -x and -y options too. The -flip option is supported only | |
600 if the movie's pixel format matches the video mode's pixel format. | |
601 Pay attention to the bpp value, fbdev driver tries to use the current, | |
2507 | 602 or if you specify the -bpp option, then that.</LI> |
1682 | 603 <LI><B>-zoom</B> option isn't supported (software scaling is slow). -fs option |
2507 | 604 isn't supported. You can't use 8bpp (or less) modes.</LI> |
605 <LI>you possibly want to turn the cursor off : <CODE>echo -e '\033[?25l'</CODE><BR> | |
606 and the screen saver: <CODE>setterm -blank 0</CODE><BR> | |
607 To turn the cursor back on : <CODE>echo -e '\033[?25h'</CODE> | |
608 </UL></P> | |
1612 | 609 |
1682 | 610 <P>NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer, |
611 and don't ask for it, since it's not an <B>MPlayer</B> limitation.</P> | |
1612 | 612 |
2745 | 613 <P><B><A NAME=2.3.1.7>2.3.1.7. Matrox framebuffer (mga_vid)</A></B></P> |
1612 | 614 |
1992 | 615 <P>This section is about the Matrox G200/G400/G450/G550 BES (Back-End Scaler) |
1682 | 616 support, the mga_vid kernel driver. It's active developed by me (A'rpi), and |
617 it has hardware VSYNC support with triple buffering. It works on both | |
618 framebuffer console and under X.</P> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
619 |
1682 | 620 <P>To use it, you first have to compile mga_vid.o:</P> |
1612 | 621 |
1682 | 622 <P><CODE> cd drivers<BR> |
623 make</CODE></P> | |
1612 | 624 |
1682 | 625 <P>Then create /dev/mga_vid device:</P> |
1612 | 626 |
1682 | 627 <P><CODE> mknod /dev/mga_vid c 178 0</CODE></P> |
1612 | 628 |
1682 | 629 <P>and load the driver with</P> |
630 | |
631 <P><CODE> insmod mga_vid.o</CODE></P> | |
1612 | 632 |
1682 | 633 <P>You should verify the memory size detection using the 'dmesg' command. If |
634 it's bad, use the mga_ram_size option (rmmod mga_vid first), specify card's | |
635 memory size in MB:</P> | |
1612 | 636 |
1682 | 637 <P><CODE> insmod mga_vid.o mga_ram_size=16</CODE></P> |
1612 | 638 |
3664
f3a20477f042
added "copy mga_vid to /lib/modules" to install instructions
gabucino
parents:
3583
diff
changeset
|
639 <P>To make it load/unload automatically when needed, first insert the following line |
1682 | 640 at the end of /etc/modules.conf:</P> |
1612 | 641 |
1682 | 642 <P><CODE> alias char-major-178 mga_vid</CODE></P> |
1612 | 643 |
3664
f3a20477f042
added "copy mga_vid to /lib/modules" to install instructions
gabucino
parents:
3583
diff
changeset
|
644 <P>Then copy the <CODE>mga_vid.o</CODE> module to the appropriate place under |
f3a20477f042
added "copy mga_vid to /lib/modules" to install instructions
gabucino
parents:
3583
diff
changeset
|
645 <CODE>/lib/modules/<kernel version>/somewhere</CODE>.</P> |
f3a20477f042
added "copy mga_vid to /lib/modules" to install instructions
gabucino
parents:
3583
diff
changeset
|
646 |
1682 | 647 <P>Then run</P> |
1612 | 648 |
1682 | 649 <P><CODE> depmod -a</CODE></P> |
1612 | 650 |
1682 | 651 <P>Now you have to (re)compile <B>MPlayer</B>, ./configure will detect /dev/mga_vid |
652 and build the 'mga' driver. Using it from <B>MPlayer</B> goes by '-vo mga' if | |
653 you have matroxfb console, or '-vo xmga' under XFree86 3.x.x or 4.x.x.</P> | |
654 | |
2108 | 655 <P>The mga_vid driver cooperates with Xv.</P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
656 |
1612 | 657 |
2745 | 658 <P><B><A NAME=2.3.1.8>2.3.1.8. SiS 6326 framebuffer (sis_vid)</A></B></P> |
1682 | 659 |
660 <P>SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver</P> | |
1612 | 661 |
1682 | 662 <P>Its interface should be compatible with the mga_vid, but the driver was not |
663 updated after the mga_vid changes, so it's outdated now. Volunteers | |
664 needed to test it and bring the code up-to-date.</P> | |
1612 | 665 |
2745 | 666 <P><B><A NAME=2.3.1.9>2.3.1.9. 3dfx YUV support (tdfxfb)</A></B></P> |
1612 | 667 |
1992 | 668 <P>This driver uses the kernel's tdfx framebuffer driver to play movies with |
669 YUV acceleration. You'll need a kernel with tdfxfb support, and recompile with | |
670 <CODE>./configure --enable-tdfxfb</CODE></P> | |
1612 | 671 |
2745 | 672 <P><B><A NAME=2.3.1.10>2.3.1.10. OpenGL output</A></B></P> |
1612 | 673 |
1682 | 674 <P><B>MPlayer</B> support displaying movies using OpenGL. Unfortunately, not all |
675 drivers support this ability. For example the Utah-GLX drivers | |
676 (for XFree86 3.3.6) have it, with all cards. | |
677 See <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> | |
678 for details about how to install it.</P> | |
1612 | 679 |
1682 | 680 <P>XFree86(DRI) >= 4.0.3 supports it only with Matrox, and Radeon cards. |
681 See <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> for download, | |
682 and installation instructions.</P> | |
1612 | 683 |
2745 | 684 <P><B><A NAME=2.3.1.11>2.3.1.11. AAlib - text mode displaying</B></P> |
1612 | 685 |
1682 | 686 <P><B>AAlib</B> is a library for displaying graphics in text mode, using powerful |
687 ASCII renderer. There are LOTS of programs already supporting it, like Doom, | |
688 Quake, etc. MPlayer contains a very usable driver for it. | |
689 If ./configure detects aalib installed, the aalib libvo driver will be built.</P> | |
1612 | 690 |
1682 | 691 <P><TABLE BORDER=0> |
1987 | 692 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>You can use some keys in the AA Window to change rendering options:</B></P></TD><TR> |
693 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>1</TD><TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>decrease contrast</TD><TR> | |
694 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>2</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>increase contrast</TD><TR> | |
695 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>3</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>decrease brightness</TD><TR> | |
696 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>4</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>increase brightness</TD><TR> | |
697 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>5</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>switch fast rendering on/off</TD><TR> | |
698 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>6</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>set dithering mode (none, error distribution, floyd steinberg)</TD><TR> | |
699 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>7</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>invert image</TD><TR> | |
700 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>a</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>toggles between aa and mplayer control)</TD><TR> | |
1682 | 701 |
1987 | 702 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>The following command line options can be used:</B></P></TD><TR> |
1612 | 703 |
1987 | 704 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaosdcolor=V</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>change osd color</TD><TR> |
705 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aasubcolor=V</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>change subtitle color</TD><TR> | |
706 <TD COLSPAN=3></TD><TD><P><I><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>where V can be: (0/normal, 1/dark, 2/bold, 3/boldfont, 4/reverse, 5/special)</P></TD><TR> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
707 |
1987 | 708 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>AAlib itselves provides a large sum of options. |
1682 | 709 Here are some important:</P></B></TD><TR> |
710 | |
1987 | 711 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aadriver</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>set recommended aa driver (X11, curses, linux)</TD><TR> |
712 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaextended</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>use all 256 characters</TD><TR> | |
713 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaeight</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>use eight bit ascii</TD><TR> | |
714 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aahelp</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>prints out all aalib options</TD><TR> | |
1682 | 715 </TABLE></P> |
716 | |
717 <P>NOTE: the rendering is very CPU intensive, especially when using AA-on-X | |
718 (using aalib on X), and it's least CPU intensive on standard, | |
719 non-framebuffer console. Use SVGATextMode to set up a big textmode, | |
720 then enjoy! (secondary head Hercules cards rock :)) (anyone can enhance | |
721 bdev to do conversion/dithering to hgafb? Would be neat :)</P> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
722 |
1682 | 723 <P>Use the -framedrop option if your comp isn't fast enough to render all frames!</P> |
1612 | 724 |
1682 | 725 <P>Playing on terminal you'll get better speed and quality using the linux driver, not |
726 curses (-aadriver linux). But therefore you need write access on /dev/vcsa<terminal>! | |
727 That isn't autodetected by aalib, bu vo_aa tries to find the best mode. | |
1731 | 728 See <A HREF="http://aa-project.sourceforge.net/tune/">http://aa-project.sourceforge.net/tune/</A> for further tuning issues.</P> |
1612 | 729 |
2471 | 730 |
2745 | 731 <P><B><A NAME=2.3.1.12>2.3.1.12. VESA - output to VESA BIOS</B></P> |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
732 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
733 This driver was designed and introduced as <b>generic driver</b> for any video |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
734 card which has VESA VBE 2.0 compatible BIOS. But exists still one reason of |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
735 developing of this driver - it's multiple troubles with displaying movie on TV.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
736 <b>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</b> (Page 70) |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
737 says: |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
738 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
739 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
740 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
741 <code><i> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
742 <b>Dual-Controller Designs</b><br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
743 VBE 3.0 supports the dual-controller design by assuming that since both |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
744 controllers are typically provided by the same OEM, under control of a |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
745 single BIOS ROM on the same graphics card, it is possible to hide the fact |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
746 that two controllers are indeed present from the application. This has the |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
747 limitation of preventing simultaneous use of the independent controllers, |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
748 but allows applications released before VBE 3.0 to operate normally. The |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
749 VBE Function 00h (Return Controller Information) returns the combined |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
750 information of both controllers, including the combined list of available modes. |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
751 When the application selects a mode, the appropriate controller is activated. |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
752 Each of the remaining VBE functions then operates on the active controller. |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
753 </i></code> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
754 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
755 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
756 <P> |
2471 | 757 So you have chances to get working TV-out by using this driver.<br> |
758 (I guess that TV-out frequently is standalone head or standalone output | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
759 at least.) |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
760 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
761 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
762 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
763 <b>What are pluses:</b><BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
764 - You have chances to watch movies <b>if Linux even doesn't know</b> your video hardware.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
765 - You don't need to have installed any graphics' related things on your Linux |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
766 (like X11 (aka XFree86), fbdev and so on). This driver can be run from |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
767 <b>text-mode</b>.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
768 - You have chances to get <b>working TV-out</b>. (It's known at least for ATI's cards).<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
769 - This driver calls <b>int 10h</b> handler thus it's not an emulator - it |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
770 calls <b>real</b> things of <b>real</b> BIOS in <b>real</b>-mode. (Finely - |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
771 in vm86 mode).<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
772 - Most important :) You can watch <b>DVD at 320x200</b> if you don't have a powerful CPU.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
773 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
774 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
775 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
776 <b>What are minuses:</b><BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
777 - It works only on <b>x86 systems</b>.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
778 - <b>It's the slowest driver</b> from all the available ones for MPlayer.<BR> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
779 (But only if your card doesn't support <b>DGA mode</b> - otherwise this |
2747 | 780 driver is comparable by speed with <b>-vo dga</b> and <b>-vo fbdev</b> ones.<BR> |
781 | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
782 - It can be used only by <b>ROOT</b>.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
783 - Currently it's available only for <b>Linux</b>.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
784 - It <b>doesn't use</b> any <b>hardware accelerations</b> (like YUV overlay or hw scaling).<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
785 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
786 |
3141 | 787 <P>Don't use this driver with <B>GCC 2.96</B> ! It won't work !</P> |
788 | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
789 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
790 <TABLE BORDER=0> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
791 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>These switches of command line currently are available for VESA:</B></P></TD><TR> |
2747 | 792 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vo vesa:opts</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>currently recognized: <b>dga</b> to force dga mode and <b>nodga</b> to disable dga mode. Note: you may omit these parameters to enable <b>autodetect</b> of dga mode. (In the future also will specify mode parameters such as refresh rate, interlacing, doublescan and so on. Samples: i43, 85, d100)</TD><TR> |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
793 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-screenw, -screenh, -bpp</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>force userdefined mode</TD><TR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
794 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-x, -y</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>set userdefined prescaling</TD><TR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
795 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-zoom</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>enables userdefined prescaling</TD><TR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
796 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fs</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>scales image to fullscreen</TD><TR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
797 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fs -zoom</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>scales userdefined prescaling to fullscreen</TD><TR> |
2747 | 798 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-double</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>enables double buffering mode. (Available only in DGA mode). Should be slower of single buffering, but has no flickering effects.</TD><TR> |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
799 </TABLE> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
800 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
801 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
802 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
803 <b>Known problems and workaround:</b><br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
804 - If you have installed <b>NLS</b> font on your Linux box and run VESA driver |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
805 from text-mode then after terminating mplayer you will have <b>ROM font</b> loaded instead |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
806 of national. You can load national font again by using <b><i>setsysfont</i></b> utility |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
807 from for example Mandrake distribution.<br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
808 (<b>Hint</b>: The same utility is used for localizating fbdev).<br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
809 - Some <b>Linux graphics drivers</b> don't update active <b>BIOS mode</b> in DOS memory. So if you have such |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
810 problem - always use VESA driver only from <b>text-mode</b>. Otherwise text-mode (#03) will be |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
811 activated anyway and you will need restart your computer.<br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
812 - Often after terminating VESA driver you get <b>black screen</b>. To return your screen |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
813 to original state - simply switch to other console (by pressing <b>Alt-Fx</b>) then switch |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
814 to your previous console by the same way.<br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
815 - To get <b>working TV-out</b> you need have plugged tv-connector in before booting |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
816 your PC since video BIOS initializes itself only once during POST procedure. |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
817 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
818 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
819 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
820 <P><B><A NAME=2.3.1.13>2.3.1.13. X11</B></P> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
821 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
822 <P>Avoid if possible. Outputs to X11 (uses shared memory extension), with no |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
823 hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but still |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
824 slow) software scaling, use the options <CODE>-fs -zoom</CODE>. Most cards have |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
825 hardware scaling support, use the <CODE>-vo xv</CODE> output for them, or |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
826 <CODE>-vo xmga</CODE> for Matroxes.</P> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
827 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
828 <P>The problem is that most cards' driver doesn't support |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
829 hardware acceleration on the second head/TV. In those cases, you see green/blue |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
830 coloured window instead of the movie. This is where this driver comes in |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
831 handy, but you need powerful CPU to use software scaling. Don't use the |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
832 SDL driver's software output+scaler, it has worse image quality !</P> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
833 |
3290 | 834 <P>Software scaling is very slow, you better try changing video modes instead. |
835 It's very simple. See the <A HREF=#2.3.1.3.A>DGA section's modelines</A>, and | |
836 insert them into your XF86Config. | |
837 <UL> | |
838 <LI>If you have XFree86 4.x.x - use the <CODE>-vm</CODE> option. It will | |
839 change to a resolution your movie fits in. If it doesn't :</LI> | |
840 <LI>With XFree86 3.x.x - you have to cycle through available resolutions | |
841 with the <B>CTRL-ALT-plus</B> and <B>minus</B> keys.</LI> | |
842 </UL> | |
843 | |
844 If you can't find the modes you inserted, browse XFree86's output. Some | |
845 drivers can't use low pixelclocks that are needed for low resolution | |
846 video modes.</P> | |
847 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
848 |
3224 | 849 <P><B><A NAME=2.3.1.14>2.3.1.14. Rage128 (Pro) / Radeon video overlay (radeon_vid)</A></B></P> |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
850 <P> |
3267 | 851 <b>radeon_vid</b> and <B>rage128_vid</B> provides support for the <b>BackEnd Scaler</b> on ATI <b>Radeon</b> and Rage128 (Pro) chipsets. |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
852 It was designed and introduced as analog of <a href="video.html#2.3.1.7">mga_vid</a> driver, so you can use it in the same way!<br> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
853 But main goal of this driver usage is <a href="video.html#2.3.1.12">VESA</a> driver.<br> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
854 Simply because VESA enables TV-out on ATI's card but Backend scaler is used after |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
855 mode switching. This implementation outputs video stream on both: <b>TV-screen</b> and <b>CRTC</b> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
856 display simultaneously. (It slightly degrades quality of video output but it's |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
857 much better than nothing). |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
858 Sorry! I couldn't find out any video overlay's related information |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
859 on ATI pages. (I planned to implement it through <b>int 10h</b> calls). But it was |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
860 very easy to implement this stuff through reading/writing Radeon ports. |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
861 <br><b>NOTE</b>: XXX_VID technology is perfectly undocumented and maybe in the |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
862 future this stuff will be fully rewritten. This is the first public release of |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
863 driver.</P> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
864 |
2958 | 865 <P><B>Installation</B></P> |
866 | |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
867 <P> |
2958 | 868 <UL> |
869 <LI> | |
3224 | 870 <CODE>cd drivers/radeon<BR> |
3268 | 871 make<BR> |
872 make install<BR> | |
873 make nodes</CODE></LI> | |
3267 | 874 <LI>add one of the following at the end of the <CODE>/etc/modules.conf</CODE> file :<BR> |
875 <CODE> alias char-major-178 radeon_vid</CODE><BR> | |
876 <CODE> alias char-major-178 rage128_vid</CODE></LI> | |
2958 | 877 <LI>run <CODE>depmod -a</CODE></LI> |
878 </UL> | |
879 </P> | |
880 | |
881 <P> | |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
882 <br><b>Usage:</b><BR> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
883 <CODE>mplayer -vo vesa:lvo:/dev/radeon_vid <your options> filename</CODE> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
884 </P> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
885 |
3267 | 886 <P>More examples (for hardware deinterlacing, etc) can be found |
887 <A HREF="../drivers/radeon/README">here</A>.</P> | |
888 | |
2958 | 889 <P><B>NOTE</B>: don't use any framebuffers when you plan to use this driver ! Use |
890 it only from textmode console.</P> | |
891 | |
3224 | 892 <P> |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
893 <b>Conclusion:</b> I know there are lot of lacks and bugs. So if you are able |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
894 to improve something then simply send me your patches. |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
895 </P> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
896 |
4339 | 897 |
4199 | 898 <P><B><A NAME=2.3.1.15>2.3.1.15. VIDIX</A></B></P> |
899 | |
900 <P><B><I>WHAT IS VIDIX</I></B></P> | |
901 | |
902 <P>VIDIX is the abbreviation for <b>VID</b>eo <b>I</b>nterface for | |
903 *ni<b>X</b>.<BR> | |
904 VIDIX was designed and introduced as an interface for fast user-space drivers | |
905 providing <b>DGA</b> everywhere where it's possible (<b>unlike X11</b>). I | |
906 hope that these drivers will be as portable as X11 (<b>not only on | |
907 *nix</b>).<BR> | |
908 What is it: | |
909 <LI>It's a portable successor of mga_vid technology, but it's located in | |
910 user-space.</LI> | |
911 <LI>Unlike X11 it provides DGA everywhere it's possible</LI> | |
912 <LI>Unlike v4l it provides interface for video playback</LI> | |
913 <LI>Unlike linux's drivers it uses mathematics library</LI> | |
914 </P> | |
915 | |
916 <P>I can tell you in bold capital letters :<BR> | |
917 <b>VIDIX PROVIDES DIRECT GRAPHICS ACCESS TO BES YUV MEMORY.</b> | |
918 </P> | |
919 | |
920 <P><i>Well (it's in my todo) - implement DGA to MPEG2 decoder.</i></P> | |
921 | |
922 <P>This interface was designed as an attempt to fit existing video acceleration | |
923 interfaces (known as mga_vid, mga_yuv, radeon_vid) into a fixed scheme. It | |
924 provides highlevel interface to chips which are known as BES (BackEnd | |
925 scalers) or OV (Video Overlays). It doesn't provide lowlevel interface to | |
926 things which are known as graphics servers. (I don't want to compete with X11 | |
927 team in graphics mode switching). I.e. main goal of this interface is to | |
928 provide maximal speed of video playback but not putting video signal on | |
929 screen of your TV or on tape of your VCR. Although these things are also very | |
930 significant - it's perfectly other task. (However I guess that it would be | |
931 possible to implement something like mini-X (don't mix it with Minix ;) in | |
932 the future, if some number of volunteers will be found. | |
933 </P> | |
934 | |
935 <P><B><I>USAGE</I></B></P> | |
936 | |
937 <P> | |
938 <LI>You can use standalone video output driver: <CODE>-vo xvidix</CODE><BR> | |
939 This driver was developed as X11's front end to VIDIX technology. It | |
940 requires XServer and can work only under XServer.</LI> | |
941 <LI>You can use VIDIX subdevice which was applied to several video output | |
942 drivers, such as:<BR> | |
943 <CODE>-vo vesa:vidix</CODE> and <CODE>-vo fbdev:vidix</CODE></LI> | |
944 Indeed it doesn't matter which video output driver is used with <b>VIDIX</b>. | |
945 </P> | |
946 | |
947 <P><B><I>REQUIREMENTS</I></B></P> | |
948 | |
949 <P> | |
950 <LI>video card should be in graphics mode (I write <b>should</b> simply | |
951 because I tested it in text mode - it works but has awful output ;) Use | |
952 AAlib for that).<BR> | |
953 <I>Note: Everyone can try this trick by commenting out mode switching in | |
954 vo_vesa driver.</I></LI> | |
955 <LI><B>MPlayer</B>'s video output driver should know active video mode and be | |
956 able to tell to VIDIX subdevice some video characteristics of server.</LI> | |
957 I hope that probably every video output driver of <B>MPlayer</B> will | |
958 recognize <CODE>:vidix</CODE> subdevice. | |
959 </P> | |
960 | |
961 <P><B><I>USAGE METHODS</I></B></P> | |
962 | |
4223 | 963 <P>When VIDIX is used as <b>subdevice</b> (<CODE>-vo vesa:vidix</CODE>) then |
4199 | 964 video mode configuration is performed by video output device |
965 (<b>vo_server</b> in short). Therefore you can pass into command line of | |
966 <B>MPlayer</B> the same keys as for vo_server. In addition it understands | |
967 <CODE>-double</CODE> key as globally visible parameter. (I recommend using | |
968 this key with VIDIX at least for ATI's card).<BR> | |
969 As for <CODE>-vo xvidix</CODE> : currently it recognizes the following | |
970 options: <CODE>-fs -zoom -x -y</CODE>.<BR> | |
971 </P> | |
972 | |
973 <P>Also you can specify VIDIX's driver directly as third subargument in command | |
974 line :<BR> | |
975 <BR> | |
976 <code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double | |
977 file.avi</code><BR> | |
978 or<BR> | |
979 <code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp | |
980 32 file.avi</code><BR> | |
981 <BR> | |
982 But it's dangerous, and you shouldn't do that. In this case given driver will | |
983 be forced and result is unpredictable (it may <b>freeze</b> your | |
4339 | 984 computer). You should do that ONLY if you are absolutely sure it will work, |
985 and <B>MPlayer</B> doesn't do it automatically. Please tell about it to the | |
986 developers. The Right Way is to use VIDIX without arguments to enable driver | |
4199 | 987 autodetection. |
988 </P> | |
989 | |
990 <P> | |
991 VIDIX is very new technology and it's extremely possible that on your system | |
992 (OS=abc CPU=xyz) it won't work. In this case only solution for you it's port | |
993 it (mainly libdha). But there is hope that it will work on those systems | |
994 where X11 does. | |
995 </P> | |
996 | |
997 <P>And the last <b>WARNING</b>: (un)fortunately you <b>MUST</b> have | |
998 <b>ROOT</b> privileges to use VIDIX due to direct hardware access. At least | |
999 set the <b>suid</b> bit on the <B>MPlayer</B> excecutable. | |
1000 </P> | |
1001 | |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
1002 |
4339 | 1003 <P><B><A NAME=2.3.1.16>2.3.1.16. Zr</A></B></P> |
1004 | |
1005 <P>This is a display-driver (<CODE>-vo zr</CODE>) for a number of MJPEG | |
1006 capture/playback cards (tested for DC10+ and buz, and it should work for the | |
1007 LML33, the DC10). The driver works by encoding the frame to jpeg and then | |
1008 sending it to the card. For the jpeg encoding <B>libavcodec</B> is | |
1009 used, and required.</P> | |
1010 | |
1011 <P>This driver talks to the kernel driver available at | |
1012 <A HREF="http://mjpeg.sourceforge.net">http://mjpeg.sourceforge.net</A>, so | |
1013 you must get it working first. Then recompile <B>MPlayer</B> with | |
1014 <CODE>--enable-zr</CODE>.</P> | |
1015 | |
1016 <P>Some remarks: | |
1017 <UL> | |
1018 <LI>don't use xawtv on the same device <B>MPlayer</B> uses, it will crash | |
1019 your computer.</LI> | |
1020 <LI>this driver adds <CODE>-zr*</CODE> commandline options. The explanation | |
1021 of these options can be viewed with <CODE>-zrhelp</CODE>. It is possible to | |
1022 crop the input frame (cut borders to make it fit or to enhance performace) | |
1023 and to do other things.</LI> | |
1024 <LI>the driver only takes data in YV12 format (libmpeg2, libavcodec for | |
1025 example).</LI> | |
1026 </UL> | |
1027 </P> | |
1028 | |
1029 | |
2745 | 1030 <P><B><A NAME=2.3.1.A>2.3.1.A. TV-out support</A></B></P> |
1612 | 1031 |
2745 | 1032 <P><B><A NAME=2.3.1.A.1>2.3.1.A.1. Matrox cards</A></B></P> |
1612 | 1033 |
2486 | 1034 <P>Under Linux you have 2 methods to get TV out working :</P> |
2309 | 1035 |
1036 <P> | |
2486 | 1037 <UL> |
1038 <LI><B>XFree86</B>: using the driver and the HAL module, available from | |
1039 <A HREF="http://www.matrox.com">Matrox's site</A>. This will give you X on | |
1040 the TV.<BR> <B>This method doesn't give you accelerated playback</B> as | |
1041 under Windoze! The second head has only YUV framebuffer, the <I>BES</I> | |
1042 (Back End Scaler, the YUV scaler on G200/G400/G450/G550 cards) doesn't work | |
1043 on it! The windows driver somehow workarounds this, probably by using the | |
1044 3D engine to zoom, and the YUV framebuffer to display the zoomed | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
1045 image. If you really want to use X, use the <CODE>-vo x11 -fs -zoom</CODE> |
2486 | 1046 options, but it will be <B>SLOW</B>, and has <B>Macrovision</B> copyprotection |
4177 | 1047 enabled (you can "workaround" Macrovision using |
1048 <A HREF="http://avifile.sourceforge.net/mgamacro.pl">this</A> perl | |
1049 script.</LI> | |
2486 | 1050 <LI><B>Framebuffer</B>: using the <B>matroxfb modules</B> in the 2.4 kernels. |
1051 2.2 kernels don't have the TVout feature in them, thus unusable for this. | |
3030 | 1052 You have to enable ALL matroxfb-specific feature during compilation (except |
1053 MultiHead), and compile them into <B>modules</B>! | |
2486 | 1054 <UL> |
1055 <LI> | |
1056 Enter <CODE>TVout/matroxset</CODE> and type <CODE>make</CODE>. Install | |
1057 <CODE>matroxset</CODE> into somewhere in your PATH.</LI> | |
1058 <LI> | |
1059 If you don't have <CODE>fbset</CODE> installed, enter | |
1060 <CODE>TVout/fbset</CODE> and type <CODE>make</CODE>. Install | |
1061 <CODE>fbset</CODE> into somewhere in your PATH.</LI> | |
1062 <LI> | |
1063 Then enter into the <CODE>TVout/</CODE> directory in the <B>MPlayer</B> | |
1064 source, and execute <CODE>./modules</CODE> as root. Your text-mode console | |
1065 will enter into framebuffer mode (no way back!).</LI> | |
1066 <LI>Next, run the <CODE>./matroxtv</CODE> script. This will present you | |
1067 to a very simple menu. Press <B>2</B> and <B>ENTER</B>. Now you should | |
1068 have the same picture on your monitor, and TV. The <B>3.</B> option | |
1069 will turn on independent display, but then you <B>can't use X</B>! If | |
3030 | 1070 the TV (PAL !) picture has some weird stripes on it, the script wasn't able to |
2486 | 1071 set the resolution correctly (to 640x512 by default). Use other menu |
1072 items randomly and it'll be OK :)</LI> | |
1073 </UL> | |
1074 | |
1075 <P> | |
1076 Yoh. Next task is to make the cursor on tty1 (or whatever) to disappear, | |
1077 and turn off screen blanking. Execute the following commands:</P> | |
1078 | |
1079 <P> | |
1080 <CODE>echo -e '\033[?25l'<BR> | |
1081 setterm -blank 0</CODE> | |
1082 </P> | |
1083 | |
1084 <P> | |
1085 You possibly want to put the above into a script, and also clear | |
1086 the screen.. To turn the cursor back :<BR><CODE>echo -e '\033[?25h'</CODE> | |
1087 </P> | |
1088 | |
1089 <P>Yeah kewl. Start movie playing with <CODE>mplayer -vo mga -fs -screenw 640 | |
1090 -screenh 512 <filename></CODE><BR> | |
1091 (if you use X, now change to matroxfb with for example CTRL-ALT-F1 !)<BR> | |
1092 Change 640x512 if you set the resolution to other..<BR> | |
1093 <B>Enjoy the ultra-fast ultra-featured Matrox TV output (better than Xv) !</B> | |
1094 </P> | |
1095 </LI> | |
1096 </LI> | |
1097 </UL> | |
2309 | 1098 </P> |
1099 | |
1100 | |
2745 | 1101 <P><B><A NAME=2.3.1.A.2>2.3.1.A.2. ATI cards</A></B></P> |
2206 | 1102 |
1103 <P> | |
1104 <b>A few word about ATI's TV-out:</b><BR> | |
1105 Currently ATI doesn't want to support any of its TV-out chips under Linux. | |
1106 Below is official answer from ATI Inc.: | |
1107 | |
1108 <P> | |
1109 <code> | |
1110 <i> | |
1111 <br>> Hello! | |
1112 <br>> | |
1113 <br>> On your pages you wrote that you support linux developers. | |
1114 <br>> Currently I participate with mplayer project (www.mplayerhq.hu) | |
1115 <br>> I'm interesting with enabling TV-out on Radeon VE chips during | |
1116 <br>> movie playback. I would be glad to add this feature to radeonfb driver | |
1117 <br>> (which can be found in CVS tree of mplayer project at main/drivers/radeon). | |
1118 <br>> Do I have a chance to get any official technical documenation? | |
1119 </i> | |
1120 <br>We will not provide TV out related documents due to macrovision concerns. | |
1121 <br>Also mpeg2 decoding is something that we MAY consider in the future but not | |
1122 <br>at this current time. This is again due to proprietary and 3rd party | |
1123 <br>information. | |
1124 </code> | |
1125 </P> | |
1126 | |
1127 <P>Pity isn't?</P> | |
1128 | |
1129 <P> | |
1130 <code> | |
1131 <B>Q:What is Macrovision?</B><BR> | |
1132 A:It's copy protection mechanism.</code> | |
1133 </P> | |
1134 | |
1135 <P>It means that if they open any TV-out related information then | |
1136 hackers will be able to disable copy protection on their chips. Therefore | |
1137 we have no chance to get working TV-out on ATI.</P> | |
1138 | |
1139 <P>What's status of ATI's tv-out chips under Linux: | |
4199 | 1140 <LI><b>ATI Mach64</b> has <i>ImpacTV</i> which is supported by <A HREF="http://gatos.sf.net">gatos</A>. |
1141 <LI><b>ASIC Radeon VIVO</b> has <i>Rage Theatre</i> which is supported by <A HREF="http://gatos.sf.net">gatos</A>. | |
3027 | 1142 <LI><b>Radeon VE</b> and <b>Rage PRO LT</b> have <i>ImpacTV2+</i> which is not supported under Linux. |
1143 But with <B>MPlayer</B> you get <B>full hardware acceleration</B> and <B>TV out</B> | |
1144 for Radeons ! | |
1145 Check <a href=#2.3.1.12>VESA driver</a> and <A HREF=#2.3.1.14>Radeon | |
1146 acceleration</A> sections.</P> | |
2206 | 1147 |
1148 <P> | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1149 Fortunately, owners of fast enough CPUs (Duron, Celeron2 and better) <b>can watch |
2745 | 1150 movies on their TV</b> through <a href=#2.3.1.12>VESA drivers</a>. |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1151 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1152 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1153 <P> |
2486 | 1154 I should say good words to ATI Inc. too:<br> |
1155 <b>they produce top quality BIOSes.</b> | |
2206 | 1156 </P> |
1157 | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1158 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1159 <b>VESA drivers</b> don't use any hardware acceleration but it simulates |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1160 <b>DGA</b> through 64K window, which is configured through 32-bit mode |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1161 functions of BIOS. ATI cards have enough <b>fast video memory</b> (DIMM or DDR |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1162 chips with 64 - 128-bit access) so it's not bottleneck for them. There are no |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1163 limitations on which video mode can be displayed on your TV (like on other |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1164 cards) so you can use <b>any video mode</b> on your <b>TV</b> (from |
2471 | 1165 <b>320x200</b> up to <b>1024x768</b>).<br> |
2747 | 1166 From other side (it's known at least for <b>Radeons</b>) there is <b>DGA</b> |
1167 mode which is detected automatically and in this case you'll get comparable | |
1168 with <b>-vo dga</b> and <b>-vo fbdev</b> drivers speed.<br> | |
2486 | 1169 Only thing you need to do - <b>have TV connector plugged in before booting your |
2471 | 1170 PC</b> since video BIOS initializes itself only once during POST procedure. |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1171 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1172 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1173 <P> |
2745 | 1174 For detail see <a href="video.html#2.3.1.12">VESA</a> sections of this |
2471 | 1175 documentation. |
2206 | 1176 </P> |
1177 | |
2472
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1178 |
3027 | 1179 <P><B><A NAME=2.3.1.A.3>2.3.1.A.3. Voodoo 3</A></B></P> |
2472
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1180 |
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1181 <P> |
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1182 Check <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">this URL</A>. |
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1183 </P> |
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1184 |
1612 | 1185 </BODY> |
1186 </HTML> |