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