4.4. SDL

SDL (Simple Directmedia Layer, einfacher Layer für den direkten Zugriff auf Mediengeräte) bietet grundsätzlich eine einheitliche Schnittstelle zu Audio- und Videogeräten. Programme, die SDL benutzen, kennen nur SDL und brauchen nichts darüber zu wissen, welche Video- oder Audiotreiber SDL tatsächlich benutzt. So kann z.B. eine Doom-Portierung mit SDL die Svgalib, aalib, X11, fbdev und andere Treiber nutzen. Dazu musst du z.B. nur den Videotreiber angeben, indem du die Umgebungsvariable SDL_VIDEODRIVER setzt. So lautet zumindest die Theorie.

Bei MPlayer benutzten wir damals die Softwareskalierungsroutinen der X11-Treiber von SDL bei Grafikkarten/-treibern, die keine Unterstützung für XVideo hatten, bis wir unsere eigenen schrieben, die schneller und hübscher waren. Wir benutzten damals außerdem SDLs aalib-Ausgabe. Jetzt haben wir unsere eigenen, was wesentlich komfortabler ist. Auch davon haben wir selber eine komfortablere Version geschrieben. SDLs DGA-Code war besser als unserer - zumindest bis vor kurzem. Verstehst du, worauf ich hinauswill? :)

SDL ist auch bei einigen fehlerbehafteten Treibern/Karten nützlich, wenn das Video ruckelig abgespielt wird (und es nicht an einem langsamen System liegt), oder wenn der Ton hinterherhinkt.

Die SDL-Videoausgabe unterstützt die Anzeige von Untertiteln unterhalb des Films auf den schwarzen Balken (sofern diese vorhanden sind).