diff options
author | gabucino <gabucino@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-08-21 20:59:23 +0000 |
---|---|---|
committer | gabucino <gabucino@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-08-21 20:59:23 +0000 |
commit | 1af8d58c0bf4a4cbac5fa9e5cfb8bc382c047b8c (patch) | |
tree | 6e96fc97c24259d0c5e1e8714241565cbfcda66d /DOCS/documentation.html | |
parent | b5532f2ec3a4d8bd41793a7d02efdd6ecdc9d9ac (diff) | |
download | mpv-1af8d58c0bf4a4cbac5fa9e5cfb8bc382c047b8c.tar.bz2 mpv-1af8d58c0bf4a4cbac5fa9e5cfb8bc382c047b8c.tar.xz |
they've been moved to html
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1612 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS/documentation.html')
-rw-r--r-- | DOCS/documentation.html | 2312 |
1 files changed, 0 insertions, 2312 deletions
diff --git a/DOCS/documentation.html b/DOCS/documentation.html deleted file mode 100644 index 4c34f56ddd..0000000000 --- a/DOCS/documentation.html +++ /dev/null @@ -1,2312 +0,0 @@ -<HTML> - -<BODY> - -<P> -<CENTER>MPlayer - Movie Player for LINUX (C) 2000-2001 Arpad Gereoffy (A'rpi/ESP-team)<BR> -<BR> -<A HREF="http://www.mplayerhq.hu">http://www.mplayerhq.hu</A></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</A> - <A HREF="#1.2">1.2 History</A> - <A HREF="#1.3">1.3 Installation</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.1.1">2.2.1.1.1 3dfx cards</A> - <A HREF="#2.2.1.1.2">2.2.1.1.2 S3 cards</A> - <A HREF="#2.2.1.1.3">2.2.1.1.3 nVidia cards</A> - <A HREF="#2.2.1.1.4">2.2.1.1.4 ATI cards</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 Installing DGA support for MPlayer</A> - <A HREF="#2.2.1.2.4">2.2.1.2.4 Resolution switching</A> - <A HREF="#2.2.1.2.5">2.2.1.2.5 DGA & MPlayer</A> - <A HREF="#2.2.1.2.6">2.2.1.2.6 Features of the DGA driver</A> - <A HREF="#2.2.1.2.7">2.2.1.2.7 Speed issues</A> - <A HREF="#2.2.1.2.8">2.2.1.2.8 Known bugs</A> - <A HREF="#2.2.1.2.9">2.2.1.2.9 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.1.10">2.2.1.10 AAlib - text mode displaying</A> - <A HREF="#2.2.2">2.2.2 Audio output devices</A> - <A HREF="#2.2.2.1">2.2.2.1 Soundcard experiences, recommendations</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.1">6.1 Compilation</A> - <A HREF="#6.2">6.2 General questions</A> - <A HREF="#6.3">6.3 File playing problems</A> - <A HREF="#6.4">6.4 Video/audio driver problems</A> - <A HREF="#6.5">6.5 Feature requests</A> - <A HREF="#6.6">6.6 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> - <A HREF="#7.4">7.4 StrongARM</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> -</PRE> -<P><HR></P> - -<P><PRE> - <A NAME=1>1. Introduction - - - <A NAME=1.1>1.1. Overview - - <B>MPlayer</B> 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, - AAlib, but you can use SDL (and this way all drivers of SDL) 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. - - <B>MPlayer</B> 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. - - <B>MPlayer</B> v0.10: - The MPEG and AVI player in a single binary! - - <B>MPlayer</B> 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. - - <B>MPlayer</B> 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. - - <B>MPlayer</B> 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 - - If you plan to use <B>MPlayer</B> on x86 architecture, you possibly want to use - Win32 codecs. 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! However, you can use our codecs package with avifile. - - If you own a Matrox G200/G400/G450 card, then please see the <A HREF="#2.2.1.6">2.2.1.6</A> - section in order to gain big speedup. It is important to do these steps - _before_ compiling <B>MPlayer</B>, otherwise no Matrox-specific support will be - built. - - If you plan to use the ProjectMayo's <B>OpenDivX</B> codec, check the - <A HREF="#2.1.2.1">2.1.2.1</A> section before compiling. - - Then build <B>MPlayer</B>: - - - ./configure - make - make install - - - It is recommended to browse the output of ./configure , it contains info - about what will be built, and what won't. You may also want to view - config.h and config.mak files. - - Though not mandatory, the fonts should be installed in order to gain - OSD, and subtitle functionality. Download mp_font3.zip (and optional - language updates) and optional (if exists) language updates. - - - mkdir ~/.mplayer/font - cd ~/.mplayer/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 - - <B>MPlayer</B> can read/play from the following devices/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, FFmpeg, OpenDivX and other MPEG4 variants - - Windows Media Video 7 (WMV1) and Windows Media Video 8 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 - 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 - - This section contains information about the DivX/OpenDivX codecs of - <A HREF="http://www.projectmayo.com">ProjectMayo</A>. Their first available alpha version was the OpenDivX 4.0 - alpha 47 and 48. Support for this was/is included in <B>MPlayer</B>, and built by - default. We even used its postprocessing code to optionally enhance visual - quality of MPEG1/2 movies. - - The new generation of this codec can even decode movies made with the - infamous DivX codec! And it's not everything, it's MUCH faster than the - traditional Win32 DivX DLL's. See below for configuration. The only - disadvantage of this codec is that it's currently closed-source. :( - - The codec can be downloaded from the following URL: - - - http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip - - - No automatic installing available at this time, so install it manually, - EXACTLY as described here. Unpack it, and copy files to their place: - - - cp libdivxdecore.so.0.0.0 /usr/local/lib/ - ln -s /usr/local/lib/libdivxdecore.so.0.0.0 /usr/local/lib/libdivxdecore.so.0 - ln -s /usr/local/lib/libdivxdecore.so.0 /usr/local/lib/libdivxdecore.so - ldconfig - cp decore.h /usr/local/include/ - - - <B>MPlayer</B> autodetects if OpenDivX is (properly) installed, just compile - as usual. If it doesn't detect it, you didn't install it exactly as above, - and/or has fucked up config (see last question of 6.1 section). - - Using it is a bit tricky. As it conflicts with the old OpenDivX (it's API is - very similar to OpenDivX's), OpenDivX code is disabled, and the OpenDivX - driver calls this library too. - - Generally we can pinpoint this issue to that you have two options to use - this codec: - - - -vc odivx : using divx4 codec as a new version of OpenDivX. - in this case it produces YV12 image in its own buffer, - and <B>MPlayer</B> (libvo) does colorspace conversion. - - -vc divx4 : using divx4 codec's colorspace conversion. - in this mode, you can use YUY2/UYVY too. - - The 'odivx' method is usually faster, due to the fact that it transfers - image data in YV12 (planar YUV 4:2:0) format, thus requiring much less - bandwidth on the bus. For packed YUV modes (YUY2, UYVY) use the 'divx4' - method. For RGB modes you can choose freely, their speed is same, maybe - differ according to the current bpp. - - Note: it supports postprocessing too, but range of values is strange: - - 0 no postproc - 10 .. 20 postprocessing, normal - (like level 2 with divxds) - 30 .. 60 hard postprocessing, eats many CPU. - (like level 4 with divxds) - - - <A NAME=2.1.2.2>2.1.2.2. ffmpeg's DivX/libavcodec - - Beginning with version 0.4.2 , <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> contains an <B>opensource</B> DivX codec, - which is compatible with the traditional DivX. <B>MPlayer</B> contains this codec, - and this makes it possible to <B>watch DivX movies on non-x86 platforms!</B> - To get it compile, you'll need nasm, bison, and flex, above the other - devel tools. It was removed from <B>MPlayer</B>'s cvs tree, you have - to download it manually directly from <B>FFmpeg</B>'s tree : - - - cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login - cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg - - - Note: if you copy with CVS subdirs, next time it's enough to do - 'cvs update'. - - Now, move the newly downloaded ffmpeg source's <B>libavcodec</B> directory, - (with all it's subdirectories) to <B>MPlayer</B>'s tree, so it will look - like this : - - - main/libavcodec - - - Symlinking is NOT enough, you have to copy it. - - ./configure detects if it can be built. At the moment it doesn't support - postprocessing, and is under optimization (it's faster than the DS/VfW DivX - codec). - - In order to use it, refresh your codecs.conf file, and do as the manpage, - or the example.conf says (the -vfm option). - - Note: libavcodec contains other codecs as well, but at the moment we mostly - focus on ffdivx, and it's unlikely that this will change. - - <A NAME=2.1.3>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 <B>MPlayer</B> 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://mplayerhq.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://mplayerhq.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 (-vo aa is very recommended, see below!) - - ggi: similar to SDL - - aa: textmode rendering with AAlib - - 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 the following subsections for details and requirements! - - - <A NAME=2.2.1.1>2.2.1.1. Xv - - 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. - In order to make this work, be sure to check the following: - - You have to use XFree86 4.0.2 or newer (former versions don't have XVideo) - - Your card actually supports harware acceleration (modern cards do) - - 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! - - - 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 <B>MPlayer</B>. - - - And finally, check if <B>MPlayer</B> was compiled with 'xv' support. - ./configure prints this. - - - <A NAME=2.2.1.1.1>2.2.1.1.1. 3dfx cards - - 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.1.0 or greater, it works ok. Alternatively, you can use - <A HREF="http://dri.sourceforge.net">DRI</A> cvs. - If you experience strange effects using -vo xv, try SDL (it has XVideo too) - and see if it helps. Check the <A HREF="#2.2.1.3">SDL section</A> for details. - - - <A NAME=2.2.1.1.2>2.2.1.1.2. S3 cards - - S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 - or greater. As for S3 Virge.. sell it. - - - <A NAME=2.2.1.1.3>2.2.1.1.3. nVidia cards - - nVidia isn't a very good choice under Linux.. You'll have to use the - binary nVidia driver, available at nVidia's website. The standard X - driver doesn't support XVideo for these cards, due to nVidia's closed - sources/specifications. - - - Riva128 cards don't have XVideo support even with the nvidia driver :( - Complain to NVidia. - - - <A NAME=2.2.1.1.4>2.2.1.1.4. ATI cards - - The GATOS driver 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. - - - <A NAME=2.2.1.2>2.2.1.2. DGA - - <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. Installing DGA support for <B>MPlayer</B> - - First make sure X loads the DGA extension, see in /var/log/XFree86.0.log : - - - (II) Loading extension XFree86-DGA - - - See, XFree86 4.0.x or greater is VERY RECOMMENDED! - <B>MPlayer</B>'s DGA driver is autodetected on ./configure, or you can force it - with --enable-dga. - - 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.. :( - - Become ROOT. DGA needs root access to be able to write directly video memory. - If you want to run it as user, then install <B>MPlayer</B> 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 ... !!!! - - - Now use '-vo dga' option, and there you go! (hope so:) - You should also try if the '-vo sdl:dga' option works for you! It's much - faster!!! - - - <A NAME=2.2.1.2.4>2.2.1.2.4. 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.5>2.2.1.2.5. DGA & <B>MPlayer</B> - - DGA is used in two places with <B>MPlayer</B>: 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 <B>MPlayer</B> works. - - - <A NAME=2.2.1.2.6>2.2.1.2.6. 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.7>2.2.1.2.7. 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.8>2.2.1.2.8. 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.9>2.2.1.2.9. 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 <B>MPlayer</B>. - - 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, arts) - -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 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). - - - <A NAME=2.2.1.4>2.2.1.4. SVGAlib - - If you don't have X, you can 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 <B>MPlayer</B> 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) - - 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.. ! - - 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 ;)) - - The FBdev output takes some additional parameters above the others: - - -fb specify the framebuffer device to use (/dev/fd0) - -fbmode mode name to use (according to /etc/fb.modes) - -fbmodeconfig config file of modes (default /etc/fb.modes) - monitor_hfreq - monitor_vfreq IMPORTANT values, see example.conf - monitor_dotclock - - If you want to change to a specific mode, then use - - mplayer -vm -fbmode (NameOfMode) filename - - -vm 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. - -zoom option isn't supported (software scaling is slow). -fs option - isn't supported. You can't use 8bpp (or less) modes. - - NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer, - and don't ask for it, since it's not an <B>MPlayer</B> limitation. - - - <A NAME=2.2.1.6>2.2.1.6. Matrox framebuffer (mga_vid) - - This section is about the Matrox G200/G400/G450 BES (Back-End Scaler) - support, the mga_vid kernel driver. 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 it, y |