summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
authorgabucino <gabucino@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-07-21 09:57:12 +0000
committergabucino <gabucino@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-07-21 09:57:12 +0000
commit7fbf8caf55011ade4771268a04850605fe2111c2 (patch)
tree256e108ce38c6a6338a86d2a3c8b8447550b5e0b /DOCS
parent7c31fd7670c4484e8d176e6bddff68a49f416dca (diff)
downloadmpv-7fbf8caf55011ade4771268a04850605fe2111c2.tar.bz2
mpv-7fbf8caf55011ade4771268a04850605fe2111c2.tar.xz
pre0alpha version
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1372 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/documentation.html1910
1 files changed, 1910 insertions, 0 deletions
diff --git a/DOCS/documentation.html b/DOCS/documentation.html
new file mode 100644
index 0000000000..c4ada50223
--- /dev/null
+++ b/DOCS/documentation.html
@@ -0,0 +1,1910 @@
+<HTML>
+
+<BODY>
+
+<P>
+<CENTER>MPlayer - Movie Player for LINUX (C) 2000-2001 Arpad Gereoffy (A'rpi/ESP-team)<BR>
+<BR>
+http://mplayer.sourceforge.net (or http://mplayer.dev.hu)</CENTER><BR>
+</P>
+
+<P><HR></P>
+
+<P>
+Table of Contents
+</P>
+
+<P><HR></P>
+
+<PRE>
+<P>
+ <A HREF="#1">1. Introduction</A>
+</P>
+<P>
+ <A HREF="#1.1">1.1 Overview +speed</A>
+ <A HREF="#1.2">1.2 History</A>
+ <A HREF="#1.3">1.3 Installation</A>
+ <A HREF="#1.3.1">1.3.1 Codecs</A>
+ <A HREF="#1.3.2">1.3.2 Drivers</A>
+ <A HREF="#1.3.3">1.3.3 Player</A>
+ <A HREF="#1.3.4">1.3.4 Matrox G400 DualHead Tools</A>
+ <A HREF="#1.3.5">1.3.5 Fonts</A>
+ <A HREF="#1.4">1.4 What about the GUI?</A>
+</P>
+<P>
+ <A HREF="#2">2. Features</A>
+</P>
+<P>
+ <A HREF="#2.1">2.1 Video Formats, Audio & Video Codecs</A>
+ <A HREF="#2.1.1">2.1.1 Supported input formats</A>
+ <A HREF="#2.1.2">2.1.2 Supported audio & video codecs</A>
+ <A HREF="#2.1.2.1">2.1.2.1 OpenDivX</A>
+ <A HREF="#2.1.2.2">2.1.2.2 ffmpeg's DivX/libavcodec</A>
+ <A HREF="#2.1.4">2.1.4 Codec importing howto</A>
+ <A HREF="#2.1.4.1">2.1.4.1 VFW codecs</A>
+ <A HREF="#2.1.4.2">2.1.4.2 DirectShow codecs</A>
+</P>
+<P>
+ <A HREF="#2.2">2.2 Video & Audio output devices</A>
+ <A HREF="#2.2.1">2.2.1 Video output devices</A>
+ <A HREF="#2.2.1.1">2.2.1.1 Xv</A>
+ <A HREF="#2.2.1.2">2.2.1.2 DGA</A>
+ <A HREF="#2.2.1.2.1">2.2.1.2.1 Summary</A>
+ <A HREF="#2.2.1.2.2">2.2.1.2.2 What is DGA</A>
+ <A HREF="#2.2.1.2.3">2.2.1.2.3 Resolution switching</A>
+ <A HREF="#2.2.1.2.4">2.2.1.2.4 DGA & MPlayer</A>
+ <A HREF="#2.2.1.2.5">2.2.1.2.5 Features of the DGA driver</A>
+ <A HREF="#2.2.1.2.6">2.2.1.2.6 Speed issues</A>
+ <A HREF="#2.2.1.2.7">2.2.1.2.7 Known bugs</A>
+ <A HREF="#2.2.1.2.8">2.2.1.2.8 Future work</A>
+ <A HREF="#2.2.1.2.A">2.2.1.2.A Some modelines</A>
+ <A HREF="#2.2.1.2.B">2.2.1.2.B Bug Reports</A>
+ <A HREF="#2.2.1.3">2.2.1.3 SDL</A>
+ <A HREF="#2.2.1.4">2.2.1.4 SVGAlib</A>
+ <A HREF="#2.2.1.5">2.2.1.5 Framebuffer output (FBdev)</A>
+ <A HREF="#2.2.1.6">2.2.1.6 Matrox framebuffer (mga_vid)</A>
+ <A HREF="#2.2.1.7">2.2.1.7 SiS 6326 framebuffer (sis_vid)</A>
+ <A HREF="#2.2.1.8">2.2.1.8 3dfx YUV support</A>
+ <A HREF="#2.2.1.9">2.2.1.9 OpenGL output</A>
+ <A HREF="#2.2.2">2.2.2 Audio output devices</A>
+ +SOUNDCARDS
+</P>
+<P>
+ <A HREF="#2.3">2.3 Subtitles and OSD</A>
+</P>
+<P>
+ <A HREF="#3">3. Usage</A>
+</P>
+<P>
+ <A HREF="#3.1">3.1 Control from keyboard</A>
+ <A HREF="#3.2">3.2 Control from LIRC (Linux Infrared Remote Control)</A>
+ <A HREF="#3.3">3.3 Streaming from network or pipes</A>
+</P>
+<P>
+ <A HREF="#4">4. TV-out support</A>
+</P>
+<P>
+ <A HREF="#4.1">4.1 Matrox cards</A>
+</P>
+<P>
+ <A HREF="#5">5. Tuning</A>
+</P>
+<P>
+ <A HREF="#5.1">5.1 CD drives</A>
+ <A HREF="#5.2">5.2 DVD drives</A>
+ <A HREF="#5.3">5.3 MTRR</A>
+</P>
+<P>
+ <A HREF="#6">6. FAQ section</A>
+</P>
+<P>
+ <A HREF="#6.10">6.10 DVD FAQ</A>
+</P>
+<P>
+ <A HREF="#7">7. Misc OS'es</A>
+</P>
+<P>
+ <A HREF="#7.1">7.1 Debian packaging</A>
+ <A HREF="#7.2">7.2 FreeBSD</A>
+ <A HREF="#7.3">7.3 Solaris 8</A>
+</P>
+<P>
+ <A HREF="#A">A. Authors</A>
+</P>
+<P>
+ <A HREF="#B">B. Mailing lists</A>
+</P>
+<P>
+ <A HREF="#C">C. How to report bugs</A>
+</P>
+<P>
+ License+standard disc, maintainers
+</P></PRE>
+<P><HR></P>
+
+<P><PRE>
+ <A NAME=1>1. Introduction
+
+
+<A NAME=1.1>1.1. Overview
+
+ MPlayer is a movie player for LINUX. It plays most MPEG, AVI and ASF files,
+ supported by many native and Win32 DLL codecs. You can watch VCD, DVD and
+ even DivX movies too. The another big feature of mplayer is the wide range of
+ supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev,
+ but you can use SDL (and this way all drivers of SDL, for example AAlib) and
+ some lowlevel card-specific drivers (for Matrox) too! Most of them supports
+ software or hardware scaling, so you can enjoy movies in fullscreen. And what
+ about the nice big antialiased shaded subtitles (7 supported types!!!) with
+ hungarian, english, cyrillic, czech, korean fonts, and OSD?
+
+ I didn't write any codecs, just some players. I spent
+ a lot of time finding the best way to parse bad damaged input files
+ (both MPEG and AVI) and to do perfect A-V sync with seeking ability.
+ My player is rock solid playing damaged MPEG files (useful for some VCDs),
+ and it plays bad AVI files which are unplayable with the famous
+ windows media player. Even AVI files without index chunk are playable, and
+ you can rebuild their indexes with the -idx option, thus enabling seeking!
+ As you see, stability and quality are the most important things for me,
+ but the speed is also amazing.
+
+
+ <A NAME=1.2>1.2. History
+
+ This began a year ago...
+ I've tried lots of players under linux (mtv,xmps,dvdview,livid/oms,VideoLAN,
+ xine,xanim,avifile,xmmp) but they all have some problem. Mostly with special
+ files or with audio/video sync. Most of them is unable to play both MPEG1,
+ MPEG2 and AVI (DivX) files. Many players have image quality or speed problems
+ too. So I've decided to write/modify one...
+
+ - mpg12play v0.1-v0.3:
+ The first try, hacked together in a half hour!
+ I've used libmpeg3 from www.heroinewarrior.com up to the version 0.3,
+ but there were image quality and speed problems with it.
+ - mpg12play v0.5-v0.87:
+ Mpeg codec replaced with DVDview by Dirk Farin, it was a great stuff,
+ but it was slow and was written in C++ (I hate C++!!!)
+ - mpg12play v0.9-v0.95pre5:
+ Mpeg codec was libmpeg2 (mpeg2dec) by Aaron Holtzman & Michel Lespinasse.
+ It's great, optimized very fast C code with perfect image quality and
+ 100% MPEG standard conformance.
+ - MPlayer v0.3-v0.9:
+ It was a pack of two programs: mpg12playv0.95pre6 and my new simple AVI
+ player 'avip' based on avifile's Win32 DLL loader.
+ - MPlayer v0.10:
+ The MPEG and AVI player in a single binary!
+ - MPlayer v0.11:
+ Some new developers joined and from 0.11 the mplayer project is a team-work!
+ Added .ASF file support, and OpenDivX (see www.projectmayo.com) en/decoding.
+ - MPlayer v0.17 "The IdegCounter"
+ The release version of the 0.11pre after 4 months of heavy development!
+ Try it, and be amazed! Thousands of new features added... and of course
+ old code was improved too, bugs removed etc.
+ - MPlayer 0.18 "The BugCounter"
+ 2 months since 0.17 and here's a new release.. Completed ASF support,
+ more subtitle formats, introduced libao (similar to libvo but to audio),
+ even more stable than ever, and so on. It's a MUST !
+
+
+ <A NAME=1.3>1.3. Installation
+
+
+ <A NAME=1.3.1>1.3.1. The Codecs (w32codecs.zip)
+
+ Download and unzip w32codecs.zip to /usr/lib/win32
+ Note: the avifile project has similar codecs package, but it differs
+ from our, so if you want to use all supported codecs, then use
+ our package!
+
+
+ <A NAME=1.3.2>1.3.2. Drivers (mga_vid.o)
+
+
+ cd drivers
+ make
+ mknod /dev/mga_vid c 178 0
+ chmod go+rw /dev/mga_vid
+
+
+ <A NAME=1.3.3>1.3.3. The Player (mplayer)
+
+ ./configure
+ [* read messages printed by ./configure, it may be very usefull! *]
+ [* check config.h and config.mak files! *]
+ make
+ [* check for errors! of none, you should have the ./mplayer binary *]
+ make install
+
+
+ <A NAME=1.3.4>1.3.4. Matrox G400 DH TV-out tools
+
+ cd TVout
+ ./compile.sh
+
+
+ <A NAME=1.3.5>1.3.5. Fonts
+
+ Download mp_font3.zip (and optional language updates) and
+ unpack to ~/.mplayer/font/ :
+
+ cd ~/.mplayer
+ mkdir font
+ cd font
+ unzip mp_font3.zip
+ unzip mp_font3_hu.zip
+
+
+ <A NAME=1.4>1.4. What about the GUI ?
+
+ I'm not a GUI programmer. I hate GUIs, I like the pure black 80x25 console.
+ So the player has only keyboard control from the controlling console/xterm now.
+ There is a GUI development for the player, coordinated by Pontscho/Fresh!
+ It's still under development, but it will be merged and released real soon.
+ BTW he needs some nice skins, if you are a good graphician, contact him!!!
+
+
+ <A NAME=2>2. Features
+
+
+ <A NAME=2.1>2.1. Video Formats, Audio & Video Codecs
+
+
+ <A NAME=2.1.1>2.1.1. Supported input formats
+
+ - VCD (Video CD) directly from CD-ROM or from CDRwin's .bin image file
+ - DVD, directly from your DVD disk, using optional libcss for decryption
+ - MPEG 1/2 System Stream (PS/PES/VOB) and Elementary Stream (ES) file formats
+ - RIFF AVI file format
+ - ASF 1.0 file format
+ - supports reading from file, stdin, DVD drive or network via HTTP
+
+ Note: about quicktime (.mov/.qt) and realmedia (.ra/.rm) support read the FAQ!
+
+
+ <A NAME=2.1.2>2.1.2. Supported audio & video codecs
+
+ See http://mplayer.sourceforge.net/DOCS/codecs.html for the complete,
+ daily updated list!!!
+
+ The most important video codecs:
+ - MPEG1 (VCD) and MPEG2 (DVD) video
+ - DivX, OpenDivX and other MPEG4 variants
+ - Windows Media Video 7 (WMV1) used in .wmv files
+ - Intel Indeo codecs (3.1,3.2,4.1,5.0)
+ - MJPEG, ASV2 and other hardware formats
+
+ The most important audio codecs:
+ - MPEG layer 2, and layer 3 (MP3) audio (native code, with 3dnow optimization)
+ - AC3 dolby audio (native code, with 3dnow optimization)
+ - Voxware audio
+ - alaw, msgsm, pcm and other simple old audio formats
+
+ If you have a codec not listed here, and not supported yet, just
+ read http://mplayer.sourceforge.net/DOCS/codecs.html and DOCS/CODECS
+ to get info about its status and about how to help us adding support for it!
+
+
+ <A NAME=2.1.2.1>2.1.2.1. OpenDivX
+
+
+ <A NAME=2.1.2.2>2.1.2.2. ffmpeg's DivX/libavcodec
+
+
+ <A NAME=2.1.4>2.1.4. Codec importing howto
+
+
+ <A NAME=2.1.4.1>2.1.4.1. VFW codecs
+
+ VfW (Video for Windows) is the old Video API for Windows. Its codecs have
+ the .DLL or (rarely) .DRV extension.
+ If MPlayer fails with your AVI:
+
+ UNKNOWN video codec: HFYU (0x55594648)
+
+ It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU =
+ HuffYUV codec, DIV3 = DivX Low Motion, etc...). Now that we know this, we'll
+ have to find out which DLL Windows loads in order to play this file. In our
+ case, the system.ini contains this (with many others):
+ VIDC.HFYU=huffyuv.dll
+ So we'll need the huffyuv.dll file. Note that the audio codecs are specified
+ with the MSACM prefix :
+ msacm.l3acm=L3codeca.acm
+ This is the MP3 codec.
+
+ So, now we have all the info needed (fourcc, codec file, sample AVI), submit
+ your codec support request in mail, and upload these files to the FTP:
+ ftp://thot.banki.hu/MPlayer/incoming/<codecname>/
+
+
+ <A NAME=2.1.4.2>2.1.4.2. DirectShow codecs
+
+ DirectShow is the newer Video API, which is even worse than its predecessor.
+ Things are harder with DirectShow, since
+ - system.ini doesn't contain the needed information, instead it's stored in
+ the registry :(
+ - we'll need the GUID of the codec.
+
+ So let's search that goddamn registry..
+ - Start 'regedit'
+ - press ctrl-f, disable the first two checkbox, and enable the third. Type
+ the fourcc of the codec. (for ex.: TM20)
+ - you should see a field which contains the path and filename
+ (for ex. : C:\WINDOWS\SYSTEM\TM20DEC.AX)
+ - now that we have the file, we'll need the GUID. Try searching again, but
+ now we'll search for the codec's name, not the fourcc. Its name can be acquired
+ when Media Player is playing that file, by checking File/Properties/Advanced.
+ If not, bad luck ;) Try guessing.
+ (for ex. search for : TrueMotion)
+ - if found (in registry), there should be a FriendlyName field, and a CLSID
+ field. Write down that 16 byte of CLSID, this is the GUID required by us.
+
+ NOTE : if searching fails, try to enable all the checkboxes.. you may have
+ false hits, but maybe you'll have the right, too...
+ NOTE : dump that M$ shit.
+
+ So, now we have all the info needed (fourcc, GUID, codec file, sample AVI),
+ submit your codec support request in mail, and upload these files to the FTP:
+ ftp://thot.banki.hu/MPlayer/incoming/<codecname>/
+
+
+ <A NAME=2.2>2.2. Video & Audio output devices
+
+
+ <A NAME=2.2.1>2.2.1. Video output devices
+
+ General:
+ - x11: X11 with optional SHM extension
+ - xv: X11 using overlays with the Xvideo extension (hardware YUV & scaling)
+ - gl: OpenGL renderer, so far works only with :
+ - all cards with Utah-GLX
+ - Matrox cards with X/DRI >=4.0.3
+ - Radeon with X/DRI CVS
+ - dga: X11 DGA extension
+ - fbdev:Output to general framebuffers
+ - svga: Output to SVGAlib
+ - sdl: 1.1.7 : supports software scaling
+ 1.1.8 : supports Xvideo (hardware scaling/fullscreen)
+ 1.2.0 : supports aalib (textmode rendering, very funny!)
+ - ggi: similar to SDL
+
+ Card specific:
+ - mga: Matrox G200/G400 hardware YUV overlay via the mga_vid device
+ - xmga: Matrox G200/G400 overlay (mga_vid) in X11 window
+ (Xv emulation on X 3.3.x !)
+ - syncfb: Matrox G400 YUV support on framebuffer (obsoleted, use mga/xmga)
+ - 3dfx: Voodoo2/3 hardware YUV (/dev/3dfx) support (not yet tested, maybe
+ broken)
+
+ Special:
+ - png: PNG files output (use -z switch to set compression)
+ - pgm: PGM files output (for testing purposes or ffmpeg encoding)
+ - md5: MD5sum output (for MPEG conformance tests)
+ - odivx:OpenDivX AVI File writer (use -br to set encoding bitrate)
+ - null: Null output (for speed tests/benchmarking)
+
+ NOTE: check DOCS/VIDEOCARDS for details and requirements!
+
+
+ <A NAME=2.2.1.1>2.2.1.1. Xv
+
+ I. Under XFree86 4.0.2 or newer, using the XVideo extension:
+ this is what the option '-vo xv' uses.
+
+ In order to make this work, be sure to check the following:
+
+ 1. You use XFree86 4.0.2 or newer (former versions don't have XVideo)
+
+ 2. Your card actually supports harware acceleration (modern cards do)
+
+ 3. X loads the XVideo extension, it's something like this:
+ (II) Loading extension XVideo
+ in /var/log/XFree86.0.log
+ NOTE : this loads only the XFree86's extension. In a good install, this is
+ always loaded, and doesn't mean that the _card's_ XVideo support is
+ loaded!
+
+ 4. 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:
+
+ 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...)
+
+ It must support YUY2 packed, and YV12 planar pixel formats to be
+ usable with MPlayer.
+
+ I.1.
+ a, If xvinfo doesn't show these, but XVideo extension is loaded and you're
+ sure your card can do YUV conversion,
+ - 3dfx voodoo3/banshee users download a new DRI from
+ http://dri.sourceforge.net (or possibly use X 4.1.0)
+ - S3 Savage4 users download XFree86 >= 4.0.3 (4.1.0 preferred)
+ - nVidia users sell their card.. or download the nVidia driver from
+ nVidia's website
+ b, The GATOS driver (for ATI cards) 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.
+
+ 5. Be sure MPlayer is compiled with the "xv" target. "./configure" should say:
+ Checking for Xv ... yes
+
+ 6. If all is fine, try the option '-vo xv' . It should work.
+ (if it doesn't, send us a bugreport. See the BUGREPORTS on how to do this.)
+
+
+
+ <A NAME=2.2.1.2>2.2.1.2. DGA
+
+ 1. Make sure X loads the DGA extension:
+ (II) Loading extension XFree86-DGA
+ (you see, XFree86 4.0.x or greater is VERY RECOMMENDED!)
+ 2. MPlayer's DGA driver is autodetected on ./configure, or you can force it
+ with --enable-dga.
+ 3. If the driver couldn't switch to a smaller resolution, experiment with
+ switches -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.. :(
+ 4. Become ROOT. DGA needs root access to be able to write directly video memory.
+ If you want to run it as user, then install MPlayer SUID root:
+ 'chown root /usr/local/bin/mplayer'
+ 'chmod 750 /usr/local/bin/mplayer'
+ 'chmod +s /usr/local/bin/mplayer'
+ Now it works as a simple user, too.
+ !!!! BUT STAY TUNED !!!!
+ This is a BIG security risk! Never do this on a server or on a computer
+ can be accessed by more people than only you because they can gain root
+ privilegies through suid root mplayer.
+ !!!! SO YOU HAVE BEEN WARNED ... !!!!
+ 5. Use '-vo dga' option, and there you go! (hope so:)
+ 6. Try if the '-vo sdl:dga' options work for you! It's much faster!!!
+
+
+ <A NAME=2.2.1.2.1>2.2.1.2.1. Summary
+
+ This document 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).
+
+
+ <A NAME=2.2.1.2.2>2.2.1.2.2. What is DGA
+
+ 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 excecutable (NOT
+ recommended!).
+
+ There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was
+ introduced with XFree 4.0.1.
+
+ 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.
+
+ 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 XServer, switch to a depth of 15 bits and vice
+ versa.
+
+ However DGA has some drawbacks. It seems it is somewhat dependent on the
+ graphics chip you use and on the implementation of the XServer's video
+ driver that controls this chip. So it does not work on every system ...
+
+
+ <A NAME=2.2.1.2.3>2.2.1.2.3. Resolution switching
+
+ 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 honouring aspect ratio) of the video data, but the
+ XServer only allows switching to resolutions predefined in
+ /etc/X11/XF86Config (/etc/X11/XF86Config-4 for XFree 4.0.X respectively).
+ Those are defined by so-called modelines and depend on the capabilites
+ of your video hardware. The XServer 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:
+ /var/log/XFree86.0.log
+ See appendix A for some sample modeline definitions.
+
+
+ <A NAME=2.2.1.2.4>2.2.1.2.4. DGA & MPlayer
+
+ 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.
+
+
+ <A NAME=2.2.1.2.5>2.2.1.2.5. Features of the DGA driver
+
+ The DGA driver is invoked by specifying -vo dga at the command line.
+ The default behaviour is to switch to a resolution matching the original
+ resolution of the video as close as possible. It deliberately ignores the
+ -vm and -fs switches (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.
+
+ 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.
+
+ 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.
+
+ 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.
+
+
+ <A NAME=2.2.1.2.6>2.2.1.2.6. Speed issues
+
+ 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 ...
+
+ 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.
+
+ 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.
+
+ 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.
+
+ 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.
+
+
+ <A NAME=2.2.1.2.7>2.2.1.2.7. Known bugs
+
+ Well, according to some developpers 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.
+
+ o with XFree 4.0.3 and nv.o there is a bug resulting in strange colors
+ o ATI driver requires to switch mode back more than once after finishing
+ using of DGA
+ o some drivers simply fail to switch back to normal resolution (use
+ Ctrl-Alt-Keypad +, - to switch back manually)
+ o some drivers simply display strange colors
+ o some drivers lie about the amount of memory they map into the process's
+ address space, thus vo_dga won't use doublebuffering (SIS?)
+ o 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 the like ...
+ o OSD only works with doublebuffering enabled
+
+
+ <A NAME=2.2.1.2.8>2.2.1.2.8. Future work
+
+ o use of the new X11 render interface for OSD
+ o where is my TODO list ???? :-(((
+
+
+ <A NAME=2.2.1.2.A>2.2.1.2.A. Some modelines
+
+ 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
+
+
+ These entries work fine with my Riva128 chip, using nv.o XServer driver
+ module.
+
+
+ <A NAME=2.2.1.2.B>2.2.1.2.B. Bug Reports
+
+ If you experience troubles with the DGA driver please feel free to file
+ a bug report to me (e-mail address below). Please start mplayer with the
+ -v option and include all lines in the bug report that start with vo_dga:
+
+ Please do also include the version of X11 you are using, the graphics card
+ and your CPU type. The X11 driver module (defined in XF86-Config) might
+ also help. Thanks!
+
+
+ Acki (acki@acki-netz.de, www.acki-netz.de)
+
+
+ <A NAME=2.2.1.3>2.2.1.3. SDL
+
+ Here are some notes about SDL out in MPlayer.
+
+ There are several commandline switches for sdl:
+ -vo sdl:<name> specifies sdl video driver to use (ie. aalib,
+ dga, x11)
+ -ao sdl:<name> specifies sdl audio driver to use (ie. dsp, esd)
+ -noxv disables Xvideo hardware acceleration
+ -forcexv tries to force Xvideo acceleration
+
+ SDL Keys:
+ F toggles fullscreen/windowed mode
+ C cycles available fullscreen modes
+ W/S mappings for * and / (mixer control)
+
+ KNOWN BUGS:
+ - Keys pressed under aalib console driver repeat forever.
+ It's bug in SDL, I can't change it (tested with SDL 1.2.1).
+
+
+ <A NAME=2.2.1.4>2.2.1.4. SVGAlib
+
+ a, If you don't have X...
+ ...use the SVGAlib target! Be sure not to use the -fs switch, since it
+ toggles the usage of the software scaler, and it's SLOOOW now, unless you
+ have a real fast CPU (and/or MTRR?). :(
+
+ Of course 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 & monitor.
+
+
+ <A NAME=2.2.1.5>2.2.1.5. Framebuffer output (FBdev)
+
+ b, You want to use framebuffer...
+ ... Whether to build the FBdev target is autodetected during ./configure .
+ Read the framebuffer documentation in the kernel sources
+ (Documentation/fb/*) for info on how to enable it, etc.. !
+
+ ... but 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 ;))
+
+ 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.
+
+
+ <A NAME=2.2.1.6>2.2.1.6. Matrox framebuffer (mga_vid)
+
+ 1. Matrox G200/G400/G450 BES (Back-End Scaler) support -> mga_vid kernel drv.
+ It's active developed by me (A'rpi), and it has hardware VSYNC support
+ with triple buffering. It works on both framebuffer console and under X.
+
+ To use, simply compile the mga_vid.o in the drivers/ subdir (type: make)
+ create /dev/mga_vid device :
+ mknod /dev/mga_vid c 178 0
+ and load the driver with insmod mga_vid.o. You should verify the memory size
+ detection using the 'dmesg' command. If it's bad, use the mga_ram_size
+ option (rmmod mga_vid first), specify card's memory size in MB:
+ insmod mga_vid.o mga_ram_size=16
+ To make it load/unload automatically when needed, insert the following line
+ at the end of /etc/modules.conf :
+ alias char-major-178 mga_vid
+ Then run
+ depmod -a
+
+ Using it from MPlayer: (you should re-compile it with mga_vid support...)
+
+ Use the 'mga' vo driver on framebuffer console (matroxfb): -vo mga
+ and use the xmga driver for X 3.3.x: -vo xmga
+
+ Note: it works under X 4.0.2 too, but it conflicts with the Xv driver,
+ so avoid using both. Usually X restart or reboot needs to get Xv usable
+ again :(
+
+ If you have a dual-head G400, and a TV or second monitor connected to head2,
+ then you can watch movies on it: read DOCS/TVout-G400 for details (big hack)
+
+
+ <A NAME=2.2.1.7>2.2.1.7. SiS 6326 framebuffer (sis_vid)
+
+ 2. SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver
+ Its interface should be compatible with the mga_vid, but the driver
+ was not updated after the mga_vid changes, so it's outdated now.
+ Volunteers needed to test it and bring the code up-to-date.
+
+
+ <A NAME=2.2.1.8>2.2.1.8. 3dfx YUV support
+
+ 3. 3dfx (which ones?) YUV+scaler support, using /dev/3dfx (tdfx.o driver?)
+ The /dev/3dfx kernel driver exists only for 2.2.x kernels, for use with
+ Glide 2.x Linux ports. It's not tested with MPlayer, and so no more
+ supported. Volunteers needed to test it and bring the code up-to-date.
+
+
+ <A NAME=2.2.1.9>2.2.1.9. OpenGL output
+
+ The old Utah-GLX drivers (for X 3.3.6) have it, with all cards.
+ See http://utah-glx.sourceforge.net for details about how to install it.
+
+ DRI >= 4.0.3 supports it only with Matrox cards, and Radeon.
+ See dri.sourceforge.net for download, and installation instructions.
+
+
+ <A NAME=2.2.2>2.2.2. Audio output devices
+
+ - OSS (ioctl) driver
+ - SDL driver (supports up/downsampling, esd, arts etc)
+ - native ALSA 0.5 driver
+ - native ALSA 0.9 driver (buggy, use OSS emulation!)
+ - native ESD driver (under development?)
+ - SUN audio driver (/dev/audio) for BSD and Solaris8 users
+
+
+ <A NAME=2.3>2.3. Subtitles and OSD (On-Screen Display)
+
+ Yes, mplayer also supports many kinds of subtitles. Currently (2001/06/01)
+ 7 kinds of subtitle can be used by the subreader code. To see what are
+ these subtitle formats, see subreader.c, line ~20.
+
+ Subtitles are displayed with a technique called 'OSD', On Screen Display.
+ OSD is used to display current time, volume bar, seek bar etc.
+
+
+ INSTALLING OSD and SUB
+ -------
+
+ NOTE: OSD and SUBTITLES are NOT enabled by default! You have to download
+ fonts from mplayer's download page mplayerhq.hu/homepage/dload.html
+
+ Standard (Central-European, Latin1) font package:
+ http://thot.banki.hu/mp-ftp/releases/mp_font3.zip
+ (it obsoletes mp_font1.zip and mp_font2.zip)
+
+ Cyrillic fonts:
+ http://thot.banki.hu/mp-ftp/releases/bgfont.zip
+
+ And visit this site for korean subtitle support:
+ http://realtime.ssu.ac.kr/~lethean/mplayer
+
+ After that, UNZIP the files to ~/.mplayer/font/
+ Now you have to see a clock at the upper left corner of the movie
+ (switch it off with 'o')
+
+ OSD has 3 states: (switch with 'o')
+ - clock + volume bar + seek bar + sub (default)
+ - volume bar + seek bar + sub
+ - only sub
+
+
+ <A NAME=3>3. Usage
+
+ file: mplayer [options] [path/]filename
+ VCD: mplayer [options] -vcd trackno /dev/cdrom
+ DVD: mplayer [options] -dvdauth /dev/dvd filename.VOB
+ net: mplayer [options] http://site.com/file.[mpg|avi]
+
+ mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
+ mplayer -vcd 2 /dev/cdrom
+ mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
+ mplayer -dvd /dev/dvd /mnt/dvd/matrix.vob
+ mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi
+
+
+ <A NAME=3.1>3.1. Control from keyboard
+
+ <- or -> seek backward/forward 10 seconds
+ up or down seek backward/forward 1 minute
+ p or SPACE pause movie (press any key to continue)
+ q or ^C stop playing and quit program
+ o toggle OSD : none / seek / seek+timer
+ / and * decrease/increase volume
+ m toggle using master/pcm channel for volume setting
+ f toggle fullscreen (only with -vo sdl)
+
+
+ <A NAME=3.2>3.2. Control from LIRC
+
+ Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver,
+ an (almost) arbitrary remote control and control your linux box with it!
+ More about it at www.lirc.org.
+
+ If you have installed the lirc-package, you can compile MPlayer with LIRC
+ support using ./configure --enable-lirc
+
+ If everything went fine, MPlayer will print a message like
+ LIRC init was successful.
+ on startup. If an error occurs it will tell you. If it doens't tell you
+ anything about LIRC there's no support compiled in. That's it :-)
+
+ The application name for MPlayer is - oh wonder - mplayer_lirc.
+ It understands the following commands:
+
+ PAUSE - pause playing. Any other keystroke will continue replay.
+ QUIT - exit mplayer
+ RWND - 10 secs back
+ FRWND - 60 secs back
+ FWD - skip 10 secs
+ FFWD - skip 60 secs
+ INCVOL - increase volume one percent
+ DECVOL - decrease volmue one percent
+ MASTER - use master mixer channel
+ PCM - use pcm mixer channel
+
+ Don't forget to enable the repeat flag for RWND/FWD in .lircrc. Here's an
+ excerpt from my .lircrc:
+
+ begin
+ remote = CU-SX070
+ prog = mplayer_lirc
+ button = Tape_Play
+ repeat = 1
+ config = FFWD
+ end
+
+ begin
+ remote = CU-SX070
+ prog = mplayer_lirc
+ button = Tape_Stop
+ config = QUIT
+ end
+
+ If you don't like the standard location for the lirc-config file (~/.lircrc)
+ use the -lircconf <filename> switch to specify another file.
+
+
+ <A NAME=3.3>3.3. Streaming from network or pipes
+
+ wget ftp://micorsops.com/something.avi -O - | mplayer -
+
+
+ <A NAME=4>4. TV-out support
+
+
+ <A NAME=4.1>4.1. Matrox cards
+
+ > What I'd love to see in mplayer is the the same feature that I see in my
+ > windows box. When I start a movie in windows (in a window or in full screen)
+ > the movie is also redirected to the tv-out and I can also see it full screen
+ > on my tv. I love this feature and was wondering how hard it would be to add
+ > such a feature to mplayer.
+
+ It's a driver limitation. BES (Back-End Scaler, it's the overlay generator