4.13. VIDIX

PREAMBLE.  VIDIX is the abbreviation for VIDeo Interface for *niX. VIDIX was designed and introduced as an interface for fast user-space drivers providing such video performance as mga_vid does for Matrox cards. It's also very portable.

This interface was designed as an attempt to fit existing video acceleration interfaces (known as mga_vid, rage128_vid, radeon_vid, pm3_vid) into a fixed scheme. It provides a high level interface to chips which are known as BES (BackEnd scalers) or OV (Video Overlays). It doesn't provide low level 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 to maximize the speed of video playback.


Indeed it doesn't matter which video output driver is used with VIDIX.


USAGE METHODS.  When VIDIX is used as subdevice (-vo vesa:vidix) then video mode configuration is performed by video output device (vo_server in short). Therefore you can pass into command line of MPlayer the same keys as for vo_server. In addition it understands -double key as globally visible parameter. (I recommend using this key with VIDIX at least for ATI's card). As for -vo xvidix, currently it recognizes the following options: -fs -zoom -x -y -double.

Also you can specify VIDIX's driver directly as third subargument in command line:

mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi


mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi

But it's dangerous, and you shouldn't do that. In this case given driver will be forced and result is unpredictable (it may freeze your computer). You should do that ONLY if you are absolutely sure it will work, and MPlayer doesn't do it automatically. Please tell about it to the developers. The right way is to use VIDIX without arguments to enable driver autodetection.

4.13.1. svgalib_helper

Since VIDIX requires direct hardware access you can either run it as root or set the SUID bit on the MPlayer binary (Warning: This is a security risk!). Alternatively, you can use a special kernel module, like this:

  1. Download the development version of svgalib (1.9.x).

  2. Compile the module in the svgalib_helper directory (it can be found inside the svgalib-1.9.17/kernel/ directory if you've downloaded the source from the svgalib site) and insmod it.

  3. To create the necessary devices in the /dev directory, do a

    make device

    in the svgalib_helper dir, as root.

  4. Then run configure again and pass the parameter --enable-svgalib_helper as well as --extra-cflags=/path/to/svgalib_helper/sources/kernel/svgalib_helper, where /path/to/svgalib_helper/sources/ has to be adjusted to wherever you extracted svgalib_helper sources.

  5. Recompile.

4.13.2. ATI cards

Currently most ATI cards are supported natively, from Mach64 to the newest Radeons.

There are two compiled binaries: radeon_vid for Radeon and rage128_vid for Rage 128 cards. You may force one or let the VIDIX system autoprobe all available drivers.

4.13.3. Matrox cards

Matrox G200, G400, G450 and G550 have been reported to work.

The driver supports video equalizers and should be nearly as fast as the Matrox framebuffer

4.13.4. Trident cards

There is a driver available for the Trident Cyberblade/i1 chipset, which can be found on VIA Epia motherboards.

The driver was written and is maintained by Alastair M. Robinson.

4.13.5. 3DLabs cards

Although there is a driver for the 3DLabs GLINT R3 and Permedia3 chips, no one has tested it, so reports are welcome.

4.13.6. nVidia cards

An unique feature of the nvidia_vid driver is its ability to display video on plain, pure, text-only console - with no framebuffer or X magic whatsoever. For this purpose, we'll have to use the cvidix video output, as the following example shows:

mplayer -vo cvidix example.avi

4.13.7. SiS cards

This is very experimental code, just like nvidia_vid.

It's been tested on SiS 650/651/740 (the most common chipsets used in the SiS versions of the "Shuttle XPC" barebones boxes out there)

Reports awaited!