Mercurial > mplayer.hg
annotate DOCS/xml/en/video.xml @ 10755:8ec62402a8a3
sync
author | diego |
---|---|
date | Sun, 31 Aug 2003 22:10:52 +0000 |
parents | c472af8c8d65 |
children | 364d43cee33e |
rev | line source |
---|---|
9675 | 1 <?xml version="1.0" encoding="iso-8859-1"?> |
2 <sect2 id="video-dev"> | |
3 <title>Video output devices</title> | |
4 | |
5 <sect3 id="mtrr"> | |
6 <title>Setting up MTRR</title> | |
7 | |
8 <para> | |
9 It is VERY recommended to check if the MTRR registers | |
10 are set up properly, because they can give a big performance boost. | |
11 </para> | |
12 | |
13 <para> | |
14 Do a <command>/proc/mtrr</command>: | |
15 <screen> | |
16 <prompt>--($:~)--</prompt> cat /proc/mtrr | |
17 reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9 | |
18 reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1<!-- | |
19 --></screen> | |
20 </para> | |
21 | |
22 <para> | |
23 It's right, shows my Matrox G400 with 16MB memory. I did this from | |
24 XFree 4.x.x , which sets up MTRR registers automatically. | |
25 </para> | |
26 | |
27 <para> | |
28 If nothing worked, you have to do it manually. First, you have to find the | |
29 base address. You have 3 ways to find it: | |
30 | |
31 <orderedlist> | |
32 <listitem><para> | |
33 from X11 startup messages, for example: | |
34 <screen> | |
35 (--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 | |
36 (--) SVGA: Linear framebuffer at 0xD8000000<!-- | |
37 --></screen> | |
38 </para></listitem> | |
39 <listitem><para> | |
40 from <filename>/proc/pci</filename> (use <command>lspci -v</command> | |
41 command): | |
42 <screen> | |
43 01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 | |
44 Memory at d8000000 (32-bit, prefetchable) | |
45 </screen> | |
46 </para></listitem> | |
47 <listitem><para> | |
48 from mga_vid kernel driver messages (use <command>dmesg</command>): | |
49 <screen>mga_mem_base = d8000000</screen> | |
50 </para></listitem> | |
51 </orderedlist> | |
52 </para> | |
53 | |
54 <para> | |
55 Then let's find the memory size. This is very easy, just convert video RAM | |
56 size to hexadecimal, or use this table: | |
57 <informaltable frame="none"> | |
58 <tgroup cols="2"> | |
59 <tbody> | |
60 <row><entry>1 MB</entry><entry>0x100000</entry></row> | |
61 <row><entry>2 MB</entry><entry>0x200000</entry></row> | |
62 <row><entry>4 MB</entry><entry>0x400000</entry></row> | |
63 <row><entry>8 MB</entry><entry>0x800000</entry></row> | |
64 <row><entry>16 MB</entry><entry>0x1000000</entry></row> | |
65 <row><entry>32 MB</entry><entry>0x2000000</entry></row> | |
66 </tbody> | |
67 </tgroup> | |
68 </informaltable> | |
69 </para> | |
70 | |
71 <para> | |
72 You know base address and memory size, let's setup MTRR registers! | |
73 For example, for the Matrox card above (<literal>base=0xd8000000</literal>) | |
74 with 32MB ram (<literal>size=0x2000000</literal>) just execute: | |
75 <screen> | |
76 echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr | |
77 </screen> | |
78 </para> | |
79 | |
80 <para> | |
81 Not all CPUs support MTRRs. For example older K6-2's (around 266MHz, | |
82 stepping 0) doesn't support MTRR, but stepping 12's do (<command>cat /proc/cpuinfo | |
83 </command> to check it). | |
84 </para> | |
85 </sect3> | |
86 | |
87 <sect3 id="output-trad"> | |
88 <title>Video outputs for traditional video cards</title> | |
89 <sect4 id="xv"> | |
90 <title>Xv</title> | |
91 | |
92 <para> | |
93 Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines | |
94 using the XVideo extension. This is what the option '<option>-vo | |
95 xv</option>' uses. Also, this is driver supports adjusting | |
96 brightness/contrast/hue/etc (unless you use the old, slow DirectShow DivX | |
97 codec, which supports it everywhere), see the man page. | |
98 </para> | |
99 | |
100 <para> | |
101 In order to make this work, be sure to check the following: | |
102 | |
103 <orderedlist> | |
104 <listitem><para> | |
105 You have to use XFree86 4.0.2 or newer (former versions don't have XVideo) | |
106 </para></listitem> | |
107 <listitem><para> | |
108 Your card actually supports hardware acceleration (modern cards do) | |
109 </para></listitem> | |
110 <listitem><para> | |
111 X loads the XVideo extension, it's something like this: | |
112 <programlisting>(II) Loading extension XVideo</programlisting> | |
113 in <filename>/var/log/XFree86.0.log</filename> | |
114 <note><para> | |
115 This loads only the XFree86's extension. In a good install, this is | |
116 always loaded, and doesn't mean that the <emphasis role="bold">card's</emphasis> | |
117 XVideo support is loaded! | |
118 </para></note> | |
119 </para></listitem> | |
120 <listitem><para> | |
121 Your card has Xv support under Linux. To check, try | |
122 <command>xvinfo</command>, it is the part of the XFree86 distribution. It | |
123 should display a long text, similar to this: | |
124 <screen> | |
125 X-Video Extension version 2.2 | |
126 screen #0 | |
127 Adaptor #0: "Savage Streams Engine" | |
128 number of ports: 1 | |
129 port base: 43 | |
130 operations supported: PutImage | |
131 supported visuals: | |
132 depth 16, visualID 0x22 | |
133 depth 16, visualID 0x23 | |
134 number of attributes: 5 | |
135 (...) | |
136 Number of image formats: 7 | |
137 id: 0x32595559 (YUY2) | |
138 guid: 59555932-0000-0010-8000-00aa00389b71 | |
139 bits per pixel: 16 | |
140 number of planes: 1 | |
141 type: YUV (packed) | |
142 id: 0x32315659 (YV12) | |
143 guid: 59563132-0000-0010-8000-00aa00389b71 | |
144 bits per pixel: 12 | |
145 number of planes: 3 | |
146 type: YUV (planar) | |
147 (...etc...)<!-- | |
148 --></screen> | |
149 It must support YUY2 packed, and YV12 planar pixel formats to be usable | |
150 with <application>MPlayer</application>. | |
151 </para></listitem> | |
152 <listitem><para> | |
153 And finally, check if <application>MPlayer</application> was compiled | |
154 with 'xv' support. <filename>./configure</filename> prints this. | |
155 </para></listitem> | |
156 </orderedlist> | |
157 </para> | |
158 | |
159 <sect5 id="tdfx"> | |
160 <title>3dfx cards</title> | |
161 | |
162 <para> | |
163 Older 3dfx drivers were known to have problems with XVideo acceleration, it | |
164 didn't support either YUY2 or YV12, and so. Verify that you have XFree86 | |
165 version 4.2.0 or greater, it works OK with YV12 and YUY2. Previous | |
166 versions, including 4.1.0, <emphasis role="bold">crashes with YV12</emphasis>. | |
10111 | 167 If you experience strange effects using <option>-vo xv</option>, try SDL (it has XVideo too) and |
9675 | 168 see if it helps. Check the <link linkend="sdl">SDL section</link> for details. |
169 </para> | |
170 | |
171 <para> | |
172 <emphasis role="bold">OR</emphasis>, try the NEW | |
173 <option>-vo tdfxfb</option> driver! See the <link linkend="tdfxfb">tdfxfb</link> | |
174 section. | |
175 </para> | |
176 </sect5> | |
177 | |
178 | |
179 <sect5 id="s3"> | |
180 <title>S3 cards</title> | |
181 | |
182 <para> | |
183 S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 | |
184 or greater (in case of image problems, try 16bpp). As for S3 Virge: there is | |
185 xv support, but the card itself is very slow, so you better sell it. | |
186 </para> | |
187 | |
188 <note> | |
189 <para> | |
190 It's currently unclear which Savage models lack YV12 support, and convert by | |
191 driver (slow). If you suspect your card, get a newer driver, or ask politely | |
192 on the mplayer-users mailing list for an MMX/3DNow enabled driver. | |
193 </para> | |
194 </note> | |
195 </sect5> | |
196 | |
197 | |
198 <sect5 id="nvidia"> | |
199 <title>nVidia cards</title> | |
200 | |
201 <para> | |
202 nVidia isn't a very good choice under Linux (according to nVidia, this is | |
203 <link linkend="nvidia-opinions">not true</link>)... You'll have to use the | |
204 binary closed-source nVidia driver, available at nVidia's web site. The | |
205 standard XFree86 driver doesn't support XVideo for these cards, due to | |
206 nVidia's closed sources/specifications. | |
207 </para> | |
208 | |
209 <para> | |
210 As far as I know the latest XFree86 driver contains XVideo support for | |
211 GeForce 2 and 3. | |
212 </para> | |
213 | |
214 <para> | |
215 Riva128 cards don't have XVideo support even with the nVidia driver :( | |
216 Complain to nVidia. | |
217 </para> | |
218 </sect5> | |
219 | |
220 | |
221 <sect5 id="ati"> | |
222 <title>ATI cards</title> | |
223 | |
224 <para> | |
225 The <ulink url="http://www.linuxvideo.org/gatos">GATOS driver</ulink> | |
226 (which you should use, unless you have Rage128 or Radeon) has VSYNC enabled | |
227 by default. It means that decoding speed (!) is synced to the monitor's | |
228 refresh rate. If playing seems to be slow, try disabling VSYNC somehow, or | |
229 set refresh rate to a n*(fps of the movie) Hz. | |
230 </para> | |
231 | |
232 <para> | |
10132 | 233 Radeon VE - if you need X, use XFree86 4.2.0 or greater for this card. |
234 No TV out support. Of course with <application>MPlayer</application> you can | |
9675 | 235 happily get <emphasis role="bold">accelerated</emphasis> display, with or without |
236 <emphasis role="bold">TV output</emphasis>, and no libraries or X are needed. | |
237 Read the <link linkend="vidix">VIDIX</link> section. | |
238 </para> | |
239 </sect5> | |
240 | |
241 | |
242 <sect5 id="neomagic"> | |
243 <title>NeoMagic cards</title> | |
244 | |
245 <para> | |
10132 | 246 These cards can be found in many laptops. You must use XFree86 4.3.0 or |
247 above, or else use Stefan Seyfried's | |
10068 | 248 <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/">Xv-capable drivers</ulink>. |
10132 | 249 Just choose the one that applies to your version of XFree86. |
10068 | 250 </para> |
251 | |
252 <para> | |
253 XFree86 4.3.0 includes Xv support, yet Bohdan Horst sent a small | |
254 <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neo_driver.patch">patch</ulink> | |
10132 | 255 against the XFree86 sources that speeds up framebuffer operations (so XVideo) |
256 up to four times. The patch has been included in XFree86 CVS and should be in the | |
257 next release after 4.3.0. | |
9675 | 258 </para> |
259 | |
260 <para> | |
261 To allow playback of DVD sized content change your XF86Config like this: | |
262 <programlisting> | |
263 Section "Device" | |
264 [...] | |
265 Driver "neomagic" | |
266 <emphasis>Option "OverlayMem" "829440"</emphasis> | |
267 [...] | |
268 EndSection<!-- | |
269 --></programlisting> | |
270 </para> | |
271 </sect5> | |
272 | |
273 | |
274 <sect5 id="trident"> | |
275 <title>Trident cards</title> | |
276 <para> | |
277 If you want to use xv with a trident card, provided that it doesn't work | |
278 with 4.1.0, install XFree 4.2.0. 4.2.0 adds support for fullscreen xv | |
279 support with the Cyberblade XP card. | |
280 </para> | |
281 </sect5> | |
282 | |
283 | |
284 <sect5 id="kyro"> | |
285 <title>Kyro/PowerVR cards</title> | |
286 <para> | |
287 If you want to use Xv with a Kyro based card (for example Hercules | |
288 Prophet 4000XT), you should download the drivers from the | |
289 <ulink url="http://www.powervr.com/">PowerVR site</ulink> | |
290 </para> | |
291 </sect5> | |
292 </sect4> | |
293 | |
294 <!-- ********** --> | |
295 | |
296 <sect4 id="dga"> | |
297 <title>DGA</title> | |
298 | |
299 <formalpara> | |
300 <title>PREAMBLE</title> | |
301 <para> | |
302 This document tries to explain in some words what DGA is in general and | |
303 what the DGA video output driver for <application>MPlayer</application> | |
304 can do (and what it can't). | |
305 </para> | |
306 </formalpara> | |
307 | |
308 <formalpara> | |
309 <title>WHAT IS DGA</title> | |
310 <para> | |
311 <acronym>DGA</acronym> is short for <emphasis>Direct Graphics | |
312 Access</emphasis> and is a means for a program to bypass the X server and | |
313 directly modifying the framebuffer memory. Technically spoken this happens | |
314 by mapping the framebuffer memory into the memory range of your process. | |
315 This is allowed by the kernel only if you have superuser privileges. You | |
316 can get these either by logging in as <systemitem | |
317 class="username">root</systemitem> or by setting the SUID bit on the | |
318 <application>MPlayer</application> executable (<emphasis role="bold">not | |
319 recommended</emphasis>). | |
320 </para> | |
321 </formalpara> | |
322 <para> | |
323 There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was | |
324 introduced with XFree 4.0.1. | |
325 </para> | |
326 | |
327 <para> | |
328 DGA1 provides only direct framebuffer access as described above. For | |
329 switching the resolution of the video signal you have to rely on the | |
330 XVidMode extension. | |
331 </para> | |
332 | |
333 <para> | |
334 DGA2 incorporates the features of XVidMode extension and also allows | |
335 switching the depth of the display. So you may, although basically | |
336 running a 32 bit depth X server, switch to a depth of 15 bits and vice | |
337 versa. | |
338 </para> | |
339 | |
340 <para> | |
341 However DGA has some drawbacks. It seems it is somewhat dependent on the | |
342 graphics chip you use and on the implementation of the X server's video | |
343 driver that controls this chip. So it does not work on every system... | |
344 </para> | |
345 | |
346 <formalpara> | |
347 <title>INSTALLING DGA SUPPORT FOR MPLAYER</title> | |
348 | |
349 <para> | |
350 First make sure X loads the DGA extension, see in | |
351 <filename>/var/log/XFree86.0.log</filename>: | |
352 | |
353 <programlisting>(II) Loading extension XFree86-DGA</programlisting> | |
354 | |
355 See, XFree86 4.0.x or greater is VERY RECOMMENDED! | |
356 <application>MPlayer</application>'s DGA driver is autodetected by | |
357 <filename>./configure</filename>, or you can force it | |
358 with <option>--enable-dga</option>. | |
359 </para> | |
360 </formalpara> | |
361 | |
362 <para> | |
363 If the driver couldn't switch to a smaller resolution, experiment with | |
364 options <option>-vm</option> (only with X 3.3.x), <option>-fs</option>, | |
365 <option>-bpp</option>, <option>-zoom</option> to find a video mode that | |
366 the movie fits in. There is no converter right now :( | |
367 </para> | |
368 | |
369 <para> | |
370 Become <systemitem class="username">root</systemitem>. DGA needs root | |
371 access to be able to write directly video memory. If you want to run it as | |
372 user, then install <application>MPlayer</application> SUID root: | |
373 | |
374 <screen> | |
375 chown root /usr/local/bin/mplayer | |
376 chmod 750 /usr/local/bin/mplayer | |
377 chmod +s /usr/local/bin/mplayer | |
378 </screen> | |
379 | |
380 Now it works as a simple user, too. | |
381 </para> | |
382 | |
383 <caution> | |
384 <title>Security risk</title> | |
385 <para> | |
10111 | 386 This is a <emphasis role="bold">big</emphasis> security risk! |
387 <emphasis role="bold">Never</emphasis> do this on a server or on a computer can be | |
388 accessed by other people because they can gain root privileges through SUID root | |
9675 | 389 <application>MPlayer</application>. |
390 </para> | |
391 </caution> | |
392 | |
393 <para> | |
394 Now use <option>-vo dga</option> option, and there you go! (hope so:) You | |
395 should also try if the <option>-vo sdl:dga</option> option works for you! | |
396 It's much faster! | |
397 </para> | |
398 | |
399 | |
400 <formalpara id="dga-modelines"> | |
401 <title>RESOLUTION SWITCHING</title> | |
402 | |
403 <para> | |
404 The DGA driver allows for switching the resolution of the output signal. | |
405 This avoids the need for doing (slow) software scaling and at the same time | |
406 provides a fullscreen image. Ideally it would switch to the exact | |
407 resolution (except for honoring aspect ratio) of the video data, but the X | |
408 server only allows switching to resolutions predefined in | |
409 <filename>/etc/X11/XF86Config</filename> | |
410 (<filename>/etc/X11/XF86Config-4</filename> for XFree 4.X.X respectively). | |
411 Those are defined by so-called modelines and depend on | |
412 the capabilities of your video hardware. The X server scans this config | |
413 file on startup and disables the modelines not suitable for your hardware. | |
414 You can find out which modes survive with the X11 log file. It can be found | |
415 at: <filename>/var/log/XFree86.0.log</filename>. | |
416 </para> | |
417 </formalpara> | |
418 | |
419 <para> | |
420 These entries are known to work fine with a Riva128 chip, using the nv.o X | |
421 server driver module. | |
422 </para> | |
423 | |
424 | |
425 <para><programlisting> | |
426 Section "Modes" | |
427 Identifier "Modes[0]" | |
428 Modeline "800x600" 40 800 840 968 1056 600 601 605 628 | |
429 Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 | |
430 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 | |
431 Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan | |
432 Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 | |
433 Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan | |
434 Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan | |
435 EndSection | |
436 </programlisting></para> | |
437 | |
438 | |
439 <formalpara> | |
440 <title>DGA & MPLAYER</title> | |
441 <para> | |
442 DGA is used in two places with <application>MPlayer</application>: The SDL | |
443 driver can be made to make use of it (<option>-vo sdl:dga</option>) and | |
444 within the DGA driver (<option>-vo dga</option>). The above said is true | |
445 for both; in the following sections I'll explain how the DGA driver for | |
446 <application>MPlayer</application> works. | |
447 </para> | |
448 </formalpara> | |
449 | |
450 | |
451 <formalpara> | |
452 <title>FEATURES</title> | |
453 | |
454 <para> | |
455 The DGA driver is invoked by specifying <option>-vo dga</option> at the | |
456 command line. The default behavior is to switch to a resolution matching | |
457 the original resolution of the video as close as possible. It deliberately | |
458 ignores the <option>-vm</option> and <option>-fs</option> options | |
459 (enabling of video mode switching and fullscreen) - it always tries to | |
460 cover as much area of your screen as possible by switching the video mode, | |
461 thus refraining to use a single additional cycle of your CPU to scale the | |
462 image. If you don't like the mode it chooses you may force it to choose | |
463 the mode matching closest the resolution you specify by <option>-x</option> | |
464 and <option>-y</option>. By providing the <option>-v</option> option, the | |
465 DGA driver will print, among a lot of other things, a list of all | |
466 resolutions supported by your current <filename>XF86Config</filename> file. | |
467 Having DGA2 you may also force it to use a certain depth by using the | |
468 <option>-bpp</option> option. Valid depths are 15, 16, 24 and 32. It | |
469 depends on your hardware whether these depths are natively supported or if | |
470 a (possibly slow) conversion has to be done. | |
471 </para> | |
472 </formalpara> | |
473 <para> | |
474 If you should be lucky enough to have enough offscreen memory left to | |
475 put a whole image there, the DGA driver will use doublebuffering, which | |
476 results in much smoother movie replaying. It will tell you whether | |
477 double-buffering is enabled or not. | |
478 </para> | |
479 | |
480 <para> | |
481 Doublebuffering means that the next frame of your video is being drawn in | |
482 some offscreen memory while the current frame is being displayed. When the | |
483 next frame is ready, the graphics chip is just told the location in memory | |
484 of the new frame and simply fetches the data to be displayed from there. | |
485 In the meantime the other buffer in memory will be filled again with new | |
486 video data. | |
487 </para> | |
488 | |
489 <para> | |
490 Doublebuffering may be switched on by using the option | |
491 <option>-double</option> and may be disabled with | |
492 <option>-nodouble</option>. Current default option is to disable | |
493 doublebuffering. When using the DGA driver, onscreen display (OSD) only | |
494 works with doublebuffering enabled. However, enabling doublebuffering may | |
495 result in a big speed penalty (on my K6-II+ 525 it used an additional 20% | |
496 of CPU time!) depending on the implementation of DGA for your hardware. | |
497 </para> | |
498 | |
499 | |
500 <formalpara> | |
501 <title>SPEED ISSUES</title> | |
502 | |
503 <para> | |
504 Generally spoken, DGA framebuffer access should be at least as fast as | |
505 using the X11 driver with the additional benefit of getting a fullscreen | |
506 image. The percentage speed values printed by | |
507 <application>MPlayer</application> have to be interpreted with some care, | |
508 as for example, with the X11 driver they do not include the time used by | |
509 the X server needed for the actual drawing. Hook a terminal to a serial | |
510 line of your box and start <command>top</command> to see what is really | |
511 going on in your box. | |
512 </para> | |
513 </formalpara> | |
514 | |
515 <para> | |
516 Generally spoken, the speedup done by using DGA against 'normal' use of X11 | |
517 highly depends on your graphics card and how well the X server module for it | |
518 is optimized. | |
519 </para> | |
520 | |
521 <para> | |
522 If you have a slow system, better use 15 or 16 bit depth since they require | |
523 only half the memory bandwidth of a 32 bit display. | |
524 </para> | |
525 | |
526 <para> | |
527 Using a depth of 24 bit is even a good idea if your card natively just supports | |
528 32 bit depth since it transfers 25% less data compared to the 32/32 mode. | |
529 </para> | |
530 | |
531 <para> | |
532 I've seen some AVI files already be replayed on a Pentium MMX 266. AMD K6-2 | |
533 CPUs might work at 400 MHZ and above. | |
534 </para> | |
535 | |
536 | |
537 <formalpara> | |
538 <title>KNOWN BUGS</title> | |
539 | |
540 <para> | |
541 Well, according to some developers of XFree, DGA is quite a beast. They | |
542 tell you better not to use it. Its implementation is not always flawless | |
543 with every chipset driver for XFree out there. | |
544 </para> | |
545 </formalpara> | |
546 | |
547 <itemizedlist> | |
548 <listitem><simpara> | |
549 With XFree 4.0.3 and <filename>nv.o</filename> there is a bug resulting | |
550 in strange colors. | |
551 </simpara></listitem> | |
552 <listitem><simpara> | |
553 ATI driver requires to switch mode back more than once after finishing | |
554 using of DGA. | |
555 </simpara></listitem> | |
556 <listitem><simpara> | |
557 Some drivers simply fail to switch back to normal resolution (use | |
558 <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>Keypad +</keycap> and | |
559 <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>Keypad -</keycap> | |
560 to switch back manually). | |
561 </simpara></listitem> | |
562 <listitem><simpara> | |
563 Some drivers simply display strange colors. | |
564 </simpara></listitem> | |
565 <listitem><simpara> | |
566 Some drivers lie about the amount of memory they map into the process's | |
567 address space, thus vo_dga won't use doublebuffering (SIS?). | |
568 </simpara></listitem> | |
569 <listitem><simpara> | |
570 Some drivers seem to fail to report even a single valid mode. In this | |
571 case the DGA driver will crash telling you about a nonsense mode of | |
572 100000x100000 or something like that. | |
573 </simpara></listitem> | |
574 <listitem><simpara> | |
575 OSD only works with doublebuffering enabled (else it flickers). | |
576 </simpara></listitem> | |
577 </itemizedlist> | |
578 | |
579 </sect4> | |
580 <!--</sect3>--> | |
581 | |
582 <!-- ********** --> | |
583 | |
584 <sect4 id="sdl"> | |
585 <title>SDL</title> | |
586 | |
587 <para> | |
10111 | 588 <acronym>SDL</acronym> (Simple Directmedia Layer) is basically a unified |
9675 | 589 video/audio interface. Programs that use it know only about SDL, and not |
590 about what video or audio driver does SDL actually use. For example a Doom | |
591 port using SDL can run on svgalib, aalib, X, fbdev, and others, you only | |
592 have to specify the (for example) video driver to use with the | |
593 <envar>SDL_VIDEODRIVER</envar> environment variable. Well, in theory. | |
594 </para> | |
595 | |
596 <para> | |
597 With <application>MPlayer</application>, we used its X11 driver's software | |
598 scaler ability for cards/drivers that doesn't support XVideo, until we made | |
599 our own (faster, nicer) software scaler. Also we used its aalib output, but | |
600 now we have ours which is more comfortable. Its DGA mode was better than | |
601 ours, until recently. Get it now? :) | |
602 </para> | |
603 | |
604 <para> | |
605 It also helps with some buggy drivers/cards if the video is jerky (not slow | |
606 system problem), or audio is lagging. | |
607 </para> | |
608 | |
609 <para> | |
610 SDL video output supports displaying subtitles under the movie, on the (if | |
611 present) black bar. | |
612 </para> | |
613 | |
614 <variablelist> | |
615 <title>There are several command line switches for SDL:</title> | |
616 <varlistentry> | |
617 <term><option>-vo sdl:<replaceable>name</replaceable></option></term> | |
618 <listitem><simpara> | |
619 specifies SDL video driver to use (i.e. <literal>aalib</literal>, | |
620 <literal>dga</literal>, <literal>x11</literal>) | |
621 </simpara></listitem> | |
622 </varlistentry> | |
623 <varlistentry> | |
624 <term><option>-ao sdl:<replaceable>name</replaceable></option></term> | |
625 <listitem><simpara> | |
626 specifies SDL audio driver to use (i.e. <literal>dsp</literal>, | |
627 <literal>esd</literal>, <literal>arts</literal>) | |
628 </simpara></listitem> | |
629 </varlistentry> | |
630 <varlistentry> | |
631 <term><option>-noxv</option></term> | |
632 <listitem><simpara> | |
633 disables XVideo hardware acceleration | |
634 </simpara></listitem> | |
635 </varlistentry> | |
636 <varlistentry> | |
637 <term><option>-forcexv</option></term> | |
638 <listitem><simpara> | |
639 tries to force XVideo acceleration | |
640 </simpara></listitem> | |
641 </varlistentry> | |
642 </variablelist> | |
643 | |
644 <table> | |
645 <title>SDL keys</title> | |
646 <tgroup cols="2"> | |
647 <thead> | |
648 <row><entry>Key</entry><entry>Action</entry></row> | |
649 </thead> | |
650 <tbody> | |
651 <row><entry><keycap>F</keycap></entry><entry> | |
652 toggles fullscreen/windowed mode | |
653 </entry></row> | |
654 <row><entry><keycap>C</keycap></entry><entry> | |
655 cycles available fullscreen modes | |
656 </entry></row> | |
657 <row><entry><keycap>W</keycap>/<keycap>S</keycap></entry><entry> | |
658 mappings for <keycap>*</keycap> and <keycap>/</keycap> (mixer control) | |
659 </entry></row> | |
660 </tbody> | |
661 </tgroup> | |
662 </table> | |
663 | |
664 <itemizedlist> | |
665 <title>Known bugs:</title> | |
666 <listitem><simpara> | |
667 Keys pressed under sdl:aalib console driver repeat forever. (use | |
668 <option>-vo aa</option>!) It's bug in SDL, I can't change it (tested with | |
669 SDL 1.2.1). | |
670 </simpara></listitem> | |
671 <listitem><simpara> | |
672 DO NOT USE SDL with GUI! It won't work as it should. | |
673 </simpara></listitem> | |
674 </itemizedlist> | |
675 </sect4> | |
676 | |
677 | |
678 <sect4 id="svgalib"> | |
679 <title>SVGAlib</title> | |
680 | |
681 <formalpara> | |
682 <title>INSTALLATION</title> | |
683 <para> | |
684 You'll have to install svgalib and its development package in order for | |
685 <application>MPlayer</application> build its SVGAlib driver (autodetected, | |
686 but can be forced), and don't forget to edit | |
687 <filename>/etc/vga/libvga.config</filename> to suit your card and monitor. | |
688 </para> | |
689 </formalpara> | |
690 | |
691 <note> | |
692 <para> | |
693 Be sure not to use the <option>-fs</option> switch, since it toggles the | |
694 usage of the software scaler, and it's slow. If you really need it, use the | |
695 <option>-sws 4</option> option which will produce bad quality, but is | |
696 somewhat faster. | |
697 </para> | |
698 </note> | |
699 | |
700 <formalpara><title>EGA (4BPP) SUPPORT</title> | |
701 <para> | |
702 SVGAlib incorporates EGAlib, and <application>MPlayer</application> has the | |
703 possibility to display any movie in 16 colors, thus usable in the following | |
704 sets: | |
705 </para> | |
706 </formalpara> | |
707 | |
708 <itemizedlist> | |
709 <listitem><simpara> | |
710 EGA card with EGA monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp | |
711 </simpara></listitem> | |
712 <listitem><simpara> | |
713 EGA card with CGA monitor: 320x200x4bpp, 640x200x4bpp | |
714 </simpara></listitem> | |
715 </itemizedlist> | |
716 | |
717 <para> | |
718 The bpp (bits per pixel) value must be set to 4 by hand: | |
719 <option>-bpp 4</option> | |
720 </para> | |
721 | |
722 <para> | |
723 The movie probably must be scaled down to fit in EGA mode: | |
9677 | 724 <screen>-vf scale=640:350</screen> |
9675 | 725 or |
9677 | 726 <screen>-vf scale=320:200</screen> |
9675 | 727 </para> |
728 | |
729 <para> | |
730 For that we need fast but bad quality scaling routine: | |
731 <screen>-sws 4</screen> | |
732 </para> | |
733 | |
734 <para> | |
735 Maybe automatic aspect correction has to be shut off: | |
736 <screen>-noaspect</screen> | |
737 </para> | |
738 | |
739 <note><para> | |
9683 | 740 According to my experience the best image quality on |
9675 | 741 EGA screens can be achieved by decreasing the brightness a bit: |
9677 | 742 <option>-vf eq=-20:0</option>. I also needed to lower the audio |
9675 | 743 samplerate on my box, because the sound was broken on 44kHz: |
744 <option>-srate 22050</option>. | |
745 </para></note> | |
746 | |
747 <para> | |
9683 | 748 You can turn on OSD and subtitles only with the <systemitem>expand</systemitem> |
9675 | 749 filter, see the man page for exact parameters. |
750 </para> | |
751 </sect4> | |
752 | |
753 | |
754 <sect4 id="fbdev"> | |
755 <title>Framebuffer output (FBdev)</title> | |
756 | |
757 <para> | |
758 Whether to build the FBdev target is autodetected during | |
10111 | 759 <filename>./configure</filename>. Read the framebuffer documentation in |
9675 | 760 the kernel sources (<filename>Documentation/fb/*</filename>) for more |
761 information. | |
762 </para> | |
763 | |
764 <para> | |
765 If your card doesn't support VBE 2.0 standard (older ISA/PCI cards, such as | |
766 S3 Trio64), only VBE 1.2 (or older?): Well, VESAfb is still available, but | |
767 you'll have to load SciTech Display Doctor (formerly UniVBE) before booting | |
768 Linux. Use a DOS boot disk or whatever. And don't forget to register your | |
769 UniVBE ;)) | |
770 </para> | |
771 | |
772 <para> | |
773 The FBdev output takes some additional parameters above the others: | |
774 </para> | |
775 | |
776 <variablelist> | |
777 <varlistentry> | |
778 <term><option>-fb</option></term> | |
779 <listitem><simpara> | |
780 specify the framebuffer device to use (<filename>/dev/fb0</filename>) | |
781 </simpara></listitem> | |
782 </varlistentry> | |
783 <varlistentry> | |
784 <term><option>-fbmode</option></term> | |
785 <listitem><simpara> | |
786 mode name to use (according to <filename>/etc/fb.modes</filename>) | |
787 </simpara></listitem> | |
788 </varlistentry> | |
789 <varlistentry> | |
790 <term><option>-fbmodeconfig</option></term> | |
791 <listitem><simpara> | |
792 config file of modes (default <filename>/etc/fb.modes</filename>) | |
793 </simpara></listitem> | |
794 </varlistentry> | |
795 <varlistentry> | |
796 <term><option>-monitor_hfreq</option></term> | |
797 <term><option>-monitor_vfreq</option></term> | |
798 <term><option>-monitor_dotclock</option></term> | |
799 <listitem><simpara> | |
800 <emphasis role="bold">important</emphasis> values, see | |
801 <filename>example.conf</filename> | |
802 </simpara></listitem> | |
803 </varlistentry> | |
804 </variablelist> | |
805 | |
806 <para> | |
807 If you want to change to a specific mode, then use | |
808 <screen>mplayer -vm -fbmode <replaceable>name_of_mode</replaceable> <replaceable>filename</replaceable></screen> | |
809 </para> | |
810 | |
811 <itemizedlist> | |
812 <listitem><para> | |
813 <option>-vm</option> alone will choose the most suitable mode from | |
814 <filename>/etc/fb.modes</filename>. Can be used together with | |
815 <option>-x</option> and <option>-y</option> options too. The | |
816 <option>-flip</option> option is supported only if the movie's pixel | |
10132 | 817 format matches the video mode's pixel format. Pay attention to the bpp |
9675 | 818 value, fbdev driver tries to use the current, or if you specify the |
819 <option>-bpp</option> option, then that. | |
820 </para></listitem> | |
821 <listitem><para> | |
10132 | 822 <option>-zoom</option> option isn't supported (use <option>-vf scale</option>). |
823 You can't use 8bpp (or less) modes. | |
9675 | 824 </para></listitem> |
825 <listitem><para> | |
826 You possibly want to turn the cursor off: | |
827 <screen>echo -e '\033[?25l'</screen> | |
828 or | |
829 <screen>setterm -cursor off</screen> | |
830 and the screen saver: | |
831 <screen>setterm -blank 0</screen> | |
832 To turn the cursor back on: | |
833 <screen>echo -e '\033[?25h'</screen> | |
834 or | |
835 <screen>setterm -cursor on</screen> | |
836 </para></listitem> | |
837 </itemizedlist> | |
838 | |
839 <note> | |
840 <para> | |
841 FBdev video mode changing <emphasis>does not work</emphasis> with the VESA | |
842 framebuffer, and don't ask for it, since it's not an | |
843 <application>MPlayer</application> limitation. | |
844 </para> | |
845 </note> | |
846 </sect4> | |
847 | |
848 | |
849 <sect4 id="mga_vid"> | |
850 <title>Matrox framebuffer (mga_vid)</title> | |
851 | |
852 <para> | |
853 This section is about the Matrox G200/G400/G450/G550 BES (Back-End Scaler) | |
854 support, the mga_vid kernel driver. It's actively developed by A'rpi, and | |
855 it has hardware VSYNC support with triple buffering. It works on both | |
856 framebuffer console and under X. | |
857 </para> | |
858 | |
859 <warning> | |
860 <para> | |
861 This is Linux only! On non-Linux (tested on FreeBSD) systems, you can use | |
862 <link linkend="vidix">VIDIX</link> instead! | |
863 </para> | |
864 </warning> | |
865 | |
866 <procedure> | |
867 <title>Installation:</title> | |
868 <step><para> | |
869 To use it, you first have to compile <filename>mga_vid.o</filename>: | |
870 <screen> | |
871 cd drivers | |
872 make<!-- | |
873 --></screen> | |
874 </para></step> | |
875 <step><para> | |
876 Then create <filename>/dev/mga_vid</filename> device: | |
877 <screen>mknod /dev/mga_vid c 178 0</screen> | |
878 and load the driver with | |
879 <screen>insmod mga_vid.o</screen> | |
880 </para></step> | |
881 <step><para> | |
882 You should verify the memory size detection using the | |
883 <command>dmesg</command> command. If it's bad, use the | |
884 <option>mga_ram_size</option> option | |
885 (<command>rmmod mga_vid</command> first), | |
886 specify card's memory size in MB: | |
887 <screen>insmod mga_vid.o mga_ram_size=16</screen> | |
888 </para></step> | |
889 <step><para> | |
890 To make it load/unload automatically when needed, first insert the | |
891 following line at the end of <filename>/etc/modules.conf</filename>: | |
892 | |
893 <programlisting>alias char-major-178 mga_vid</programlisting> | |
894 | |
895 Then copy the <filename>mga_vid.o</filename> module to the appropriate | |
896 place under <filename>/lib/modules/<replaceable>kernel | |
897 version</replaceable>/<replaceable>somewhere</replaceable></filename>. | |
898 </para><para> | |
899 Then run | |
900 <screen>depmod -a</screen> | |
901 </para></step> | |
902 <step><para> | |
903 Now you have to (re)compile <application>MPlayer</application>, | |
904 <filename>./configure</filename> will detect | |
905 <filename>/dev/mga_vid</filename> and build the 'mga' driver. Using it | |
906 from <application>MPlayer</application> goes by <option>-vo mga</option> | |
907 if you have matroxfb console, or <option>-vo xmga</option> under XFree86 | |
908 3.x.x or 4.x.x. | |
909 </para></step> | |
910 </procedure> | |
911 | |
912 <para> | |
913 The mga_vid driver cooperates with Xv. | |
914 </para> | |
915 | |
916 <para> | |
917 The <filename>/dev/mga_vid</filename> device file can be read for some | |
918 info, for example by | |
919 <screen>cat /dev/mga_vid</screen> | |
920 and can be written for brightness change: | |
921 <screen>echo "brightness=120" > /dev/mga_vid</screen> | |
922 </para> | |
923 </sect4> | |
924 | |
925 | |
926 <sect4 id="tdfxfb" xreflabel="3Dfx YUV support (tdfxfb)"> | |
927 <title>3Dfx YUV support</title> | |
928 <para> | |
929 This driver uses the kernel's tdfx framebuffer driver to play movies with | |
930 YUV acceleration. You'll need a kernel with tdfxfb support, and recompile | |
931 with | |
932 <screen>./configure --enable-tdfxfb</screen> | |
933 </para> | |
934 </sect4> | |
935 | |
936 | |
937 <sect4 id="opengl"> | |
938 <title>OpenGL output</title> | |
939 | |
940 <para> | |
941 <application>MPlayer</application> supports displaying movies using OpenGL, | |
942 but if your platform/driver supports xv as should be the case on a PC with | |
943 Linux, use xv instead, OpenGL performance is considerably worse. If you | |
944 have an X11 implementation without xv support, OpenGL is a viable | |
945 alternative. | |
946 </para> | |
947 | |
948 <para> | |
949 Unfortunately not all drivers support this feature. The Utah-GLX drivers | |
950 (for XFree86 3.3.6) support it for all cards. | |
951 See <ulink url="http://utah-glx.sourceforge.net"/> for details about how to | |
952 install it. | |
953 </para> | |
954 | |
955 <para> | |
956 XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards, | |
957 4.2.0 or later supports Rage128. | |
958 See <ulink url="http://dri.sourceforge.net"/> for download and installation | |
959 instructions. | |
960 </para> | |
10526 | 961 |
962 <para> | |
963 A hint from one of our users: the GL video output can be used to get | |
964 vsynced TV output. You'll have to set an environment variable (at | |
965 least on nVidia): | |
966 </para> | |
967 | |
968 <para> | |
969 <command>export $__GL_SYNC_TO_VBLANK=1</command> | |
970 </para> | |
971 | |
9675 | 972 </sect4> |
973 | |
974 | |
975 <sect4 id="aalib"> | |
976 <title>AAlib - text mode displaying</title> | |
977 | |
978 <para> | |
979 AAlib is a library for displaying graphics in text mode, using powerful | |
980 ASCII renderer. There are <emphasis>lots</emphasis> of programs already | |
981 supporting it, like Doom, Quake, etc. <application>MPlayer</application> | |
10111 | 982 contains a very usable driver for it. If <filename>./configure</filename> |
9675 | 983 detects aalib installed, the aalib libvo driver will be built. |
984 </para> | |
985 | |
986 <para> | |
987 You can use some keys in the AA Window to change rendering options: | |
988 </para> | |
989 | |
990 <informaltable> | |
991 <tgroup cols="2"> | |
992 <thead> | |
993 <row><entry>Key</entry><entry>Action</entry></row> | |
994 </thead> | |
995 <tbody> | |
996 <row><entry><keycap>1</keycap></entry><entry> | |
997 decrease contrast | |
998 </entry></row> | |
999 <row><entry><keycap>2</keycap></entry><entry> | |
1000 increase contrast | |
1001 </entry></row> | |
1002 <row><entry><keycap>3</keycap></entry><entry> | |
1003 decrease brightness | |
1004 </entry></row> | |
1005 <row><entry><keycap>4</keycap></entry><entry> | |
1006 increase brightness | |
1007 </entry></row> | |
1008 <row><entry><keycap>5</keycap></entry><entry> | |
1009 switch fast rendering on/off | |
1010 </entry></row> | |
1011 <row><entry><keycap>6</keycap></entry><entry> | |
1012 set dithering mode (none, error distribution, Floyd Steinberg) | |
1013 </entry></row> | |
1014 <row><entry><keycap>7</keycap></entry><entry> | |
1015 invert image | |
1016 </entry></row> | |
1017 <row><entry><keycap>8</keycap></entry><entry> | |
1018 toggles between aa and <application>MPlayer</application> control | |
1019 </entry></row> | |
1020 </tbody> | |
1021 </tgroup> | |
1022 </informaltable> | |
1023 | |
1024 <variablelist> | |
1025 <title>The following command line options can be used:</title> | |
1026 <varlistentry> | |
1027 <term><option>-aaosdcolor=<replaceable>V</replaceable></option></term> | |
1028 <listitem><para> | |
1029 change OSD color | |
1030 </para></listitem> | |
1031 </varlistentry> | |
1032 <varlistentry> | |
1033 <term><option>-aasubcolor=<replaceable>V</replaceable></option></term> | |
1034 <listitem><para> | |
1035 change subtitle color | |
1036 </para><para> | |
1037 where <replaceable>V</replaceable> can be: | |
1038 <literal>0</literal> (normal), | |
1039 <literal>1</literal> (dark), | |
1040 <literal>2</literal> (bold), | |
1041 <literal>3</literal> (bold font), | |
1042 <literal>4</literal> (reverse), | |
1043 <literal>5</literal> (special). | |
1044 </para></listitem> | |
1045 </varlistentry> | |
1046 </variablelist> | |
1047 | |
1048 <variablelist> | |
1049 <title>AAlib itself provides a large sum of options. Here are some | |
1050 important:</title> | |
1051 <varlistentry> | |
1052 <term><option>-aadriver</option></term> | |
1053 <listitem><simpara> | |
1054 set recommended aa driver (X11, curses, Linux) | |
1055 </simpara></listitem> | |
1056 </varlistentry> | |
1057 <varlistentry> | |
1058 <term><option>-aaextended</option></term> | |
1059 <listitem><simpara> | |
1060 use all 256 characters | |
1061 </simpara></listitem> | |
1062 </varlistentry> | |
1063 <varlistentry> | |
1064 <term><option>-aaeight</option></term> | |
1065 <listitem><simpara> | |
1066 use eight bit ASCII | |
1067 </simpara></listitem> | |
1068 </varlistentry> | |
1069 <varlistentry> | |
1070 <term><option>-aahelp</option></term> | |
1071 <listitem><simpara> | |
1072 prints out all aalib options | |
1073 </simpara></listitem> | |
1074 </varlistentry> | |
1075 </variablelist> | |
1076 | |
1077 <note> | |
1078 <para> | |
1079 The rendering is very CPU intensive, especially when using AA-on-X | |
1080 (using aalib on X), and it's least CPU intensive on standard, | |
1081 non-framebuffer console. Use SVGATextMode to set up a big textmode, | |
1082 then enjoy! (secondary head Hercules cards rock :)) (but imho you | |
10111 | 1083 can use <option>-vf 1bpp</option> option to get graphics on hgafb:) |
9675 | 1084 </para> |
1085 </note> | |
1086 | |
1087 <para> | |
1088 Use the <option>-framedrop</option> option if your computer isn't fast | |
1089 enough to render all frames! | |
1090 </para> | |
1091 | |
1092 <para> | |
1093 Playing on terminal you'll get better speed and quality using the Linux | |
1094 driver, not curses (<option>-aadriver linux</option>). But therefore you | |
1095 need write access on | |
1096 <filename>/dev/vcsa<replaceable><terminal></replaceable></filename>! | |
1097 That isn't autodetected by aalib, but vo_aa tries to find the best mode. | |
1098 See <ulink url="http://aa-project.sourceforge.net/tune"/> for further | |
1099 tuning issues. | |
1100 </para> | |
1101 </sect4> | |
1102 | |
1103 | |
1104 <sect4 id="vesa"> | |
1105 <title>VESA - output to VESA BIOS</title> | |
1106 | |
1107 <para> | |
1108 This driver was designed and introduced as a <emphasis role="bold">generic | |
1109 driver</emphasis> for any video card which has VESA VBE 2.0 compatible | |
1110 BIOS. Another advantage of this driver is that it tries to force TV output | |
1111 on. | |
1112 <citetitle>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, | |
1113 1998</citetitle> (Page 70) says: | |
1114 </para> | |
1115 | |
1116 <blockquote> | |
1117 <formalpara><title>Dual-Controller Designs</title> | |
1118 <para> | |
1119 VBE 3.0 supports the dual-controller design by assuming that since both | |
1120 controllers are typically provided by the same OEM, under control of a | |
1121 single BIOS ROM on the same graphics card, it is possible to hide the fact | |
1122 that two controllers are indeed present from the application. This has the | |
1123 limitation of preventing simultaneous use of the independent controllers, | |
1124 but allows applications released before VBE 3.0 to operate normally. The | |
1125 VBE Function 00h (Return Controller Information) returns the combined | |
1126 information of both controllers, including the combined list of available | |
1127 modes. When the application selects a mode, the appropriate controller is | |
1128 activated. Each of the remaining VBE functions then operates on the active | |
1129 controller. | |
1130 </para> | |
1131 </formalpara> | |
1132 </blockquote> | |
1133 | |
1134 <para> | |
1135 So you have chances to get working TV-out by using this driver. | |
1136 (I guess that TV-out frequently is standalone head or standalone output | |
1137 at least.) | |
1138 </para> | |
1139 | |
1140 <itemizedlist spacing="compact"> | |
1141 <title>ADVANTAGES</title> | |
1142 <listitem><simpara> | |
1143 You have chances to watch movies <emphasis role="bold">if Linux even doesn't | |
1144 know</emphasis> your video hardware. | |
1145 </simpara></listitem> | |
1146 <listitem><simpara> | |
1147 You don't need to have installed any graphics' related things on your | |
1148 Linux (like X11 (aka XFree86), fbdev and so on). This driver can be run | |
1149 from <emphasis role="bold">text-mode</emphasis>. | |
1150 </simpara></listitem> | |
1151 <listitem><simpara> | |
1152 You have chances to get <emphasis role="bold">working TV-out</emphasis>. | |
1153 (It's known at least for ATI's cards). | |
1154 </simpara></listitem> | |
1155 <listitem><simpara> | |
1156 This driver calls <function>int 10h</function> handler thus it's not | |
1157 an emulator - it calls <emphasis role="bold">real</emphasis> things of | |
1158 <emphasis>real</emphasis> BIOS in <emphasis>real-mode</emphasis>. | |
1159 (Finely - in vm86 mode). | |
1160 </simpara></listitem> | |
1161 <listitem><simpara> | |
1162 You can use VIDIX with it, thus getting accelerated video display | |
1163 <emphasis role="bold">and</emphasis> TV output at the same time! | |
1164 (Recommended for ATI cards.) | |
1165 </simpara></listitem> | |
10111 | 1166 <listitem><simpara> |
1167 If you have VESA VBE 3.0+, and you had specified | |
1168 <systemitem>monitor_hfreq, monitor_vfreq, monitor_dotclock</systemitem> somewhere | |
1169 (config file, or commandline) you will get the highest possible refresh rate. | |
1170 (Using General Timing Formula). To enable this feature you have to specify | |
1171 <emphasis role="bold">all</emphasis> your monitor options. | |
1172 </simpara></listitem> | |
9675 | 1173 </itemizedlist> |
1174 | |
1175 <itemizedlist spacing="compact"> | |
1176 <title>DISADVANTAGES</title> | |
1177 <listitem><simpara> | |
1178 It works only on <emphasis role="bold">x86 systems</emphasis>. | |
1179 </simpara></listitem> | |
1180 <listitem><simpara> | |
1181 It can be used only by <systemitem class="username">root</systemitem>. | |
1182 </simpara></listitem> | |
1183 <listitem><simpara> | |
1184 Currently it's available only for <emphasis role="bold">Linux</emphasis>. | |
1185 </simpara></listitem> | |
1186 </itemizedlist> | |
1187 | |
1188 <important> | |
1189 <para> | |
1190 Don't use this driver with <emphasis role="bold">GCC 2.96</emphasis>! | |
1191 It won't work! | |
1192 </para> | |
1193 </important> | |
1194 | |
1195 <variablelist> | |
1196 <title>COMMAND LINE OPTIONS AVAILABLE FOR VESA</title> | |
1197 <varlistentry> | |
1198 <term><option>-vo vesa:<replaceable>opts</replaceable></option></term> | |
1199 <listitem><simpara> | |
1200 currently recognized: <literal>dga</literal> to force dga mode and | |
1201 <literal>nodga</literal> to disable dga mode. In dga mode you can enable | |
10111 | 1202 double buffering via the <option>-double</option> option. Note: you may omit |
1203 these parameters to enable <emphasis role="bold">autodetection</emphasis> of | |
1204 dga mode. | |
9675 | 1205 </simpara></listitem> |
1206 </varlistentry> | |
1207 </variablelist> | |
1208 | |
1209 <itemizedlist spacing="compact"> | |
1210 <title>KNOWN PROBLEMS AND WORKAROUNDS</title> | |
1211 <listitem><simpara> | |
1212 If you have installed <emphasis role="bold">NLS</emphasis> font on your | |
1213 Linux box and run VESA driver from text-mode then after terminating | |
1214 <application>MPlayer</application> you will have | |
1215 <emphasis role="bold">ROM font</emphasis> loaded instead of national. | |
1216 You can load national font again by using <command>setsysfont</command> | |
1217 utility from the Mandrake distribution for exemple. | |
1218 (<emphasis role="bold">Hint</emphasis>: The same utility is used for | |
1219 localization of fbdev). | |
1220 </simpara></listitem> | |
1221 <listitem><simpara> | |
1222 Some <emphasis role="bold">Linux graphics drivers</emphasis> don't update | |
1223 active <emphasis role="bold">BIOS mode</emphasis> in DOS memory. | |
1224 So if you have such problem - always use VESA driver only from | |
1225 <emphasis role="bold">text-mode</emphasis>. Otherwise text-mode (#03) will | |
1226 be activated anyway and you will need restart your computer. | |
1227 </simpara></listitem> | |
1228 <listitem><simpara> | |
10111 | 1229 Often after terminating VESA driver you get <emphasis role="bold">black</emphasis> |
1230 screen. To return your screen to original state - simply switch to other console | |
1231 (by pressing <keycap>Alt</keycap>+<keycap>F<x></keycap>) | |
9675 | 1232 then switch to your previous console by the same way. |
1233 </simpara></listitem> | |
1234 <listitem><simpara> | |
1235 To get <emphasis role="bold">working TV-out</emphasis> you need have plugged | |
1236 TV-connector in before booting your PC since video BIOS initializes | |
1237 itself only once during POST procedure. | |
1238 </simpara></listitem> | |
1239 </itemizedlist> | |
1240 </sect4> | |
1241 | |
1242 | |
1243 <sect4 id="x11"> | |
1244 <title>X11</title> | |
1245 | |
1246 <para> | |
1247 Avoid if possible. Outputs to X11 (uses shared memory extension), with no | |
1248 hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but | |
1249 still slow) software scaling, use the options <option>-fs -zoom</option>. | |
1250 Most cards have hardware scaling support, use the <option>-vo xv</option> | |
1251 output for them, or <option>-vo xmga</option> for Matroxes. | |
1252 </para> | |
1253 | |
1254 <para> | |
1255 The problem is that most cards' driver doesn't support hardware | |
1256 acceleration on the second head/TV. In those cases, you see green/blue | |
1257 colored window instead of the movie. This is where this driver comes in | |
1258 handy, but you need powerful CPU to use software scaling. Don't use the SDL | |
1259 driver's software output+scaler, it has worse image quality! | |
1260 </para> | |
1261 | |
1262 <para> | |
1263 Software scaling is very slow, you better try changing video modes instead. | |
1264 It's very simple. See the <link linkend="dga-modelines">DGA section's | |
1265 modelines</link>, and insert them into your <filename>XF86Config</filename>. | |
1266 | |
1267 <itemizedlist spacing="compact"> | |
1268 <listitem><simpara> | |
1269 If you have XFree86 4.x.x: use the <option>-vm</option> option. It will | |
1270 change to a resolution your movie fits in. If it doesn't: | |
1271 </simpara></listitem> | |
1272 <listitem><simpara> | |
1273 With XFree86 3.x.x: you have to cycle through available resolutions | |
1274 with the | |
1275 <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>plus</keycap> | |
1276 and | |
1277 <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>minus</keycap> | |
1278 keys. | |
1279 </simpara></listitem> | |
1280 </itemizedlist> | |
1281 </para> | |
1282 | |
1283 <para> | |
1284 If you can't find the modes you inserted, browse XFree86's output. Some | |
1285 drivers can't use low pixelclocks that are needed for low resolution | |
1286 video modes. | |
1287 </para> | |
1288 </sect4> | |
1289 | |
1290 | |
1291 <sect4 id="vidix"> | |
1292 <title>VIDIX</title> | |
1293 | |
1294 <formalpara> | |
1295 <title>PREAMBLE</title> | |
1296 <para> | |
10111 | 1297 <acronym>VIDIX</acronym> is the abbreviation for <emphasis role="bold">VID</emphasis>eo |
9675 | 1298 <emphasis role="bold">I</emphasis>nterface for *ni<emphasis role="bold">X</emphasis>. |
1299 VIDIX was designed and introduced as an interface for fast user-space drivers | |
1300 providing such video performance as mga_vid does for Matrox cards. It's also very | |
1301 portable. | |
1302 </para> | |
1303 </formalpara> | |
1304 <para> | |
1305 This interface was designed as an attempt to fit existing video | |
1306 acceleration interfaces (known as mga_vid, rage128_vid, radeon_vid, | |
1307 pm3_vid) into a fixed scheme. It provides highlevel interface to chips | |
1308 which are known as BES (BackEnd scalers) or OV (Video Overlays). It doesn't | |
1309 provide lowlevel interface to things which are known as graphics servers. | |
1310 (I don't want to compete with X11 team in graphics mode switching). I.e. | |
1311 main goal of this interface is to maximize the speed of video playback. | |
1312 </para> | |
1313 | |
1314 <itemizedlist spacing="compact"> | |
1315 <title>USAGE</title> | |
1316 <listitem><simpara> | |
1317 You can use standalone video output driver: <option>-vo xvidix</option>. | |
1318 This driver was developed as X11's front end to VIDIX technology. It | |
1319 requires X server and can work only under X server.Note that, as it directly | |
1320 accesses the hardware and circumvents the X driver, pixmaps cached in the | |
1321 graphics card's memory may be corrupted. You can prevent this by limiting | |
1322 the amount of video memory used by X with the XF86Config option "VideoRam" | |
1323 in the device section. You should set this to the amount of memory installed | |
1324 on your card minus 4MB. If you have less than 8MB of video ram, you can use | |
1325 the option "XaaNoPixmapCache" in the screen section instead. | |
1326 </simpara></listitem> | |
1327 <listitem><simpara> | |
1328 You can use VIDIX subdevice which was applied to several video output | |
1329 drivers, such as: <option>-vo vesa:vidix</option> | |
1330 (<emphasis role="bold">Linux only</emphasis>) and | |
1331 <option>-vo fbdev:vidix</option>. | |
1332 </simpara></listitem> | |
1333 </itemizedlist> | |
1334 | |
1335 <para> | |
1336 Indeed it doesn't matter which video output driver is used with | |
1337 <emphasis role="bold">VIDIX</emphasis>. | |
1338 </para> | |
1339 | |
1340 <itemizedlist spacing="compact"> | |
1341 <title>REQUIREMENTS</title> | |
1342 <listitem><simpara> | |
1343 Video card should be in graphics mode (I write <emphasis role="bold">should</emphasis> | |
1344 simply because I tested it in text mode - it works but has awful output ;) Use | |
1345 AAlib for that). | |
1346 <emphasis role="bold">Note</emphasis>: Everyone can try this trick by commenting out mode | |
1347 switching in vo_vesa driver. | |
1348 </simpara></listitem> | |
1349 <listitem><simpara> | |
1350 <application>MPlayer</application>'s video output driver should know | |
1351 active video mode and be able to tell to VIDIX subdevice some video | |
1352 characteristics of server. | |
1353 </simpara></listitem> | |
1354 </itemizedlist> | |
1355 | |
1356 <formalpara> | |
1357 <title>USAGE METHODS</title> | |
1358 <para> | |
10111 | 1359 When VIDIX is used as <emphasis role="bold">subdevice</emphasis> (<option>-vo |
9675 | 1360 vesa:vidix</option>) then video mode configuration is performed by video |
10111 | 1361 output device (<emphasis role="bold">vo_server</emphasis> in short). Therefore you can |
9675 | 1362 pass into command line of <application>MPlayer</application> the same keys |
1363 as for vo_server. In addition it understands <option>-double</option> key | |
1364 as globally visible parameter. (I recommend using this key with VIDIX at | |
1365 least for ATI's card). As for <option>-vo xvidix</option> : currently it | |
1366 recognizes the following options: <option>-fs -zoom -x -y -double</option>. | |
1367 </para> | |
1368 </formalpara> | |
1369 <para> | |
1370 Also you can specify VIDIX's driver directly as third subargument in | |
1371 command line: | |
1372 | |
1373 <screen>mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi</screen> | |
1374 or | |
1375 <screen>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi</screen> | |
1376 | |
1377 But it's dangerous, and you shouldn't do that. In this case given driver | |
1378 will be forced and result is unpredictable (it may | |
1379 <emphasis role="bold">freeze</emphasis> your computer). You should do that | |
1380 ONLY if you are absolutely sure it will work, and | |
1381 <application>MPlayer</application> doesn't do it automatically. Please tell | |
1382 about it to the developers. The right way is to use VIDIX without arguments | |
1383 to enable driver autodetection. | |
1384 </para> | |
1385 | |
1386 <para> | |
1387 VIDIX is new technology and it's extremely possible that on your | |
1388 system it won't work. In this case only solution for you | |
1389 it's port it (mainly libdha). But there is hope that it will work on those | |
1390 systems where X11 does. | |
1391 </para> | |
1392 | |
1393 <para> | |
1394 Since VIDIX requires direct hardware access you can either run it as root | |
1395 or set the SUID bit on the <application>MPlayer</application> binary | |
10111 | 1396 (<emphasis role="bold">Warning: This is a security risk!</emphasis>). |
9675 | 1397 Alternatively, you can use a special kernel module, like this: |
1398 </para> | |
1399 | |
1400 <procedure> | |
1401 <step><para> | |
1402 Download the <ulink url="http://www.arava.co.il/matan/svgalib/">development version</ulink> | |
1403 of svgalib (for example 1.9.17), <emphasis role="bold">OR</emphasis> | |
1404 download a version made by Alex especially for usage with <application>MPlayer</application> | |
1405 (it doesn't need the svgalib source to compile) from | |
1406 <ulink url="http://www.mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2">here</ulink>. | |
1407 </para></step> | |
1408 <step><para> | |
1409 Compile the module in the <filename class="directory">svgalib_helper</filename> | |
10111 | 1410 directory (it can be found inside the <filename class="directory">svgalib-1.9.17/kernel/</filename> |
9675 | 1411 directory if you've downloaded the source from the svgalib site) and insmod it. |
1412 </para></step> | |
1413 <step><para> | |
1414 Move the <filename class="directory">svgalib_helper</filename> directory to | |
1415 <filename class="directory">mplayer/main/libdha/svgalib_helper</filename>. | |
1416 </para></step> | |
1417 <step><para> | |
1418 Required if you download the source from the svgalib site: Remove the comment before the | |
1419 CFLAGS line containing "svgalib_helper" string from the | |
1420 <filename class="directory">libdha/Makefile</filename>. | |
1421 </para></step> | |
1422 <step><para> | |
1423 Recompile and install libdha. | |
1424 </para></step> | |
1425 </procedure> | |
1426 | |
1427 <sect5 id="vidix-ati"> | |
1428 <title>ATI cards</title> | |
1429 <para> | |
1430 Currently most ATI cards are supported natively, from Mach64 to the | |
1431 newest Radeons. | |
1432 </para> | |
1433 | |
1434 <para> | |
1435 There are two compiled binaries: <filename>radeon_vid</filename> for Radeon and | |
1436 <filename>rage128_vid</filename> for Rage 128 cards. You may force one or let | |
1437 the VIDIX system autoprobe all available drivers. | |
1438 </para> | |
1439 </sect5> | |
1440 | |
1441 <sect5 id="vidix-mga"> | |
1442 <title>Matrox cards</title> | |
1443 <para> | |
1444 Matrox G200,G400,G450 and G550 have been reported to work. | |
1445 </para> | |
1446 | |
1447 <para> | |
1448 The driver supports video equalizers and should be nearly as fast as the | |
1449 <link linkend="mga_vid">Matrox framebuffer</link> | |
1450 </para> | |
1451 </sect5> | |
1452 | |
1453 <sect5 id="vidix-trident"> | |
1454 <title>Trident cards</title> | |
1455 <para> | |
1456 There is a driver available for the Trident Cyberblade/i1 chipset, which | |
1457 can be found on VIA Epia motherboards. | |
1458 </para> | |
1459 | |
1460 <para> | |
1461 The driver was written and is maintained by Alastair M. Robinson, who | |
1462 offers the very latest driver versions for download from his | |
1463 <ulink url="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">homepage</ulink>. | |
10111 | 1464 The drivers are added to <application>MPlayer</application> with only a short |
1465 delay, so CVS should always be up to date. | |
9675 | 1466 </para> |
1467 </sect5> | |
1468 | |
1469 <sect5 id="vidix-3dlabs"> | |
1470 <title>3DLabs cards</title> | |
1471 <para> | |
1472 Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, no one | |
1473 has tested it, so reports are welcome. | |
1474 </para> | |
1475 </sect5> | |
1476 </sect4> | |
1477 | |
1478 <sect4 id="directfb"> | |
1479 <title>DirectFB</title> | |
1480 <blockquote><para> | |
1481 "DirectFB is a graphics library which was designed with embedded systems | |
1482 in mind. It offers maximum hardware accelerated performance at a minimum | |
1483 of resource usage and overhead." - quoted from <ulink url="http://www.directfb.org"/> | |
1484 </para></blockquote> | |
1485 | |
1486 <para>I'll exclude DirectFB features from this section.</para> | |
1487 | |
1488 <para> | |
10111 | 1489 Though <application>MPlayer</application> is not supported as a "video |
1490 provider" in DirectFB, this output driver will enable video playback through | |
1491 DirectFB. It will - of course - be accelerated, on my Matrox G400 DirectFB's speed | |
1492 was the same as XVideo. | |
9675 | 1493 </para> |
1494 | |
1495 <para> | |
1496 Always try to use the newest version of DirectFB. You can use DirectFB options on | |
1497 the command line, using the <option>-dfbopts</option> option. Layer selection can | |
1498 be done by the subdevice method, e.g.: <option>-vo directfb:2</option> | |
1499 (layer -1 is default: autodetect) | |
1500 </para> | |
1501 </sect4> | |
1502 | |
1503 <sect4 id="dfbmga"> | |
1504 <title>DirectFB/Matrox (dfbmga)</title> | |
1505 <para> | |
1506 Please read the <link linkend="directfb">main DirectFB section</link> or general | |
1507 informations. | |
1508 </para> | |
1509 | |
1510 <para>This video output driver will enable CRTC2 (on the second head) on the | |
9683 | 1511 Matrox G400/G450/G550 card, displaying video <emphasis role="bold">independently</emphasis> |
9675 | 1512 of the first head. |
1513 </para> | |
1514 | |
1515 <para> | |
1516 Instructions on how to make it work can be found in the | |
1517 <ulink url="../../tech/directfb.txt">tech section</ulink> | |
1518 or directly on Ville Syrjala's | |
9677 | 1519 <ulink url="http://www.sci.fi/~syrjala/directfb/Matrox_TV-out_README.txt">home page</ulink>. |
9675 | 1520 </para> |
1521 | |
1522 <note><para> | |
10132 | 1523 the first DirectFB version with which we could kick this working was |
1524 0.9.17 (it's buggy, needs that <systemitem>surfacemanager</systemitem> patch from | |
1525 the URL above). Anyway, porting of the CRTC2 code to <emphasis role="bold">mga_vid</emphasis> | |
1526 is underway. | |
9675 | 1527 </para></note> |
1528 </sect4> | |
1529 </sect3> | |
1530 | |
1531 <sect3 id="mpeg_decoders"> | |
1532 <title>MPEG decoders</title> | |
1533 | |
1534 <sect4 id="dvb"> | |
1535 <title>DVB</title> | |
1536 <para> | |
1537 <application>MPlayer</application> supports cards with the Siemens DVB chipset | |
1538 from vendors like Siemens, Technotrend, Galaxis or Hauppauge. The latest DVB | |
1539 drivers are available from the <ulink url="http://www.linuxtv.org">Linux TV site</ulink>. | |
1540 If you want to do software transcoding you should have at least a 1GHz CPU. | |
1541 </para> | |
1542 | |
1543 <para> | |
1544 Configure should detect your DVB card. If it did not, force detection with | |
1545 </para> | |
1546 | |
1547 <para><screen>./configure --enable-dvb</screen></para> | |
1548 | |
1549 <para>If you have ost headers at a non-standard path, set the path with</para> | |
1550 | |
10111 | 1551 <para><screen>./configure --with-extraincdir=<replaceable>DVB source directory</replaceable>/ost/include |
9675 | 1552 </screen></para> |
1553 | |
1554 <para>Then compile and install as usual.</para> | |
1555 | |
1556 <formalpara> | |
1557 <title>USAGE</title> | |
1558 <para> | |
1559 Hardware decoding (playing standard MPEG1/2 files) can be done with this command: | |
1560 </para> | |
1561 </formalpara> | |
1562 <para><screen>mplayer -ao mpegpes -vo mpegpes file.mpg|vob</screen></para> | |
1563 | |
1564 <para> | |
1565 Software decoding or transcoding different formats to MPEG1 can be achieved using | |
1566 a command like this: | |
1567 </para> | |
1568 <para><screen> | |
1569 mplayer -ao mpegpes -vo mpegpes yourfile.ext | |
9677 | 1570 mplayer -ao mpegpes -vo mpegpes -vf expand yourfile.ext |
9675 | 1571 </screen></para> |
1572 | |
1573 <para> | |
1574 Note that DVB cards only support heights 288 and 576 for PAL or 240 and 480 for | |
1575 NTSC. You <emphasis role="bold">must</emphasis> escale for other heights by adding | |
1576 <option>scale=width:height</option> with the width and height you want to the | |
9677 | 1577 <option>-vf</option> option. DVB cards accept various widths, like 720, 704, |
9675 | 1578 640, 512, 480, 352 etc and do hardware scaling in horizontal direction, so you |
1579 do not need to scale horizontally in most cases. For a 512x384 (aspect 4:3) | |
1580 DivX try: | |
1581 </para> | |
1582 | |
9677 | 1583 <para><screen>mplayer -ao mpegpes -vo mpegpes -vf scale=512:576</screen></para> |
9675 | 1584 |
1585 <para>If you have a widescreen movie and you do not want to scale it to full height, | |
1586 you can use the <option>expand=w:h</option> filter to add black bands. To view a | |
1587 640x384 DivX, try: | |
1588 </para> | |
1589 | |
9677 | 1590 <para><screen>mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 file.avi |
9675 | 1591 </screen></para> |
1592 | |
1593 <para>If your CPU is too slow for a full size 720x576 DivX, try downscaling:</para> | |
1594 | |
9677 | 1595 <para><screen>mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 file.avi |
9675 | 1596 </screen></para> |
1597 | |
1598 <para>If speed does not improve, try vertical downscaling, too:</para> | |
1599 | |
9677 | 1600 <para><screen>mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 file.avi |
9675 | 1601 </screen></para> |
1602 | |
1603 <para> | |
1604 For OSD and subtitles use the OSD feature of the expand filter. So, instead of | |
1605 <option>expand=w:h</option> or <option>expand=w:h:x:y</option>, use | |
1606 <option>expand=w:h:x:y:1</option> (the 5th parameter <option>:1</option> | |
1607 at the end will enable OSD rendering). You may want to move the image up a bit | |
1608 to get a bigger black zone for subtitles. You may also want to move subtitles up, | |
1609 if they are outside your TV screen, use the <option>-subpos <0-100></option> | |
1610 option to adjust this (<option>-subpos 80</option> is a good choice). | |
1611 </para> | |
1612 | |
1613 <para> | |
1614 In order to play non-25fps movies on a PAL TV or with a slow CPU, add the | |
1615 <option>-framedrop</option> option. | |
1616 </para> | |
1617 | |
1618 <para> | |
1619 To keep the aspect ratio of DivX files and get the optimal scaling | |
1620 parameters (hardware horizontal scaling and software vertical scaling | |
1621 while keeping the right aspect ratio), use the new dvbscale filter: | |
1622 </para> | |
1623 | |
1624 <para><screen> | |
10682 | 1625 for a 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1 |
1626 for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1 | |
9675 | 1627 </screen></para> |
1628 | |
1629 <formalpara> | |
1630 <title>FUTURE</title> | |
1631 <para> | |
1632 If you have questions or want to hear feature announcements and take part in | |
1633 discussions on this subject, join our | |
1634 <ulink url="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</ulink> | |
1635 mailing list. Please remember that the list language is English. | |
1636 </para> | |
1637 </formalpara> | |
1638 | |
1639 <para> | |
1640 In the future you may expect the ability to display OSD and subtitles using | |
1641 the native OSD feature of DVB cards, as well as more fluent playback of | |
1642 non-25fps movies and realtime transcoding between MPEG2 and MPEG4 (partial | |
1643 decompression). | |
1644 </para> | |
1645 </sect4> | |
1646 | |
1647 <sect4 id="dxr2"> | |
1648 <title>DXR2</title> | |
1649 <para>MPlayer supports hardware accelerated playback with the Creative DXR2 card.</para> | |
1650 <para> | |
1651 First of all you will need properly installed DXR2 drivers. You can find | |
1652 the drivers and installation instructions at the | |
1653 <ulink url="http://dxr2.sourceforge.net/">DXR2 Resource Center</ulink> site. | |
1654 </para> | |
1655 | |
1656 <variablelist> | |
1657 <title>USAGE</title> | |
1658 <varlistentry> | |
1659 <term><option>-vo dxr2</option></term> | |
1660 <listitem><para>enable TV output</para></listitem> | |
1661 </varlistentry> | |
1662 | |
1663 <varlistentry> | |
1664 <term><option>-vo dxr2:x11</option> or <option>-vo dxr2:xv</option></term> | |
1665 <listitem><para>enable Overlay output in X11</para></listitem> | |
1666 </varlistentry> | |
1667 | |
1668 <varlistentry> | |
1669 <term><option>-dxr2 <option1:option2:...></option></term> | |
1670 <listitem><para>This option is used to control the DXR2 driver.</para></listitem> | |
1671 </varlistentry> | |
1672 </variablelist> | |
1673 | |
1674 <para> | |
1675 The overlay chipset used on the DXR2 is of pretty bad quality but the | |
1676 default settings should work for everybody. The OSD may be usable with the | |
1677 overlay (not on TV) by drawing it in the colorkey. With the default colorkey | |
1678 settings you may get variable results, usually you will see the colorkey | |
1679 around the characters or some other funny effect. But if you properly adjust | |
1680 the colorkey settings you should be able to get acceptable results. | |
1681 </para> | |
1682 | |
1683 <para>Please see the manpage for available options.</para> | |
1684 </sect4> | |
1685 | |
1686 <sect4 id="dxr3"> | |
1687 <title>DXR3/Hollywood+</title> | |
1688 <para> | |
1689 <application>MPlayer</application> supports hardware accelerated playback | |
1690 with the Creative DXR3 and Sigma Designs Hollywood Plus cards. These cards | |
1691 both use the em8300 MPEG decoder chip from Sigma Designs. | |
1692 </para> | |
1693 | |
1694 <para> | |
1695 First of all you will need properly installed DXR3/H+ drivers, version 0.12.0 | |
1696 or later. You can find the drivers and installation instructions at the | |
1697 <ulink url="http://dxr3.sourceforge.net/">DXR3 & Hollywood Plus for Linux</ulink> | |
10111 | 1698 site. <filename>configure</filename> should detect your card automatically, |
1699 compilation should go without problems. | |
9675 | 1700 </para> |
1701 | |
1702 <!-- FIXME: find a more clear presentation --> | |
1703 <variablelist> | |
1704 <title>USAGE</title> | |
1705 <varlistentry> | |
10111 | 1706 <term><option>-vo dxr3:prebuf:sync:norm=x:<replaceable>device</replaceable></option></term> |
9675 | 1707 <listitem><para> |
1708 <option>overlay</option> activates the overlay instead of TVOut. It requires | |
1709 that you have a properly configured overlay setup to work right. The easiest | |
1710 way to configure the overlay is to first run autocal. Then run mplayer with | |
1711 dxr3 output and without overlay turned on, run dxr3view. In dxr3view you can | |
1712 tweak the overlay settings and see the effects in realtime, perhaps this feature | |
1713 will be supported by the MPlayer GUI in the future. When overlay is properly set | |
10111 | 1714 up you will no longer need to use dxr3view. |
9675 | 1715 <option>prebuf</option> turns on prebuffering. Prebuffering is a feature of the |
1716 em8300 chip that enables it to hold more than one frame of video at a time. This | |
1717 means that when you are running with prebuffering MPlayer will try to keep the | |
1718 video buffer filled with data at all times. If you are on a slow machine MPlayer | |
1719 will probably use close to, or precisely 100% of CPU. This is especially common | |
1720 if you play pure MPEG streams (like DVDs, SVCDs a.s.o.) since MPlayer will not | |
1721 have to reencode it to MPEG it will fill the buffer very fast. | |
1722 With prebuffering video playback is <emphasis role="bold">much</emphasis> | |
1723 less sensitive to other programs hogging the CPU, it will not drop frames unless | |
1724 applications hog the CPU for a long time. | |
1725 When running without prebuffering the em8300 is much more sensitive to CPU load, | |
1726 so it is highly suggested that you turn on MPlayer's <option>-framedrop</option> | |
1727 option to avoid further loss of sync. | |
1728 <option>sync</option> will turn on the new sync-engine. This is currently an | |
1729 experimental feature. With the sync feature turned on the em8300's internal clock | |
1730 will be monitored at all times, if it starts to deviate from MPlayer's clock it | |
1731 will be reset causing the em8300 to drop any frames that are lagging behind. | |
1732 <option>norm=x</option> will set the TV norm of the DXR3 card without the need | |
1733 for external tools like em8300setup. Valid norms are 5 = NTSC, 4 = PAL-60, | |
1734 3 = PAL. Special norms are 2 (auto-adjust using PAL/PAL-60) and 1 (auto-adjust | |
1735 using PAL/NTSC) because they decide which norm to use by looking at the frame | |
1736 rate of the movie. norm = 0 (default) does not change the current norm. | |
10111 | 1737 <option><replaceable>device</replaceable></option> = device number to use if you have more than one em8300 |
9675 | 1738 card. |
1739 Any of these options may be left out. | |
1740 <option>:prebuf:sync</option> seems to work great when playing DivX movies. People | |
1741 have reported problems using the prebuf option when playing MPEG1/2 files. You | |
1742 might want to try running without any options first, if you have sync problems, | |
1743 or DVD subtitle problems, give <option>:sync</option> a try. | |
1744 </para></listitem> | |
1745 </varlistentry> | |
1746 | |
1747 <varlistentry> | |
1748 <term><option>-ao oss:/dev/em8300_ma-<replaceable>X</replaceable></option></term> | |
1749 <listitem><para> | |
1750 For audio output, where <replaceable>X</replaceable> is the device number (0 if one card). | |
1751 </para></listitem> | |
1752 </varlistentry> | |
1753 | |
1754 <varlistentry> | |
1755 <term><option>-aop list=resample:fout=<replaceable>xxxxx</replaceable></option></term> | |
1756 <listitem><para> | |
1757 The em8300 cannot play back samplerates lower than 44100Hz. If the sample | |
1758 rate is below 44100Hz select either 44100Hz or 48000Hz depending on which | |
1759 one matches closest. I.e. if the movie uses 22050Hz use 44100Hz as | |
1760 44100 / 2 = 22050, if it is 24000Hz use 48000Hz as 48000 / 2 = 24000 and so on. | |
1761 This does not work with digital audio output (<option>-ac hwac3</option>). | |
1762 </para></listitem> | |
1763 </varlistentry> | |
1764 | |
1765 <varlistentry> | |
9677 | 1766 <term><option>-vf lavc/fame</option></term> |
9675 | 1767 <listitem><para> |
1768 To watch non-MPEG content on the em8300 (i.e. DivX or RealVideo) you have to | |
1769 specify an MPEG1 video filter such as libavcodec (lavc) or libfame (fame). At | |
1770 the moment lavc is both faster and gives better image quality, it is suggested | |
1771 that you use that unless you have problems with it. See the man page for further | |
9677 | 1772 info about <option>-vf lavc/fame</option>. |
9675 | 1773 Using lavc is highly recommended. Currently there is no way of setting the fps |
1774 of the em8300 which means that it is fixed to 29.97fps. Because of this it is | |
10111 | 1775 highly recommended that you use <option>-vf lavc=<replaceable>quality</replaceable>:25</option> |
9675 | 1776 especially if you are using prebuffering. Then why 25 and not 29.97? Well, the |
1777 thing is that when you use 29.97 the picture becomes a bit jumpy. The reason for | |
1778 this is unknown to us. If you set it to somewhere between 25 and 27 the picture | |
1779 becomes stable. For now all we can do is accept this for a fact. | |
1780 </para></listitem> | |
1781 </varlistentry> | |
1782 | |
1783 <varlistentry> | |
9677 | 1784 <term><option>-vf expand=-1:-1:-1:-1:1</option></term> |
9675 | 1785 <listitem><para> |
1786 Although the DXR3 driver can put some OSD onto the MPEG1/2/4 video, it has | |
1787 much lower quality than MPlayer's traditional OSD, and has several refresh | |
1788 problems as well. The command line above will firstly convert the input | |
1789 video to MPEG4 (this is mandatory, sorry), then apply an expand filter which | |
1790 won't expand anything (-1: default), but apply the normal OSD onto the picture | |
1791 (that's what the "1" at the end does). | |
1792 </para></listitem> | |
1793 </varlistentry> | |
1794 | |
1795 <varlistentry> | |
1796 <term><option>-ac hwac3</option></term> | |
1797 <listitem><para> | |
1798 The em8300 supports playing back AC3 audio (surround sound) through the | |
1799 digital audio output of the card. See the <option>-ao oss</option> option above, | |
1800 it must be used to specify the DXR3's output instead of a soundcard. | |
1801 </para></listitem> | |
1802 </varlistentry> | |
1803 </variablelist> | |
1804 </sect4> | |
1805 | |
1806 </sect3> | |
1807 | |
1808 <sect3 id="other"> | |
1809 <title>Other visualization hardware</title> | |
1810 | |
1811 <sect4 id="zr"> | |
1812 <title>Zr</title> | |
1813 | |
1814 <para> | |
1815 This is a display-driver (<option>-vo zr</option>) for a number of MJPEG | |
1816 capture/playback cards (tested for DC10+ and Buz, and it should work for the | |
1817 LML33, the DC10). The driver works by encoding the frame to JPEG and then | |
1818 sending it to the card. For the JPEG encoding <systemitem>libavcodec</systemitem> | |
1819 is used, and required. With the special <emphasis>cinerama</emphasis> mode, | |
1820 you can watch movies in true wide screen provided that you have two beamers | |
1821 and two MJPEG cards. Depending on resolution and quality settings, this driver | |
1822 may require a lot of CPU power, remember to specify <option>-framedrop</option> | |
1823 if your machine is too slow. Note: My AMD K6-2 350MHz is (with | |
1824 <option>-framedrop</option>) quite adequate for watching VCD sized material and | |
1825 downscaled movies. | |
1826 </para> | |
1827 | |
1828 <para> | |
1829 This driver talks to the kernel driver available at | |
1830 <ulink url="http://mjpeg.sourceforge.net"/>, so | |
1831 you must get it working first. The presence of an MJPEG card is autodetected by the | |
1832 <filename>configure</filename> script, if autodetection fails, force detection with | |
1833 <screen>./configure --enable-zr</screen> | |
1834 </para> | |
1835 <para> | |
1836 The output can be controlled by several options, a long description of the | |
1837 options can be found in the man page, a short list of options can be viewed | |
1838 by running | |
1839 <screen>mplayer -zrhelp</screen> | |
1840 </para> | |
1841 | |
1842 <para> | |
1843 Things like scaling and the OSD (on screen display) are not handled by | |
1844 this driver but can be done using the video filters. For example, suppose | |
1845 that you have a movie with a resolution of 512x272 and you want to view it | |
1846 fullscreen on your DC10+. There are three main possibilities, you may scale | |
1847 the movie to a width of 768, 384 or 192. For performance and quality reasons, | |
1848 I would choose to scale the movie to 384x204 using the fast bilinear software | |
1849 scaler. The commandline is | |
9677 | 1850 <screen>mplayer -vo zr -sws 0 -vf scale=384:204 movie.avi</screen> |
9675 | 1851 </para> |
1852 | |
1853 <para> | |
1854 Cropping can be done by the <systemitem>crop</systemitem> filter and by this | |
1855 driver itself. Suppose that a movie is too wide for display on your Buz and | |
1856 that you want to use <option>-zrcrop</option> to make the movie less wide, | |
9784
286ac03ce5c5
Typos, noticed by Roberto Togni <r_togni@libero.it>.
diego
parents:
9683
diff
changeset
|
1857 then you would issue the following command |
9675 | 1858 <screen>mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi</screen> |
1859 </para> | |
1860 | |
1861 <para> | |
10111 | 1862 if you want to use the <option>crop</option> filter, you would do |
9677 | 1863 <screen>mplayer -vo zr -vf crop=720:320:80:0 benhur.avi</screen> |
9675 | 1864 </para> |
1865 | |
1866 <para> | |
1867 Extra occurances of <option>-zrcrop</option> invoke <emphasis>cinerama</emphasis> | |
1868 ode, i.e. you can distribute the movie over several TV's or beamers to create a | |
1869 larger screen. Suppose you have two beamers. The left one is connected to your | |
1870 Buz at <systemitem>/dev/video1</systemitem> and the right one is connected to | |
1871 your DC10+ at <systemitem>/dev/video0</systemitem>. The movie has a resolution | |
1872 of 704x288. Suppose also that you want the right beamer in black and white and | |
1873 that the right beamer should have jpeg frames at quality 10, then you would | |
1874 issue the following command | |
1875 <screen> | |
1876 mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ | |
1877 -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi | |
1878 </screen> | |
1879 </para> | |
1880 | |
1881 <para> | |
1882 You see that the options appearing before the second <option>-zrcrop</option> | |
1883 only apply to the DC10+ and that the options after the second | |
1884 <option>-zrcrop</option> apply to the Buz. The maximum number of MJPEG cards | |
9784
286ac03ce5c5
Typos, noticed by Roberto Togni <r_togni@libero.it>.
diego
parents:
9683
diff
changeset
|
1885 participating in <emphasis>cinerama</emphasis> is four, so you can build a |
9675 | 1886 2x2 vidiwall. |
1887 </para> | |
1888 | |
1889 <para> | |
10111 | 1890 Finally an important remark: Do not start or stop XawTV on the playback device |
9675 | 1891 during playback, it will crash your computer. It is, however, fine to |
1892 <emphasis role="bold">FIRST</emphasis> start XawTV, <emphasis role="bold">THEN</emphasis> | |
1893 start MPlayer, wait for MPlayer to finish and <emphasis role="bold">THEN</emphasis> | |
1894 stop XawTV. | |
1895 </para> | |
1896 </sect4> | |
1897 | |
1898 <sect4 id="blinkenlights"> | |
1899 <title>Blinkenlights</title> | |
1900 <para> | |
1901 This driver is capable of playback using the Blinkenlights UDP protocol. If you | |
1902 don't know what <ulink url="http://www.blinkenlights.de/">Blinkenlights</ulink> | |
1903 is, you don't need this driver. | |
1904 </para> | |
1905 </sect4> | |
1906 </sect3> | |
1907 | |
1908 <sect3 id="tvout"> | |
1909 <title>TV-out support</title> | |
1910 | |
1911 <sect4 id="tvout-mga-g400"> | |
1912 <title>Matrox G400 cards</title> | |
1913 | |
1914 <para> | |
1915 Under Linux you have two methods to get G400 TV out working: | |
1916 </para> | |
1917 | |
1918 <important> | |
1919 <para> | |
1920 for Matrox G450/G550 TV-out instructions, please see the next section! | |
1921 </para> | |
1922 </important> | |
1923 | |
1924 <variablelist> | |
1925 <varlistentry> | |
1926 <term>XFree86</term> | |
1927 <listitem><para> | |
1928 Using the driver and the HAL module, available from <ulink | |
1929 url="http://www.matrox.com">Matrox's site</ulink>. This will give you X | |
1930 on the TV. | |
1931 </para><para> | |
1932 <emphasis role="bold">This method doesn't give you accelerated playback</emphasis> | |
1933 as under Windows! The second head has only YUV framebuffer, the <emphasis>BES</emphasis> | |
1934 (Back End Scaler, the YUV scaler on G200/G400/G450/G550 cards) doesn't | |
1935 work on it! The windows driver somehow workarounds this, probably by | |
1936 using the 3D engine to zoom, and the YUV framebuffer to display the | |
1937 zoomed image. If you really want to use X, use the <option>-vo x11 -fs | |
1938 -zoom</option> options, but it will be <emphasis role="bold">SLOW</emphasis>, | |
1939 and has <emphasis role="bold">Macrovision</emphasis> copy protection enabled | |
1940 (you can "workaround" Macrovision using this | |
10111 | 1941 <ulink url="http://avifile.sourceforge.net/mgamacro.pl">perl script</ulink>). |
9675 | 1942 </para></listitem> |
1943 </varlistentry> | |
1944 <varlistentry> | |
1945 <term>Framebuffer</term> | |
1946 <listitem><para> | |
1947 Using the <emphasis role="bold">matroxfb modules</emphasis> in the 2.4 | |
1948 kernels. 2.2 kernels don't have the TVout feature in them, thus unusable | |
1949 for this. You have to enable ALL matroxfb-specific feature during compilation | |
10254 | 1950 (except MultiHead), and compile them into <emphasis role="bold">modules</emphasis>! |
9675 | 1951 You'll also need I2C enabled. |
1952 </para> | |
1953 | |
1954 <procedure> | |
1955 <step><para> | |
1956 Enter <filename class="directory">TVout/matroxset</filename> and type | |
1957 <command>make</command>. Install <filename class="directory">matroxset</filename> into | |
1958 somewhere in your <envar>PATH</envar>. | |
1959 </para></step> | |
1960 <step><para> | |
1961 If you don't have <command>fbset</command> installed, enter | |
1962 <filename class="directory">TVout/fbset</filename> and type <command>make</command>. | |
1963 Install <filename class="directory">fbset</filename> into somewhere in your | |
1964 <envar>PATH</envar>. | |
1965 </para></step> | |
1966 <step><para> | |
10254 | 1967 If you don't have <command>con2fb</command> installed, enter |
1968 <filename class="directory">TVout/con2fb</filename> and type <command>make</command>. | |
1969 Install <filename class="directory">con2fb</filename> into somewhere in your | |
1970 <envar>PATH</envar>. | |
1971 </para></step> | |
1972 <step><para> | |
9675 | 1973 Then enter into the <filename class="directory">TVout/</filename> directory |
1974 in the <application>MPlayer</application> source, and execute | |
1975 <filename>./modules</filename> as root. Your text-mode console will | |
1976 enter into framebuffer mode (no way back!). | |
1977 </para></step> | |
1978 <step><para> | |
1979 Next, EDIT and run the <filename>./matroxtv</filename> script. This will | |
1980 present you to a very simple menu. Press <keycap>2</keycap> and | |
1981 <keycap>Enter</keycap>. Now you should have the same picture on your | |
10111 | 1982 monitor, and TV. If the TV (PAL by default) |
9675 | 1983 picture has some weird stripes on it, the script wasn't able to set the |
1984 resolution correctly (to 640x512 by default). Try other resolutions | |
1985 from the menu and/or experiment with fbset. | |
1986 </para></step> | |
1987 <step><para> | |
1988 Yoh. Next task is to make the cursor on tty1 (or whatever) to | |
1989 disappear, and turn off screen blanking. Execute the following | |
1990 commands: | |
1991 | |
1992 <screen> | |
1993 echo -e '\033[?25l' | |
1994 setterm -blank 0<!-- | |
1995 --></screen> | |
1996 or | |
1997 <screen> | |
1998 setterm -cursor off | |
1999 setterm -blank 0<!-- | |
2000 --></screen> | |
2001 | |
2002 You possibly want to put the above into a script, and also clear the | |
2003 screen. To turn the cursor back: | |
2004 <screen>echo -e '\033[?25h'</screen> or | |
2005 <screen>setterm -cursor on</screen> | |
2006 </para></step> | |
2007 <step><para> | |
2008 Yeah kewl. Start movie playing with | |
2009 <screen> | |
2010 mplayer -vo mga -fs -screenw 640 -screenh 512 <replaceable>filename</replaceable><!-- | |
2011 --></screen> | |
2012 | |
2013 (If you use X, now change to matroxfb with for example | |
2014 <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>F1</keycap>.) | |
2015 Change <literal>640</literal> and <literal>512</literal> if you set | |
2016 the resolution to other... | |
2017 </para></step> | |
2018 <step><para> | |
2019 <emphasis role="bold">Enjoy the ultra-fast ultra-featured Matrox TV | |
2020 output (better than Xv)!</emphasis> | |
2021 </para></step> | |
2022 </procedure> | |
2023 </listitem> | |
2024 </varlistentry> | |
2025 </variablelist> | |
2026 | |
2027 <formalpara> | |
2028 <title>Building a Matrox TV-out cable</title> | |
2029 <para> | |
2030 No one takes any responsibility, nor guarantee for any damage caused | |
2031 by this documentation. | |
2032 </para> | |
2033 </formalpara> | |
2034 | |
2035 <formalpara> | |
2036 <title>Cable for G400</title> | |
2037 <para> | |
2038 The CRTC2 connector's fourth pin is the composite video signal. The | |
2039 ground are the sixth, seventh and eighth pins. (info contributed | |
2040 from Balázs Rácz) | |
2041 </para> | |
2042 </formalpara> | |
2043 | |
2044 <formalpara> | |
2045 <title>Cable for G450</title> | |
2046 <para> | |
2047 The CRTC2 connector's first pin is the composite video signal. The | |
2048 ground are the fifth, sixth, seventh, and fifteenth (5, 6, 7, 15) | |
2049 pins. (info contributed from Balázs Kerekes) | |
2050 </para> | |
2051 </formalpara> | |
2052 </sect4> | |
2053 | |
2054 <sect4 id="tv-out_matrox_g450"> | |
2055 <title>Matrox G450/G550 cards</title> | |
2056 <para> | |
2057 TV output support for these cards has only been recently introduced, and is | |
2058 not yet in the mainstream kernel. Currently the <emphasis role="bold">mga_vid</emphasis> | |
2059 module can't be used AFAIK, because the G450/G550 driver works only in one | |
2060 configuration: the first CRTC chip (with much more features) on the first display | |
2061 (on monitor), and the second CRTC (no <emphasis role="bold">BES</emphasis> - for | |
2062 explanation on BES, please see the G400 section above) on TV. So you can only | |
2063 use <application>MPlayer</application>'s <emphasis>fbdev</emphasis> output driver | |
2064 at the present. | |
2065 </para> | |
2066 | |
2067 <para> | |
2068 The first CRTC can't be routed to the second head currently. The author of the | |
2069 kernel matroxfb driver - Petr Vandrovec - will maybe make support for this, by | |
2070 displaying the first CRTC's output onto both of the heads at once, as currently | |
2071 recommended for G400, see the section above. | |
2072 </para> | |
2073 | |
2074 <para> | |
2075 The necessary kernel patch and the detailed howto is downloadable from | |
9948 | 2076 <ulink url="http://www.bglug.ca/matrox_tvout/"/> |
9675 | 2077 </para> |
2078 </sect4> | |
2079 | |
2080 | |
2081 <sect4 id="tvout-ati"> | |
2082 <title>ATI cards</title> | |
2083 | |
2084 <formalpara> | |
2085 <title>PREAMBLE</title> | |
2086 <para> | |
2087 Currently ATI doesn't want to support any of its TV-out chips under Linux, | |
2088 because of their licensed Macrovision technology. | |
2089 </para> | |
2090 </formalpara> | |
2091 | |
2092 <itemizedlist> | |
2093 <title>ATI CARDS TV-OUT STATUS ON LINUX</title> | |
2094 <listitem><simpara> | |
2095 <emphasis role="bold">ATI Mach64</emphasis>: | |
2096 supported by <ulink url="http://gatos.sf.net">gatos</ulink>. | |
2097 </simpara></listitem> | |
2098 <listitem><simpara> | |
2099 <emphasis role="bold">ASIC Radeon VIVO</emphasis>: | |
2100 supported by <ulink url="http://gatos.sf.net">gatos</ulink>. | |
2101 </simpara></listitem> | |
2102 <listitem><simpara> | |
2103 <emphasis role="bold">Radeon</emphasis> and <emphasis role="bold">Rage128</emphasis>: | |
2104 supported by <application>MPlayer</application>! | |
2105 Check <link linkend="vesa">VESA driver</link> and | |
2106 <link linkend="vidix">VIDIX</link> sections. | |
2107 </simpara></listitem> | |
2108 <listitem><simpara> | |
2109 <emphasis role="bold">Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</emphasis>: | |
2110 supported by <ulink url="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/">atitvout</ulink>. | |
2111 </simpara></listitem> | |
2112 </itemizedlist> | |
2113 | |
2114 <para> | |
2115 On other cards, just use the <link linkend="vesa">VESA</link> driver, | |
2116 without VIDIX. Powerful CPU is needed, though. | |
2117 </para> | |
2118 | |
2119 <para> | |
2120 Only thing you need to do - <emphasis role="bold">Have the TV connector | |
2121 plugged in before booting your PC</emphasis> since video BIOS initializes | |
2122 itself only once during POST procedure. | |
2123 </para> | |
2124 </sect4> | |
2125 | |
2126 | |
2127 <sect4 id="tvout-voodoo"> | |
2128 <title>Voodoo 3</title> | |
2129 <para> | |
2130 Check <ulink url="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">this URL</ulink>. | |
2131 </para> | |
2132 </sect4> | |
2133 | |
2134 <sect4 id="tvout-nvidia"> | |
10111 | 2135 <title>nVidia</title> |
9675 | 2136 <para> |
2137 First, you MUST download the closed-source drivers from <ulink url="http://nvidia.com"/>. | |
2138 I will not describe the installation and configuration process because it does not cover | |
2139 the scope of this documentation. | |
2140 </para> | |
2141 | |
2142 <para> | |
2143 After XFree86, XVideo, and 3D acceleration is properly working, edit your | |
2144 card's Device section in the <filename>XF86Config</filename> file, according | |
2145 to the following example (adapt for your card/TV): | |
2146 | |
2147 <programlisting> | |
2148 Section "Device" | |
2149 Identifier "GeForce" | |
2150 VendorName "ASUS" | |
2151 BoardName "nVidia GeForce2/MX 400" | |
2152 Driver "nvidia" | |
2153 #Option "NvAGP" "1" | |
2154 Option "NoLogo" | |
2155 Option "CursorShadow" "on" | |
2156 | |
2157 Option "TwinView" | |
2158 Option "TwinViewOrientation" "Clone" | |
2159 Option "MetaModes" "1024x768,640x480" | |
2160 Option "ConnectedMonitor" "CRT, TV" | |
2161 Option "TVStandard" "PAL-B" | |
2162 Option "TVOutFormat" "Composite" | |
2163 | |
2164 EndSection | |
2165 </programlisting> | |
2166 </para> | |
2167 | |
2168 <para> | |
2169 Of course the important thing is the TwinView part. | |
2170 </para> | |
2171 </sect4> | |
2172 </sect3> | |
2173 </sect2> |