diff options
Diffstat (limited to 'DOCS/documentation.html')
-rw-r--r-- | DOCS/documentation.html | 1910 |
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 + and YUV scaling engine of G200/G400/G450 cards) works only with CRTC1. + Normally, CRTC1 (textmode, every bpp gfx and BES) is routed to HEAD1, + and CRTC2 (only 16/32bpp gfx) is routed to HEAD2 (TV-out). + + Under linux, you have two choices to get TV-out working: + + 1. Using X 4.0.x + the HAL driver from matrox, so you'll get dual-head + support, and you'll be able to redirect second output to the TV. + Unfortunately it has Macrovision encryption enabled, so it will + only work on directly-connected TV, no through VCR. + Other problem is that Xv doesn't work on the second head. + (I don't know how Windows solve it, maybe it swaps the CRTCs between + the heads, or just uses YUV framebuffer of second DAC with some trick) + + 2. Using matroxfb with dual-head support enabled (2.4.x kernels). + You'll be able to get a framebuffer console (using CRTC2, so it's + slow), and TV-out (using CRTC1, with BES support). + You have to forget X while using this kind of TV-out! :( + < |