[MPlayer-dev-eng] VIDEO.HTML updates

Nick Kurshev nickols_k at mail.ru
Wed Jan 16 09:36:02 CET 2002


Hello, Gabucino!

I've write some vidix documentation - please apply.

Best regards! Nick

--- video.html.old	Wed Jan 16 09:58:34 2002
+++ video.html	Wed Jan 16 11:24:30 2002
@@ -51,6 +51,9 @@
   size=2><a href=#2.3.1.12>vesa</a></TD><TD></TD><TD><FONT face="Verdana, Arial,
   Helvetica, sans-serif" size=2>Output to VESA BIOS.</TD><TR>
 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif"
+  size=2><a href=#2.3.1.15>vidix</a></TD><TD></TD><TD><FONT face="Verdana, Arial,
+  Helvetica, sans-serif" size=2>VIDeo Interface for *niX.</TD><TR>
+<TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif"
   size=2>directfb</TD><TD></TD><TD><FONT face="Verdana, Arial,
   Helvetica, sans-serif" size=2>Direct Framebuffer Device</TD><TR>
 
@@ -255,7 +258,7 @@
 <P><B><A NAME=2.3.1.2.4>2.3.1.2.4. ATI cards</A></B></P>
 
 <P>
-<LI>The <A HREF="http://www.linuxvideo.org/gatos">GATOS driver</A> (which you
+<LI>The <A HREF="http://gatos.sf.net">GATOS driver</A> (which you
 should use, unless you have Rage128 or Radeon) has VSYNC enabled by default. It
 means that decoding speed (!) is synced to the monitor's refresh rate. If
 playing seems to be slow, try disabling VSYNC somehow, or set refresh rate to
@@ -883,6 +886,78 @@
 to improve something then simply send me your patches.
 </P>
 
+<table COLS=1 WIDTH=100%><tr><td BGCOLOR="#A0A0A0"><font color="#FFFFFF"><A NAME=2.3.1.15><b>2.3.1.15. VIDIX</b></font></td></tr></table>
+
+<P>What is <b>VIDIX</b>: VIDIX is abbreviation from <b>VID</b>eo <b>I</b>nterface for *ni<b>X</b>
+<br>VIDIX was designed and introduced as interface to fast user-space drivers to
+provide <b>DGA</b> everywhere where it's possible (<b>unline X11</b>). I hope that these drivers
+will be portable same as X11 (<b>not only on *nix</b>).
+<br>What is it:
+<br>- It's portable successor of mga_vid technology which is located in user-space.
+<br>- Unlikely X11 it's provides DGA everywhere where it's possible.
+<br>- Unlikely v4l it provides interface for video playback
+<br>- Unlikely linux's drivers it uses mathematics library.
+<br>
+<br>I can tell you by bold capital letters :
+<br><b>VIDIX PROVIDES DIRECT GRAPHICS ACCESS TO BES YUV MEMORY.</b>
+<br>
+<br><i>Well (it's in my todo) - implement DGA to MPEG2 decoder.</i>
+<br>
+<br>This interface was designed as attempt to fit existing interfaces of video
+acceleration (known as mga_vid, mga_yuv, radeon_vid) into fixed scheme. It
+provides highlevel interface to chips which are known as BES (BackEnd scalers)
+or OV (Video Overlays). It doesn't provide lowlevel interface to things which
+are known as graphics servers. (I don't want to compete with X11 team in
+graphics mode switching). I.e. main goal of this interface is provide maximal
+speed of video playback but not put video signal on screen of your TV or on
+tape of your VCR. Although these things are very significand too - it's
+perfectly other task. (However I guess that it would be possible to implement
+in the future something like mini-X (don't mix it with minix ;) if some number
+of volunteers will be found).
+<br>
+<br>Currently you can use VIDIX in several ways:
+<br>- You can use standalone video output driver: <b>-vo xvidix</b>
+<br>&nbsp;&nbsp;This driver was developed as X11's front end to VIDIX technology.
+It requires XServer and can work only under XServer.
+<br>- You can use VIDIX subdevice which was applied to several video output drivers, such as:
+<br>&nbsp;&nbsp;<b>-vo vesa:vidix</b> and <b>-vo fbdev:vidix</b>
+<br>Indeed it doesn't matter which video output driver is used with <b>VIDIX</b>.
+<br>VIDIX requirements:
+<br>1) video card should be in graphics mode (I write <b>should</b> simply because
+I tested it in text mode - it works but has awful output ;) Use AAlib for that).
+<br><code>Note: Everyone can do this trick by commenting out mode switching in vo_vesa driver.</code>
+<br>2) mplayer's video output driver should know active video mode and be able to tell to
+VIDIX subdevice some video characteristics of server.
+<br>In this connexion, I hope that probably every video output driver of mplayer will
+recognize <b>:vidix</b> subdevice.
+<br>
+<br>When VIDIX is used as <b>subdevice</b> (-vo vesa:xvidix) then configuring video mode is performed
+by video output device (<b>vo_server</b> in short). Therefore you can pass into command line
+of mplayer the same keys as for vo_server. In addition it understand <b>-double</b> key as globally
+visible parameter. (I can recommend you always use this key with VIDIX at least for ATI's card).
+<br>As for <b>-vo xvidix</b> - currently it recognized classic key set:
+<br><b>-fs -zoom -x -y</b>. Unlikely <b>-vo vesa</b> it can't use -screenw and -screenh keys
+but supports xinerama and other extensions of X11.
+<br>So as you can see every way has own minuses and pluses.
+<br>
+<br>Also you can specify vidix driver directly as third subargument in command line:
+<br>
+<br><code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi</code>
+<br>or
+<br><code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi</code>
+<br>
+<br>But it's danger way and you should avoid that. In this case given driver will be
+forced and result may be unpredictable (you may <b>hangup</b> your computer).
+<br>Right way it's use VIDIX without arguments to enable driver autodetection.
+<br>
+<br><b>Note</b>: VIDIX is newest technology and it's extremely possible that on your
+system (OS=abc CPU=xyz) it won't work. In this case only solution for you it's
+port it (mainly libdha). But there is hope that it will work on those systems where
+works X11.
+<br>And the last <b>WARNING</b>: (un)fortunatelly you <b>MUST</b> be a <b>ROOT</b> to use
+VIDIX due direct hardware access. Or set at least the <b>suid</b> bit on the
+<b>mplayer excecutable</b>.
+</P>
 
 <P><B><A NAME=2.3.1.A>2.3.1.A. TV-out support</A></B></P>
 
@@ -994,8 +1069,8 @@
 we have no chance to get working TV-out on ATI.</P>
 
 <P>What's status of ATI's tv-out chips under Linux:
-<LI><b>ATI Mach64</b> has <i>ImpacTV</i> which is supported by <A HREF="http://www.linuxvideo.org/gatos">gatos</A>.
-<LI><b>ASIC Radeon VIVO</b> has <i>Rage Theatre</i> which is supported by <A HREF="http://www.linuxvideo.org/gatos">gatos</A>.
+<LI><b>ATI Mach64</b> has <i>ImpacTV</i> which is supported by <A HREF="http://gatos.sf.net">gatos</A>.
+<LI><b>ASIC Radeon VIVO</b> has <i>Rage Theatre</i> which is supported by <A HREF="http://gatos.sf.net">gatos</A>.
 <LI><b>Radeon VE</b> and <b>Rage PRO LT</b> have <i>ImpacTV2+</i> which is not supported under Linux.
 But with <B>MPlayer</B> you get <B>full hardware acceleration</B> and <B>TV out</B>
 for Radeons !



More information about the MPlayer-dev-eng mailing list