8.15. VIDIX

EINLEITUNG.  VIDIX ist die Abkürzung für VIDeo Interface für *niX (Video-Schnittstelle für *n*x). VIDIX wurde entworfen, um eine Schnittstelle für schnelle Userspacetreiber für Grafikkarten zur Verfügung zu stellen, so wie es mga_vid für Matrox-Karten tut. VIDIX ist ebenfalls sehr portabel.

Diese Schnittstelle wurde als Versuch entworfen, den vorhandenen Schnittstellen für Videobeschleunigung (mga_vid, rage128_vid, radeon_vid, pm3_vid) ein einheitliches Dach zu geben. Sie stellt einen einheitlichen Highlevel-Zugang zu BES- und OV-Chips zur Verfügung (BackEnd Scaler und Video Overlays). Sie stellt keine Lowlevel-Funktionen für z.B. Grafikserver zur Verfügung. (Ich möchte nicht mit den X11-Leuten in Sachen Grafikmodusumschaltung konkurrieren.) Das Ziel dieser Schnittstelle liegt also einfach darin, die höchstmögliche Geschwindigkeit bei der Videowiedergabe zu erreichen.

VERWENDUNG

Es ist in der Tat nicht wichtig, welcher Videoausgabetreiber mit VIDIX verwendet wird.

ANFORDERUNGEN

BEDIENUNGSMETHODEN.  Wenn VIDIX als Subgerät (-vo vesa:vidix) benutzt wird, dann wird die Konfiguration des Videomodus vom Videoausgabegerät erledigt (kurz vo_server). Deswegen kannst du für MPlayer die gleichen Kommandozeilenparameter wie für vo_server verwenden. Zusätzlich ist die Option -double als global sichtbarer Parameter verfügbar. (Ich empfehle diese Option zumindest bei VIDIX und ATI-Karten.) -vo xvidix erkennt momentan die folgenden Optionen: -fs -zoom -x -y -double.

Du kannst den VIDIX-Treiber auch direkt als drittes Teilargument auf der Kommandozeile angeben:

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

oder

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

Das ist allerdings gefährlich, und du solltest das lieber nicht tun. Hierbei wird die Verwendung des angegebenen Treibers erzwungen, und das Resultat ist unklar (dein Computer könnte sogar abstürzen). Du solltest das wirklich NUR DANN tun, wenn du absolut sicher bist, dass es funktioniert und MPlayer es nicht eh schon automatisch auswählt. Berichte den Entwicklern von deinen Erfahrungen. Die korrekte Art, VIDIX zu benutzen, ist ohne das dritte Teilargument, sodass MPlayer automatisch den richtigen Treiber aussucht.

Da VIDIX direkten Zugriff auf die Hardware benötigt, musst du MPlayer entweder als root starten oder der Programmdatei das SUID-Bit setzen (WARNUNG: Das ist ein Sicherheitsrisiko!). Alternativ kannst du auch spezielle Kernelmodule benutzen:

  1. Lade dir die Entwicklerversion der svgalib herunter (z.B. 1.9.17), ODER lade dir eine von Alex speziell für die Benutzung mit MPlayer modifizierte Version (die nicht die svgalib-Sourcen zum Compilieren benötigt) hier herunter.

  2. Compiliere das Modul im svgalib_helper-Verzeichnis (das im Verzeichnis svgalib-1.9.17/kernel/ gefunden werden kann, wenn du die Sourcen von der svgalib-Seite heruntergeladen hast), und lade es mit insmod.

  3. Um die entsprechenden Geräte im /dev-Verzeichnis zu erstellen, führe ein

    make device

    im Verzeichnis svgalib_helper als root aus.

  4. Verschiebe das Verzeichnis svgalib_helper in das vidix-Unterverzeichnis des MPlayer-Quellbaums.

  5. Entferne den Kommentar vor der CFLAGS-Zeile, die "svgalib_helper" enthält aus vidix/Makefile.

  6. Compiliere erneut.

8.15.1. ATI-Karten

Momentan werden die meisten ATI-Karten unterstützt, von der Mach64 bis hin zur neuesten Radeon.

Es gibt zwei compilierte Binaries: radeon_vid für Radeons und rage128_vid für Rage128-Karten. Du kannst entweder eine der beiden erzwingen oder das VIDIX-System automatisch alle verfügbaren Treiber ausprobieren lassen.

8.15.2. Matrox-Karten

Matrox G200, G400, G450 und G550 sollen funktionieren.

Der Treiber unterstützt Videoequalizer und sollte fast genauso schnell wie der Matrox-Framebuffer sein.

8.15.3. Trident-Karten

Es gibt einen Treiber für den Trident Cyberblade/i1-Chipsatz, der auf VIA Epia-Mainboards eingesetzt wird.

Der Treiber wurde geschrieben und wird weiterentwickelt von Alastair M. Robinson.

8.15.4. 3DLabs-Karten

Auch wenn es einen Treiber für 3DLabs GLINT R3-Chips und Permedia3-Chips gibt, so hat noch niemand diese getestet. Feedback wird deswegen gern gesehen.

8.15.5. nVidia-Karten

Ein einmaliges Feature des nvidia_vid-Treibers ist seine Fähigkeit, Video auf einfacher, purer Textkonsole darzustellen - ohne Framebuffer oder X magic oder was auch immer. Zu diesem Zweck müssen wir die cvidix-Videoausgabe verwenden, wie folgendes Beispiel zeigt:

mplayer -vo cvidix example.avi

8.15.6. SiS-Karten

Dies ist ein sehr experimenteller Code, ähnlich nvidia_vid.

Er wurde auf SiS 650/651/740 getestet (die verbreitetsten Chipsets in den SiS-Versionen der Boxen von "Shuttle XPC"-Barebones)

Berichte erwartet!