summaryrefslogtreecommitdiffstats
path: root/DOCS/en/video.html
diff options
context:
space:
mode:
authorgabucino <gabucino@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-11 07:58:55 +0000
committergabucino <gabucino@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-11 07:58:55 +0000
commit8e0b9bf8186078fa2704b0fa81958a91f709dec2 (patch)
tree624d989db9c92a18645d9e39029e69f6df824dad /DOCS/en/video.html
parent9dd5ee3afdd1db370c858a04be1b3b67bbb02755 (diff)
downloadmpv-8e0b9bf8186078fa2704b0fa81958a91f709dec2.tar.bz2
mpv-8e0b9bf8186078fa2704b0fa81958a91f709dec2.tar.xz
English HTML documentation retired (moved to Attic/)
Published in 2001 October 8 (MPlayer 0.50), it has spent 2 years in this form, and has served its purpose very well. - Thanks to LGB for starting the conversion from text - Thanks to me for finishing it and doing further maintaining - Thanks to Diego Biurrun for stepping in and giving great help in enhancing and maintaining the documentation - Thanks to the countless other people for sending patches and suggestions Please drink 1 litre of cola in remembrance of the english HTML documentation. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11076 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS/en/video.html')
-rw-r--r--DOCS/en/video.html1595
1 files changed, 0 insertions, 1595 deletions
diff --git a/DOCS/en/video.html b/DOCS/en/video.html
deleted file mode 100644
index 50b1505255..0000000000
--- a/DOCS/en/video.html
+++ /dev/null
@@ -1,1595 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML>
-
-<HEAD>
- <TITLE>Video - MPlayer - The Movie Player for Linux</TITLE>
- <LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY>
-
-
-<H3><A NAME="video">2.3.1 Video output devices</A></H3>
-
-
-<H4><A NAME="mtrr">2.3.1.1 Setting up MTRR</A></H4>
-
-<P>It is VERY recommended to check if the MTRR registers are set up properly,
- because they can give a big performance boost.</P>
-
-<P>Do a '<CODE>cat /proc/mtrr</CODE>':</P>
-
-<P><CODE>
- --($:~)-- cat /proc/mtrr<BR>
- reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR>
- reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1</CODE></P>
-
-<P>It's right, shows my Matrox G400 with 16MB memory. I did this from
- XFree 4.x.x , which sets up MTRR registers automatically.</P>
-
-<P>If nothing worked, you have to do it manually. First, you have to find the
- base address. You have 3 ways to find it:</P>
-
-<UL>
- <LI>from X11 startup messages, for example:
- <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR>
- (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI>
- <LI>from /proc/pci (use lspci -v command):
- <P>
- <CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE>
- <CODE>Memory at d8000000 (32-bit, prefetchable)</CODE>
- </P></LI>
- <LI>from mga_vid kernel driver messages (use <CODE>dmesg</CODE>):
- <P><CODE>mga_mem_base = d8000000</CODE></P></LI>
-</UL>
-
-<P>Then let's find the memory size. This is very easy, just convert video ram
- size to hexadecimal, or use this table:</P>
-
-<TABLE BORDER=0>
- <TR><TD>&nbsp;&nbsp;</TD><TD>1 MB</TD><TD WIDTH="10%"></TD><TD>0x100000</TD></TR>
- <TR><TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD></TR>
- <TR><TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD></TR>
- <TR><TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD></TR>
- <TR><TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD></TR>
- <TR><TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD></TR>
-</TABLE>
-
-
-<P>You know base address and memory size, let's setup MTRR registers!
- For example, for the Matrox card above (base=0xd8000000) with 32MB
- ram (size=0x2000000) just execute:</P>
-
-
-<P><CODE>&nbsp;&nbsp;echo "base=0xd8000000 size=0x2000000 type=write-combining" &gt;| /proc/mtrr</CODE></P>
-
-
-<P>Not all CPUs support MTRRs. For example older K6-2's [around 266MHz,
- stepping 0] doesn't support MTRR, but stepping 12's do ('<CODE>cat
- /proc/cpuinfo</CODE>' to check it').</P>
-
-<H4><A NAME="normal">2.3.1.2 Video outputs for traditional video cards</A></H4>
-
-<H4><A NAME="xv">2.3.1.2.1 Xv</A></H4>
-
-<P>Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines
- using the XVideo extension. This is what the option '-vo xv' uses. Also,
- this is driver supports adjusting brightness/contrast/hue/etc (unless you use
- the old, slow DirectShow DivX codec, which supports it everywhere), see the
- man page.</P>
-
-<P>In order to make this work, be sure to check the following:</P>
-
-<UL>
- <LI>You have to use XFree86 4.0.2 or newer (former versions don't have
- XVideo)</LI>
- <LI>Your card actually supports hardware acceleration (modern cards do)</LI>
- <LI>X loads the XVideo extension, it's something like this:
-
- <P><CODE>&nbsp;&nbsp;(II) Loading extension XVideo</CODE></P>
-
- <P>in /var/log/XFree86.0.log</P>
-
- <P>NOTE: this loads only the XFree86's extension. In a good install, this
- is always loaded, and doesn't mean that the <B>card's</B> XVideo support is
- loaded!</P>
- </LI>
- <LI>Your card has Xv support under Linux. To check, try 'xvinfo', it is the
- part of the XFree86 distribution. It should display a long text, similar
- to this:
- <PRE>
- X-Video Extension version 2.2
- screen #0
- Adaptor #0: "Savage Streams Engine"
- number of ports: 1
- port base: 43
- operations supported: PutImage
- supported visuals:
- depth 16, visualID 0x22
- depth 16, visualID 0x23
- number of attributes: 5
- (...)
- Number of image formats: 7
- id: 0x32595559 (YUY2)
- guid: 59555932-0000-0010-8000-00aa00389b71
- bits per pixel: 16
- number of planes: 1
- type: YUV (packed)
- id: 0x32315659 (YV12)
- guid: 59563132-0000-0010-8000-00aa00389b71
- bits per pixel: 12
- number of planes: 3
- type: YUV (planar)
- (...etc...)
- </PRE>
- <P>It must support YUY2 packed, and YV12 planar pixel formats to be
- usable with MPlayer.</P>
- </LI>
- <LI>And finally, check if MPlayer was compiled with 'xv' support.
- ./configure prints this.</LI>
-</UL>
-
-
-<H4><A NAME="xv_3dfx">2.3.1.2.1.1 3dfx cards</A></H4>
-
-<P>Older 3dfx drivers were known to have problems with XVideo acceleration, it
- didn't support either YUY2 or YV12, and so. Verify that you have XFree86
- version 4.2.0 or greater, it works OK with YV12 and YUY2. Previous versions,
- including 4.1.0, <B>crash with YV12</B>. If you experience strange effects
- using -vo xv, try SDL (it has XVideo too) and see if it helps. Check the
- <A HREF="#sdl">SDL section</A> for details.</P>
-
-<P><B>OR</B>, try the NEW -vo tdfxfb driver! See the
- <A HREF="#tdfxfb">tdfxfb</A> section.</P>
-
-
-<H4><A NAME="xv_s3">2.3.1.2.1.2 S3 cards</A></H4>
-
-<P>S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3
- or greater (in case of image problems, try 16bpp). As for S3 Virge.. there is
- xv support, but the card itself is very slow, so you better sell it.</P>
-
-<P><B>NOTE</B>: it's currently unclear which Savage models lack YV12 support,
- and convert by driver (slow). If you suspect your card, get a newer driver,
- or ask politely on the mplayer-users mailing list for an MMX/3DNow enabled
- driver.</P>
-
-
-<H4><A NAME="xv_nvidia">2.3.1.2.1.3 nVidia cards</A></H4>
-
-<P>nVidia isn't a very good choice under Linux (according to nVidia, this is
- <A HREF="users_against_developers.html#nvidia">not true</A>).. You'll have to
- use the binary closed-source nVidia driver, available at nVidia's web site.
- The standard XFree86 driver doesn't support XVideo for these cards, due to
- nVidia's closed sources/specifications.</P>
-
-<P>As far as I know the latest XFree86 driver contains XVideo support for
- GeForce 2 and 3.</P>
-
-<P>Riva128 cards don't have XVideo support even with the nVidia driver :(
- Complain to nVidia.</P>
-
-
-<H4><A NAME="xv_ati">2.3.1.2.1.4 ATI cards</A></H4>
-
-<UL>
- <LI>The <A HREF="http://gatos.sourceforge.net">GATOS driver</A> (which you
- should use, unless you have Rage128 or Radeon) has VSYNC enabled by
- default. It means that decoding speed (!) is synced to the monitor's
- refresh rate. If playing seems to be slow, try disabling VSYNC somehow, or
- set refresh rate to n*(fps of the movie) Hz.</LI>
- <LI>Radeon VE - if you need X, use XFree86 4.2.0 or greater for this card.
- No TV out support. Of course with MPlayer you can happily get
- <B>accelerated</B> display, with or without <B>TV output</B>, and
- no libraries or X are needed. Read <A HREF="#vidix">VIDIX</A> section.</LI>
-</UL>
-
-
-<H4><A NAME="xv_neomagic">2.3.1.2.1.5 NeoMagic cards</A></H4>
-
-<P>These cards can be found in many laptops. You must use XFree86 4.3.0 or
- above, or else use Stefan Seyfried's
- <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/">Xv-capable drivers</A>.
- Just choose the one that applies to your version of XFree86.</P>
-
-<P>XFree86 4.3.0 includes Xv support, yet Bohdan Horst sent a small
- <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neo_driver.patch">patch</A>
- against the XFree86 sources that speeds up framebuffer operations (so XVideo)
- up to four times. The patch has been included in XFree86 CVS and should be in
- the next release after 4.3.0.</P>
-
-<P>To allow playback of DVD sized content change your XF86Config like this:</P>
-
-<P>Section "Device"<BR>
- &nbsp; &nbsp; <I>[...]</I><BR>
- &nbsp; &nbsp; Driver "neomagic"<BR>
- &nbsp; &nbsp; <B>Option "OverlayMem" "829440"</B><BR>
- &nbsp; &nbsp; <I>[...]</I><BR>
- EndSection</P>
-
-
-<H4><A NAME="xv_trident">2.3.1.2.1.6 Trident cards</A></H4>
-
-<P>If you want to use Xv with a Trident card, provided that it doesn't work
- with 4.1.0, install XFree 4.2.0. 4.2.0 adds support for fullscreen xv
- support with the Cyberblade XP card.</P>
-
-
-<H4><A NAME="xv_powervr">2.3.1.2.1.7 Kyro/PowerVR cards</A></H4>
-
-<P>If you want to use Xv with a Kyro based card (for example Hercules Prophet
- 4000XT), you should download the drivers from the
- <A HREF="http://www.powervr.com/">PowerVR site</A>.</P>
-
-
-<H4><A NAME="dga">2.3.1.2.2 DGA</A></H4>
-
-
-<H4>PREAMBLE</H4>
-
-<P>This section tries to explain in some words what DGA is in general and what
- the DGA video output driver for MPlayer can do (and what it can't).</P>
-
-
-<H4>WHAT IS DGA</H4>
-
-<P>DGA is short for Direct Graphics Access and is a means for a program to
- bypass the X-Server and directly modifying the framebuffer memory.
- Technically spoken this happens by mapping the framebuffer memory into
- the memory range of your process. This is allowed by the kernel only
- if you have superuser privileges. You can get these either by logging in
- as root or by setting the SUID bit on the MPlayer executable (<B>not
- recommended</B>).</P>
-
-<P>There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was
- introduced with XFree 4.0.1.</P>
-
-<P>DGA1 provides only direct framebuffer access as described above. For
- switching the resolution of the video signal you have to rely on the
- XVidMode extension.</P>
-
-<P>DGA2 incorporates the features of XVidMode extension and also allows
- switching the depth of the display. So you may, although basically
- running a 32 bit depth X server, switch to a depth of 15 bits and vice
- versa. </P>
-
-<P>However DGA has some drawbacks. It seems it is somewhat dependent on the
- graphics chip you use and on the implementation of the X server's video
- driver that controls this chip. So it does not work on every system.</P>
-
-
-<H4>INSTALLING DGA SUPPORT FOR MPLAYER</H4>
-
-<P>First make sure X loads the DGA extension, see in /var/log/XFree86.0.log:</P>
-
-<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>(II) Loading extension XFree86-DGA</CODE></P>
-
-<P>See, XFree86 4.0.x or greater is VERY RECOMMENDED! MPlayer's DGA
- driver is autodetected on ./configure, or you can force it with
- --enable-dga.</P>
-
-<P>If the driver couldn't switch to a smaller resolution, experiment with
- options -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that
- the movie fits in. There is no converter right now :(</P>
-
-<P>Become root. DGA needs root access to be able to write directly to video
- memory. If you want to run it as user, then install MPlayer SUID
- root:</P>
-
-<P><CODE>
- &nbsp;&nbsp;&nbsp;&nbsp;chown root /usr/local/bin/mplayer<BR>
- &nbsp;&nbsp;&nbsp;&nbsp;chmod 750 /usr/local/bin/mplayer<BR>
- &nbsp;&nbsp;&nbsp;&nbsp;chmod +s /usr/local/bin/mplayer</CODE></P>
-
-<P>Now it works as a simple user, too.</P>
-
-<BLOCKQUOTE>
- <B>Warning: security risk</B><BR>
- This is a <B>big</B> security risk! <B>Never</B> do this on a server or on
- a computer that can be accessed by other people because they can gain root
- privileges through SUID root MPlayer.
-</BLOCKQUOTE>
-
-<P>Now use the <CODE>-vo dga</CODE> option, and there you go (hope so :))!
- You should also try if the <CODE>-vo sdl:dga</CODE> option works for you. It's
- much faster.</P>
-
-
-<H4><A NAME="dga_modelines">RESOLUTION SWITCHING</A></H4>
-
-<P>The DGA driver allows for switching the resolution of the output signal.
- This avoids the need for doing (slow) software scaling and at the same time
- provides a fullscreen image. Ideally it would switch to the exact resolution
- (except for honoring aspect ratio) of the video data, but the X server only
- allows switching to resolutions predefined in
- <CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> for
- XFree 4.0.X respectively). Those are defined by so-called modelines and
- depend on the capabilities of your video hardware. The X server scans this
- config file on startup and disables the modelines not suitable for your
- hardware. You can find out which modes survive with the X11 log file. It can
- be found at:
- <CODE>/var/log/XFree86.0.log</CODE>.</P>
-
-<P>These entries are known to work fine with a Riva128 chip, using the
- <CODE>nv.o</CODE> X server driver module.</P>
-
-<PRE>
- Section "Modes"
- Identifier "Modes[0]"
- Modeline "800x600" 40 800 840 968 1056 600 601 605 628
- Modeline "712x600" 35.0 712 740 850 900 400 410 412 425
- Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
- Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan
- Modeline "352x288" 25.10 352 368 416 432 288 296 290 310
- Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan
- Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan
- EndSection
-</PRE>
-
-
-<H4>DGA &amp; MPLAYER</H4>
-
-<P>DGA is used in two places with MPlayer: The SDL driver can be made to
- make use of it (-vo sdl:dga) and within the DGA driver (-vo dga). The above
- said is true for both; in the following sections I'll explain how the DGA
- driver for MPlayer works.</P>
-
-
-<H4>FEATURES</H4>
-
-<P>The DGA driver is invoked by specifying -vo dga at the command line.
- The default behavior is to switch to a resolution matching the original
- resolution of the video as close as possible. It deliberately ignores the
- -vm and -fs options (enabling of video mode switching and fullscreen) -
- it always tries to cover as much area of your screen as possible by switching
- the video mode, thus refraining to use a single additional cycle of your CPU
- to scale the image.
- If you don't like the mode it chooses you may force it to choose the mode
- matching closest the resolution you specify by -x and -y.
- By providing the -v option, the DGA driver will print, among a lot of other
- things, a list of all resolutions supported by your current XF86-Config
- file.
- Having DGA2 you may also force it to use a certain depth by using the -bpp
- option. Valid depths are 15, 16, 24 and 32. It depends on your hardware
- whether these depths are natively supported or if a (possibly slow)
- conversion has to be done.</P>
-
-<P>If you should be lucky enough to have enough offscreen memory left to
- put a whole image there, the DGA driver will use doublebuffering, which
- results in much smoother movie replaying. It will tell you whether double-
- buffering is enabled or not.</P>
-
-<P>Doublebuffering means that the next frame of your video is being drawn in
- some offscreen memory while the current frame is being displayed. When the
- next frame is ready, the graphics chip is just told the location in memory
- of the new frame and simply fetches the data to be displayed from there.
- In the meantime the other buffer in memory will be filled again with new
- video data.</P>
-
-<P>Doublebuffering may be switched on by using the option -double and may be
- disabled with -nodouble. Current default option is to disable
- doublebuffering. When using the DGA driver, onscreen display (OSD) only
- works with doublebuffering enabled. However, enabling doublebuffering may
- result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of
- CPU time!) depending on the implementation of DGA for your hardware.</P>
-
-
-<H4>SPEED ISSUES</H4>
-
-<P>Generally spoken, DGA framebuffer access should be at least as fast as using
- the X11 driver with the additional benefit of getting a fullscreen image.
- The percentage speed values printed by MPlayer have to be interpreted
- with some care, as for example, with the X11 driver they do not include the
- time used by the X-Server needed for the actual drawing. Hook a terminal to a
- serial line of your box and start top to see what is really going on in your
- box.</P>
-
-<P>Generally spoken, the speedup done by using DGA against 'normal' use of X11
- highly depends on your graphics card and how well the X-Server module for it
- is optimized.</P>
-
-<P>If you have a slow system, better use 15 or 16bit depth since they require
- only half the memory bandwidth of a 32 bit display.</P>
-
-<P>Using a depth of 24bit is even a good idea if your card natively just
- supports 32 bit depth since it transfers 25% less data compared to the 32/32
- mode.</P>
-
-<P>I've seen some AVI files already be replayed on a Pentium MMX 266. AMD K6-2
- CPUs might work at 400 MHZ and above.</P>
-
-
-<H4>KNOWN BUGS</H4>
-
-<P>Well, according to some developers of XFree, DGA is quite a beast. They
- tell you better not to use it. Its implementation is not always flawless
- with every chipset driver for XFree out there.</P>
-
-<UL>
- <LI>With XFree 4.0.3 and nv.o there is a bug resulting in strange
- colors.</LI>
- <LI>ATI driver requires to switch mode back more than once after finishing
- using of DGA.</LI>
- <LI>Some drivers simply fail to switch back to normal resolution (use
- Ctrl-Alt-Keypad +, - to switch back manually).</LI>
- <LI>Some drivers simply display strange colors.</LI>
- <LI>Some drivers lie about the amount of memory they map into the process's
- address space, thus vo_dga won't use doublebuffering (SIS?).</LI>
- <LI>Some drivers seem to fail to report even a single valid mode. In this
- case the DGA driver will crash telling you about a nonsense mode of
- 100000x100000 or something like that.</LI>
- <LI>OSD only works with doublebuffering enabled (else it flickers).</LI>
-</UL>
-
-
-<H4><A NAME="sdl">2.3.1.2.3 SDL</A></H4>
-
-<P>SDL (Simple Directmedia Layer) is basically a unified video/audio
- interface. Programs that use it know only about SDL, and not about what video
- or audio driver does SDL actually use. For example a Doom port using SDL can
- run on svgalib, aalib, X, fbdev, and others, you only have to specify the
- (for example) video driver to use with the SDL_VIDEODRIVER environment
- variable. Well, in theory.</P>
-
-<P>With MPlayer, we used its X11 driver's software scaler ability for
- cards/drivers that doesn't support XVideo, until we made our own (faster,
- nicer) software scaler. Also we used its aalib output, but now we have ours
- which is more comfortable. Its DGA mode was better than ours, until
- recently. Get it now? :)</P>
-
-<P>It also helps with some buggy drivers/cards if the video is jerky
- (not slow system problem), or audio is lagging.</P>
-
-<P>SDL video output supports displaying subtitles under the movie, on the (if
- present) black bar.</P>
-
-<P><B>There are several command line options for SDL:</B></P>
-<DL>
- <DT><CODE>-vo sdl:name</CODE></DT>
- <DD>specifies sdl video driver to use (i.e.. aalib, dga, x11)</DD>
-
- <DT><CODE>-ao sdl:name</CODE></DT>
- <DD>specifies sdl audio driver to use (i.e. dsp, esd, arts)</DD>
-
- <DT><CODE>-noxv</CODE></DT>
- <DD>disables XVideo hardware acceleration</DD>
-
- <DT><CODE>-forcexv</CODE></DT>
- <DD>tries to force XVideo acceleration</DD>
-</DL>
-
-<TABLE BORDER=0>
- <TR><TD COLSPAN=4><P><B>SDL only keys:</B></P></TD></TR>
- <TR><TD></TD><TD><CODE>c</CODE></TD><TD></TD><TD>cycles available fullscreen modes</TD></TR>
- <TR><TD></TD><TD><CODE>n</CODE></TD><TD></TD><TD>changes back to normal mode</TD></TR>
-</TABLE>
-
-<H4>KNOWN BUGS</H4>
-
-<UL>
- <LI>Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa!)
- It's bug in SDL, I can't change it (tested with SDL 1.2.1).</LI>
- <LI>DO NOT USE SDL with GUI! It won't work as it should.</LI>
-</UL>
-
-
-<H4><A NAME="svgalib">2.3.1.2.4 SVGAlib</A></H4>
-
-<H4>INSTALLATION</H4>
-
-<P>You'll have to install svgalib and its development package in order for
- MPlayer build its SVGAlib driver (autodetected, but can be forced),
- and don't forget to edit /etc/vga/libvga.config to suit your card &amp;
- monitor.</P>
-
-<H4>NOTES</H4>
-
-<P>Be sure not to use the -fs option, since it toggles the usage of the software
- scaler, and it's slow. If you really need it, use the <CODE>-sws 4</CODE>
- option which will produce bad quality, but is somewhat faster.</P>
-
-<H4>EGA (4BPP) SUPPORT</H4>
-
-<P>SVGAlib incorporates EGAlib, and MPlayer has the possibility to
- display any movie in 16 colors, thus usable in the following sets:</P>
-
-<UL>
- <LI>EGA card with EGA monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp</LI>
- <LI>EGA card with CGA monitor: 320x200x4bpp, 640x200x4bpp</LI>
-</UL>
-
-<P>The bpp (bits per pixel) value must be set to 4 by hand:<BR>
- &nbsp;&nbsp;<CODE>-bpp 4</CODE><BR>
- The movie probably must be scaled down to fit in EGA mode:<BR>
- &nbsp;&nbsp;<CODE>-vf scale=640:350</CODE> or<BR>
- &nbsp;&nbsp;<CODE>-vf scale=320:200</CODE><BR>
- For that we need fast but bad quality scaling routine:<BR>
- &nbsp;&nbsp;<CODE>-sws 4</CODE><BR>
- Maybe automatic aspect correction has to be shut off:<BR>
- &nbsp;&nbsp;<CODE>-noaspect</CODE></P>
-
-<P><B>NOTE:</B> according to my experience the best image quality on EGA
- screens can be achieved by decreasing the brightness a bit: <CODE>-vf
- eq=-20:0</CODE>. I also needed to lower the audio samplerate on my box,
- because the sound was broken on 44kHz: <CODE>-srate 22050</CODE>.</P>
-
-<P>You can turn on OSD and subtitles only with the <CODE>expand</CODE> filter,
- see the man page for exact parameters.</P>
-
-
-<H4><A NAME="fbdev">2.3.1.2.5 Framebuffer output (FBdev)</A></H4>
-
-<P>Whether to build the FBdev target is autodetected during ./configure .
- Read the framebuffer documentation in the kernel sources
- (Documentation/fb/*) for more information.</P>
-
-<P>If your card doesn't support VBE 2.0 standard (older ISA/PCI
- cards, such as S3 Trio64), only VBE 1.2 (or older?):
- Well, VESAfb is still available, but you'll have to load SciTech Display
- Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or
- whatever. And don't forget to register your UniVBE ;))</P>
-
-<P>The FBdev output takes some additional parameters above the others:</P>
-
-<DL>
- <DT><CODE>-fb</CODE></DT>
- <DD>specify the framebuffer device to use (/dev/fb0)</DD>
-
- <DT><CODE>-fbmode</CODE></DT>
- <DD>mode name to use (according to /etc/fb.modes)</DD>
-
- <DT><CODE>-fbmodeconfig</CODE></DT>
- <DD>config file of modes (default /etc/fb.modes)</DD>
-
- <DT><CODE>-monitor_hfreq</CODE></DT>
- <DT><CODE>-monitor_vfreq</CODE></DT>
- <DT><CODE>-monitor_dotclock</CODE></DT>
- <DD><STRONG>Important</STRONG> values, see <CODE>example.conf</CODE></DD>
-</DL>
-
-<P>If you want to change to a specific mode, then use</P>
-
-<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;mplayer -vm -fbmode (NameOfMode) filename</CODE></P>
-
-<UL>
- <LI><B>-vm</B> alone will choose the most suitable mode from /etc/fb.modes.
- Can be used together with -x and -y options too. The -flip option is
- supported only if the movie's pixel format matches the video mode's pixel
- format. Pay attention to the bpp value, fbdev driver tries to use the
- current, or if you specify the -bpp option, then that.</LI>
- <LI><B>-zoom</B> option isn't supported (use <CODE>-vf scale</CODE>).
- You can't use 8bpp (or less) modes.</LI>
- <LI>you possibly want to turn the cursor off: <CODE>echo -e
- '\033[?25l'</CODE> or <CODE>setterm -cursor off</CODE><BR>
- and the screen saver: <CODE>setterm -blank 0</CODE><BR>
- To turn the cursor back on: <CODE>echo -e '\033[?25h'</CODE>
- or <CODE>setterm -cursor on</CODE></LI>
-</UL>
-
-<P>NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer,
- and don't ask for it, since it's not an MPlayer limitation.</P>
-
-
-<H4><A NAME="mga_vid">2.3.1.2.6 Matrox framebuffer (mga_vid)</A></H4>
-
-<P>This section is about the Matrox G200/G400/G450/G550 BES (Back-End Scaler)
- support, the mga_vid kernel driver. It's actively developed by A'rpi, and
- it has hardware VSYNC support with triple buffering. It works on both
- framebuffer console and under X.</P>
-
-<P><B>NOTE</B>: This is Linux only! On non-Linux (tested on FreeBSD) systems,
- you can use <A HREF="#vidix">VIDIX</A> instead!</P>
-
-<P><B>Installation:</B></P>
-<OL>
- <LI>To use it, you first have to compile mga_vid.o:
- <P><CODE>cd drivers<BR>
- make</CODE></P></LI>
- <LI>Then create the <CODE>/dev/mga_vid</CODE> device:
- <P><CODE>mknod /dev/mga_vid c 178 0</CODE></P>
- <P>and load the driver with</P>
- <P><CODE>insmod mga_vid.o</CODE></P></LI>
- <LI>You should verify the memory size detection using the <CODE>dmesg</CODE>
- command. If it's bad, use the <CODE>mga_ram_size</CODE> option
- (<CODE>rmmod mga_vid</CODE> first), specify card's memory size in MB:
- <P><CODE>insmod mga_vid.o mga_ram_size=16</CODE></P></LI>
- <LI>To make it load/unload automatically when needed, first insert the
- following line at the end of <CODE>/etc/modules.conf</CODE>:
- <P><CODE>alias char-major-178 mga_vid</CODE></P>
- <P>Then copy the <CODE>mga_vid.o</CODE> module to the appropriate place
- under <CODE>/lib/modules/&lt;kernel version&gt;/somewhere</CODE>.</P>
- <P>Then run</P>
- <P><CODE>depmod -a</CODE></P></LI>
- <LI>Now you have to (re)compile MPlayer, <CODE>configure</CODE> will
- detect <CODE>/dev/mga_vid</CODE> and build the 'mga' driver. Using it from
- MPlayer goes by <CODE>-vo mga</CODE> if you have matroxfb console,
- or <CODE>-vo xmga</CODE> under XFree86 3.x.x or 4.x.x.</LI>
-</OL>
-
-<P>The mga_vid driver cooperates with Xv.</P>
-
-<P>The <CODE>/dev/mga_vid</CODE> device file can be read (for example by
- <CODE>cat /dev/mga_vid</CODE>) for some info, and written for brightness
- change: <CODE>echo "brightness=120" &gt; /dev/mga_vid</CODE></P>
-
-
-<H4><A NAME="tdfxfb">2.3.1.2.7 3dfx YUV support (tdfxfb)</A></H4>
-
-<P>This driver uses the kernel's tdfx framebuffer driver to play movies with
- YUV acceleration. You'll need a kernel with tdfxfb support, and recompile
- with <CODE>./configure --enable-tdfxfb</CODE></P>
-
-
-<H4><A NAME="opengl">2.3.1.2.8 OpenGL output</A></H4>
-
-<P>MPlayer supports displaying movies using OpenGL, but if your
- platform/driver supports xv as should be the case on a PC with Linux, use xv
- instead, OpenGL performance is considerably worse. If you have an X11
- implementation without xv support, OpenGL is a viable alternative.</P>
-
-<P>Unfortunately not all drivers support this feature. The Utah-GLX drivers
- (for XFree86 3.3.6) support it for all cards. See
- <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A>
- for details about how to install it.</P>
-
-<P>XFree86(DRI) 4.0.3 or later supports OpenGL with Matrox and Radeon cards,
- 4.2.0 or later supports Rage128. See
- <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A>
- for download and installation instructions.</P>
-
-<P>A hint from one of our users: the GL video output can be used to get
- vsynced TV output. You'll have to set an environment variable (at least
- on nVidia):</P>
-
-<P>
- <CODE>export $__GL_SYNC_TO_VBLANK=1</CODE>
-</P>
-
-
-<H4><A NAME="aalib">2.3.1.2.9 AAlib - text mode displaying</A></H4>
-
-<P><B>AAlib</B> is a library for displaying graphics in text mode, using powerful
- ASCII renderer. There are LOTS of programs already supporting it, like Doom,
- Quake, etc. MPlayer contains a very usable driver for it.
- If ./configure detects aalib installed, the aalib libvo driver will be
- built.</P>
-
-<TABLE BORDER=0>
- <TR><TD COLSPAN=4><P><B>You can use some keys in the AA Window to change rendering options:</B></P></TD></TR>
- <TR><TD>&nbsp;&nbsp;</TD><TD><CODE>1</CODE></TD><TD>&nbsp;&nbsp;</TD><TD>decrease contrast</TD></TR>
- <TR><TD></TD><TD><CODE>2</CODE></TD><TD></TD><TD>increase contrast</TD></TR>
- <TR><TD></TD><TD><CODE>3</CODE></TD><TD></TD><TD>decrease brightness</TD></TR>
- <TR><TD></TD><TD><CODE>4</CODE></TD><TD></TD><TD>increase brightness</TD></TR>
- <TR><TD></TD><TD><CODE>5</CODE></TD><TD></TD><TD>switch fast rendering on/off</TD></TR>
- <TR><TD></TD><TD><CODE>6</CODE></TD><TD></TD><TD>set dithering mode (none, error distribution, Floyd Steinberg)</TD></TR>
- <TR><TD></TD><TD><CODE>7</CODE></TD><TD></TD><TD>invert image</TD></TR>
- <TR><TD></TD><TD><CODE>a</CODE></TD><TD></TD><TD>toggles between aa and MPlayer control)</TD></TR>
-</TABLE>
-
-<P><B>The following command line options can be used:</B></P>
-<DL>
- <DT><CODE>-aaosdcolor=V</CODE></DT>
- <DD>change OSD color</DD>
-
- <DT><CODE>-aasubcolor=V</CODE></DT>
- <DD>change subtitle color
- <P><I>where V can be: (0/normal, 1/dark, 2/bold, 3/bold font, 4/reverse,
- 5/special)</I></P></DD>
-</DL>
-
-<P><B>AAlib itself provides a large sum of options.
- Here are some important:</B></P>
-<DL>
- <DT><CODE>-aadriver</CODE></DT>
- <DD>set recommended aa driver (X11, curses, Linux)</DD>
-
- <DT><CODE>-aaextended</CODE></DT>
- <DD>use all 256 characters</DD>
-
- <DT><CODE>-aaeight</CODE></DT>
- <DD>use eight bit ASCII</DD>
-
- <DT><CODE>-aahelp</CODE></DT>
- <DD>prints out all aalib options</DD>
-</DL>
-
-<P>NOTE: the rendering is very CPU intensive, especially when using AA-on-X
- (using aalib on X), and it's least CPU intensive on standard,
- non-framebuffer console. Use SVGATextMode to set up a big textmode,
- then enjoy! (secondary head Hercules cards rock :)) (but imho you can use
- <CODE>-vf 1bpp</CODE> option to get graphics on hgafb:)</P>
-
-<P>Use the <CODE>-framedrop</CODE> option if your computer isn't fast enough to
- render all frames!</P>
-
-<P>Playing on terminal you'll get better speed and quality using the Linux
- driver, not curses (<CODE>-aadriver linux</CODE>). But therefore you need write access on
- <CODE>/dev/vcsa&lt;terminal&gt;</CODE>. That isn't autodetected by aalib, but vo_aa tries
- to find the best mode. See
- <A HREF="http://aa-project.sourceforge.net/tune/">http://aa-project.sourceforge.net/tune/</A>
- for further tuning issues.</P>
-
-
-<H4><A NAME="vesa">2.3.1.2.10 VESA - output to VESA BIOS</A></H4>
-
-<P>This driver was designed and introduced as a <B>generic driver</B> for any
- video card which has VESA VBE 2.0+ compatible BIOS. Another advantage of this
- driver is that it tries to force TV output on.<BR>
- <B>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</B> (Page
- 70) says:</P>
-
-<BLOCKQUOTE>
- <B>Dual-Controller Designs</B><BR>
- VBE 3.0 supports the dual-controller design by assuming that since both
- controllers are typically provided by the same OEM, under control of a
- single BIOS ROM on the same graphics card, it is possible to hide the fact
- that two controllers are indeed present from the application. This has the
- limitation of preventing simultaneous use of the independent controllers,
- but allows applications released before VBE 3.0 to operate normally. The
- VBE Function 00h (Return Controller Information) returns the combined
- information of both controllers, including the combined list of available
- modes. When the application selects a mode, the appropriate controller is
- activated. Each of the remaining VBE functions then operates on the active
- controller.
-</BLOCKQUOTE>
-
-<P>So you have chances to get working TV-out by using this driver.<BR>
- (I guess that TV-out frequently is standalone head or standalone output
- at least.)</P>
-
-<H4>ADVANTAGES</H4>
-
-<UL>
- <LI>You have the possibility to watch movies <B>even if Linux doesn't know</B>
- your video hardware.</LI>
- <LI>You don't need to have installed any graphics' related things on your Linux
- (like X11 (aka XFree86), fbdev and so on). This driver can be run from
- <B>text-mode</B>.</LI>
- <LI>You have chances to get <B>working TV-out</B>. (It's known at least for
- ATI's cards).</LI>
- <LI>This driver calls <B>int 10h</B> handler thus it's not an emulator - it
- calls <B>real</B> things of <B>real</B> BIOS in <B>real</B>-mode (actually
- in vm86 mode).</LI>
- <LI>You can use VIDIX with it, thus getting accelerated video display
- <B>AND</B> TV output at the same time! (recommended for ATI cards)</LI>
- <LI>If you have VESA VBE 3.0+, and you had specified <CODE>monitor_hfreq</CODE>,
- <CODE>monitor_vfreq</CODE>, <CODE>monitor_dotclock</CODE> somewhere (config
- file, or commandline) you will get the highest possible refresh rate. (Using
- General Timing Formula). To enable this feature you have to specify
- <B>all</B> your monitor options.</LI>
-</UL>
-
-<H4>DISADVANTAGES</H4>
-
-<UL>
- <LI>It works only on <B&g