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).