diff options
Diffstat (limited to 'DOCS/German/video.html')
-rw-r--r-- | DOCS/German/video.html | 2213 |
1 files changed, 1327 insertions, 886 deletions
diff --git a/DOCS/German/video.html b/DOCS/German/video.html index b69019b294..3c4ad31456 100644 --- a/DOCS/German/video.html +++ b/DOCS/German/video.html @@ -10,12 +10,13 @@ <BODY> -<H3><A NAME="video">2.3.1. Video Ausgabe-Geräte</A></H3> +<H3><A NAME="video">2.3.1. Video-Ausgabe-Geräte</A></H3> <H4><A NAME="mtrr">2.3.1.1. MTRR</A></H4> -<P>Es ist SEHR zu empfehlen, dass man die MTRR Register aktiviert, denn sie -können eine großen Geschwindigkeits-Schub bringen.</P> +<P>Du solltest UNBEDINGT sicherstellen, dass die MTRR-Register richtig belegt +sind, denn sie können eine großen Geschwindigkeits-Schub +bringen.</P> <P>Mache ein <CODE>cat /proc/mtrr</CODE>:</P> @@ -23,25 +24,29 @@ können eine großen Geschwindigkeits-Schub bringen.</P> reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR> reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1</CODE></P> -<P>Dies ist richtig, es zeigt meine Matrox G400 mit 16MB Speicher. Ich habe die Einstellung -von XFree 4.x.x, was die MTRR Register automatisch einstellt.</P> +<P>Diese Anzeige ist richtig. Sie zeigt meine Matrox G400 mit 16MB Speicher. +Ich habe die Einstellung von XFree 4.x.x, was die MTRR-Register automatisch +einstellt.</P> -<P>Wenn nichts funktioniert, muss du es manuell setzen. Als erstes musst du die -Base-Adresse finden. Du hast 3 Möglichkeiten um sie zu finden:</P> +<P>Wenn nichts funktioniert, musst du sie manuell setzen. Als erstes musst du +die Basisadresse finden. Dazu gibt es drei Möglichkeiten:</P> <UL> <LI>durch die X11 Start-Meldungen, zum Beispiel: - <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR> + <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, + 0xd4000000<BR> (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI> - <LI>durch /proc/pci (verwende lspci -v Befehl): - <P><CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE> + <LI>durch /proc/pci (verwende <CODE>lspci -v</CODE>): + <P><CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown + device 0525</CODE> <CODE>Memory at d8000000 (32-bit, prefetchable)</CODE></P></LI> - <LI>durch die mga_vid Kerneltreiber-Meldungen (verwende dmesg): + <LI>durch die mga_vid Kerneltreiber-Meldungen (verwende <CODE>dmesg</CODE>): <P><CODE>mga_mem_base = d8000000</CODE></P></LI> </UL> -<P>So, nun gilt es die Speichergröße finden. Dies ist sehr einfach, rechne - einfach die Video-RAM-Größe ins Hexdezimal oder verwende diese Tabelle:</P> +<P>So, nun gilt es, die Speichergröße zu finden. Dies ist sehr +einfach, konvertier einfach die Video-RAM-Größe nach Hexdezimal, +oder verwende diese Tabelle:</P> <TABLE BORDER=0> <TR><TD> </TD><TD>1 MB</TD><TD WIDTH=10%></TD><TD>0x100000</TD></TR> @@ -52,47 +57,60 @@ Base-Adresse finden. Du hast 3 Möglichkeiten um sie zu finden:</P> <TR><TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD></TR> </TABLE> -<P>Du weisst die Base-Adresse und die Speichergröße? Lass uns die MTRR Register einstellen! -Zum Beispiel für die Matrox Karte von oben (base=0xd8000000) mit 32MB RAM -(size=0x2000000) führe einfach das Folgende aus:</P> +<P>Du weißt die Base-Adresse und die Speichergröße? Lass uns +die MTRR Register einstellen! Für die Matrox Karte von oben +(base=0xd8000000) mit 32MB RAM (size=0x2000000) führst du einfach das +Folgende aus:</P> -<P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> +<P><CODE> echo "base=0xd8000000 size=0x2000000 +type=write-combining" >| /proc/mtrr</CODE></P> -<P>Nicht alle CPUs unterstützen MTRRs. Zum Beispiel ältere K6-2's [z.B. 266MHz, -stepping 0] unterstützen kein MTRR, aber stepping 12 CPUs tuen es -(<CODE>cat /proc/cpuinfo</CODE> um zu überprüfen).</P> +<P>Nicht alle CPUs unterstützen MTRRs. Zum Beispiel ältere K6-2s +[die bei ca. 266MHz, stepping 0] unterstützen kein MTRR, aber stepping +12 CPUs tun es (<CODE>cat /proc/cpuinfo</CODE> gibt Aufschluss).</P> -<H4><A NAME="xv">2.3.1.2. Xv</A></H4> +<H4><A NAME="normal">2.3.1.2 Videoausgabegeräte für traditionelle +Grafikkarten</A></H4> -<P>Bei XFree86 4.0.2 oder neuer kannst du die Hardware-YUV-Routinen deiner -Grafikkarte verwenden, mit Hilfe der XVideo Erweiterung. Diese Routinen verwendet -die Option <CODE>-vo xv</CODE>. Dieser Treiber unterstützt auch eine Helligkeits/Kontrast/Farbton/etc -Anpassung (Es sei den du verwendest den alten, langsamen DirectShow DivX Codec, -welcher es überall unterstützt), lies in der Manpage.</P> +<H4><A NAME="xv">2.3.1.2.1 Xv</A></H4> -<P>Das es funktioniert, prüfe folgendes:</P> +<P>Mit XFree86 4.0.2 oder neureren Versionen kannst du die Hardware-YUV-Unterstützung +deiner Grafikkarte mit Hilfe der XVideo-Erweiterungen benutzen. Das ist die +Technik, die <CODE>-vo xv</CODE> benutzt. Dieser Treiber unterstützt +darüber hinaus die Anpassung von Helligkeit/Kontrast/Sättigung etc +(es sei denn, du benutzt den alten und langsamen DirectShow DivX-Codec, +welcher diese Anpassungen unabhängig vom Videoausgabetreiber unterstützt). +Schau in der Manpage nach.</P> + +<P>Um Xv zum Laufen zu bringen, musst du auf die folgenden Punkte achten:</P> <UL> - <LI>Du verwendest XFree86 4.0.2 oder neuer (frühere Versionen haben kein XVideo)</LI> - <LI>Deine Karte unterstützt Hardwarebeschleunigung (die meisten aktuellen tuen dies)</LI> - <LI>X lädt die XVideo Erweiterung, das sieht etwa so aus: + <LI>Du musst XFree86 4.0.2 oder eine neuere Version benutzen, da die + älteren Versionen XVideo noch nicht kannten.</LI> + XVideo)</LI> + <LI>Deine Grafikkarte muss Hardware-Unterstützung für YUV + bieten, was alle modernen Karten tun.</LI> + <LI>X muss die XVideo-Erweiterung auch tatsächlich laden, was zu + Meldungen ähnlich den folgenden führt: <P><CODE> (II) Loading extension XVideo</CODE></P> - <P>in /var/log/XFree86.0.log</P> - <P><B>Hinweis:</B> dies lädt nur die XFree86 Erweiterung. In einer guten Installation - ist sie immer geladen, aber das bedeutet nicht, dass der Support mit <B>deiner</B> - Karte funktioniert!</P></LI> - <LI>Deine Karte hat Xv Unterstützung unter Linux. Um es zu überprüfen, tippe - <CODE>xvinfo</CODE>, es ist ein Teil der XFree86 Distribution. Es sollte einen langen Text - anzeigen, vergleichbar mit diesem: -<PRE> + <P>Anmerkung: Diese Meldung besagt nur, dass die XFree86-Erweiterung + geladen wird. Bei einer guten Installation sollte das immer der Fall + sein. Das heißt allerdings noch nicht, dass die + <B>XVideo-Unterstützung der Grafikkarte</B> auch geladen wurde!</P> + </LI> + <LI>Deine Karte muss unter Linux Xv-Unterstützung haben. Du kannst dich + dessen mit <CODE>xvinfo</CODE> vergewsissern, das Teil der + XFree86-Distribution ist. Es sollte einen längeren Text ausgeben, + der ungefähr so aussieht: + <PRE> X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 - operations supported: PutImage + operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 @@ -109,293 +127,332 @@ welcher es überall unterstützt), lies in der Manpage.</P> bits per pixel: 12 number of planes: 3 type: YUV (planar) - (...usw...) -</PRE> - - <P>Es muss YUY2 gepackte und YV12 planar Pixelformate unterstützen, um - hilfreich für <B>MPlayer</B> zu sein.</P></LI> - <LI>Zum Schluss prüfe, ob <B>MPlayer</B> mit <CODE>xv</CODE> Unterstützung kompiliert wurde. - ./configure zeigt an, ob es eingebaut wurde.</LI> + (...etc...) + </PRE> + <P>Damit <B>MPlayer</B> Xv benutzen kann, müssen die Pixelformate + "YUY2 packed" und "YV12 planar" unterstützt werden.</P> + </LI> + <LI>Stell als letztes sicher, dass <B>MPlayer</B> mit Unterstützung + für Xv compiliert wurde. <CODE>configure</CODE> gibt eine + entsprechende Meldung aus.</LI> </UL> +<H4><A NAME="xv_3dfx">2.3.1.2.1.1 3dfx-Karten</A></H4> -<H5><A NAME="xv_3dfx">2.3.1.2.1. 3dfx Karten</A></H5> - -<P>Bei älteren 3dfx Treibern sind bekannt, dass sie Probleme mit der XVideo Beschleunigung -machen und dass der Treiber unterstützt weder YUY2 noch YV12. Prüfe ob du XFree86 -Version 4.2.0 oder neuer hast, es funktioniert mit YV12 und YUY2. Frühere Versionen, auch 4.1.0 -<B>stürzten mit YV12 ab</B>! -Wenn du seltsame Effekte bei der Benutzung mit <CODE>-vo xv</CODE> bemerkst, probier SDL (es unterstützt auch XVideo) -und prüfe ob es funkioniert. Siehe <A HREF="#sdl">SDL Sektion</A> für Details.</P> +<P>Ältere 3dfx-Treiber hatten bekanntermaßen Probleme mit der +XVideo-Beschleuningung, die entweder YUY2 oder YV12 nicht unterstützte. +Stell sicher, dass du XFree86 Version 4.2.0 oder neuer verwendest, da diese +Versionen mit YV12 und YUY2 keine Probleme haben. Vorherige Versionen, auch +4.1.0, sind <B>bei Verwendung von YV12 abgestürzt</B>. Wenn du +merkwürdige Effekte bei der Verwendung von <CODE>-vo xv</CODE> +bemerktst, dann probier aus, ob mit SDL, das ebenfalls XVideo benutzen kann, +diese Effekte verschwinden. In der <A HREF="#sdl">SDL-Sektion</A> stehen +Details darüber.</P> -<P><B>Oder</B> versuche den <B>neuen</B> <CODE>-vo tdfxfb</CODE> Treiber! Siehe <A HREF="#tdfxfb">Tdfxfb Sektion</A>.</P> +<P><B>Alternativ</B> kannst du auch den NEUEN tdfxfb-Treiber mit <CODE>-vo +tdfxfb</CODE> verwenden! Lies dazu die <A NAME="#tdfxfb">tdfxfb- +Sektion</A>.</P> -<H5><A NAME="xv_s3">2.3.1.2.2. S3 Karten</A></H5> +<H4><A NAME="xv_s3">2.3.1.2.1.2 S3-Karten</A></H4> -<P>S3 Savage3Ds sollten gut funktionieren, jedoch bei einer Savage4 verwende XFree86 -Version 4.0.3 oder neuer (bei Bildproblemen versuche 16bpp). Und für S3 Virge.. existiert -xv Unterstützung, die Karte selbst ist jedoch sehr langsam, du solltest sie also besser verkaufen.</P> +<P>S3 Savage3D-Karten sollten problemlos funktionieren, aber bei Savage4- +Chips solltest du XFree86 4.0.3 oder neuer verwenden. Probier bei Problemen +den 16bpp-Farbmodus aus. Und der S3 Virge... Es gibt für ihn zwar Xv- +Unterstützung, aber die Karte selber ist so langsam, dass du sie besser +verkaufst.</P> -<P><B>Hinweis:</B> Savage Karten haben eine langsame YV12 Bildwiedergabe Fähigkeit (es muss eine -YV12 zu YUY2 Konversion durchgeführt werden, da die Savage Hardware YV12 nicht darstellen kann). -Wenn also diese Dokumentation an einem gewissen Punkt sagt "dies hat YV12 Ausgabe. Benutze Sie, -es ist schneller", ist es nicht sicher. Versuche es mit -<A HREF="http://www.mplayerhq.hu/MPlayer/contrib/Savage-driver/savage_drv.o.mmx2.bz2">diesem Treiber</A>, -, er benutzt MMX2 für diese Aufgabe und ist schneller als der eingebaute X-Treiber.</P> +<P><B>Anmerkung:</B> Momentan ist nicht ganz klar, welche Savage-Modelle +keine Unterstützung für YV12 in Hardware haben, sodass bei ihnen +der Treiber diese Konvertierung sehr langsam vornimmt. Wenn du deine Karte +deswegen verdächtigst, dann besorg dir einen neueren Treiber, oder +frag auf der MPlayer-Users-Mailingliste freundlich nach einem Treiber, der +MMX/3DNow unterstützt.</P> -<H5><A NAME="xv_nvidia">2.3.1.2.3. nVidia Karten</A></H5> +<H4><A NAME="xv_nvidia">2.3.1.2.1.3 nVidia-Karten</A></H4> -<P>nVidia ist keine gute Wahl für Linux (nach nVidia, ist dies -<A HREF="users_against_developers.html#nvidia">nicht wahr</A>). Du musst dazu den binären nVidia- -Treiber, verfügbar auf der nVidia Website, verwenden. Der Standard X-Treiber -unterstützt kein XVideo für diese Karten, aufgrund der von nVidia geschlossenen -Sources/Spezifikationen.</P> +<P>nVidia ist für Linux keine optimale Wahl (auch wenn das laut nVidia +<A HREF="users_against_developers.html#nvidia">nicht stimmt</A>). Du wirst +die binären Closed-Source-Treiber benutzen müssen, die auf nVidias +Webseite verfügbar sind. Die Standard-XFree86-Treiber bieten aufgrund +der nicht öffentlichen Quellen und auch nicht öffentlich +erhältlichen Spezifikationen der nVidia-Chips keine XVideo- +Unterstützung für diese Karten.</P> -<P>Soweit ich weiss enthält der neuste XFree86 Treiber XVideo Unterstützung für GeForce 2 und 3.</P> +<P>Soweit ich weiß enthalten die neuesten in XFree86 enthaltenen +Treiber XVideo-Unterstützung für GeForce2- und GeForce3-Modelle. +</P> -<P>Riva128 Karten haben keine XVideo Unterstützung, auch nicht mit dem -nVidia-Treiber :( -Wende dich an nVidia.</P> +<P>Riva128-Karten bieten nicht einmal mit den binären nVidia-Treibern +XVideo-Unterstützung (beklag dich bei nVidia).</P> -<H5><A NAME="xv_ati">2.3.1.2.4. ATI Karten</A></H5> +<H4><A NAME="xv_ati">2.3.1.2.1.4 ATI-Karten</A></H4> <UL> - <LI>Beim <A HREF="http://www.linuxvideo.org/gatos">GATOS Treiber</A> (den du - verwenden solltest) ist VSYNC standardgemäß eingeschaltet. Das bedeutet, dass - die Dekodierungsgeschwindigkeit synchron mit der Monitor-Refeshrate ist. - Wenn die Wiedergabe langsam zu sein scheint, versuche irgendwie VSYNC auszuschalten - oder setze die Refreshrate auf n*(fps des Films) Hz.</LI> - <LI>Radeon VE - zur Zeit hat nur die CVS-Versionen von XFree86 einen Treiber für - diese Karte, Version 4.1.0 hat keinen. Natürlich kannst du mit <B>MPlayer</B> gut - eine <B>beschleunigte</B> Anzeige erhalten, mit oder ohne <B>TV Ausgabe</B>. Es - werden auch keine Bibliotheken oder X benötigt. Lies in der <A HREF="#vidix">Vidix</A> - Abteilung.</LI> + <LI>Die <A HREF="http://gatos.sourceforge.net">GATOS-Treiber</A>, die du + einsetzen solltest, sofern du keine Rage128- oder Radeon-Karte hast, + haben standardmäßig VSYNC angeschlatet. Das bedeutet, dass + die Decodiergeschwindigkeit zur Bildwiederholrate des Monitors + synchronisiert wird. Wenn dir die Wiedergabe langsam vorkommt, dann + versuch, irgendwie VSYNC abzuschalten, oder setze die Bildwiederholrate + des Monitors auf <CODE>n * (fps des Films) Hz</CODE>.</LI> + <LI>Radeon VE - Momentan bietet nur die CVS-Version von XFree86 diese Karten, + Version 4.1.0 tut dies noch nicht. Außerdem gibt es keine + Unterstützung für den TV-Ausgang. Natürlich bekommst + du mit <B>MPlayer</B> <B>hardwarebeschleunigte</B> Wiedergabe, das ganze + wahlweise <B>mit oder ohne TV-Ausgang</B>, und es werden dabei nicht + einmal weitere Bibliotheken oder X selber benötigt. Lies dazu + die <A HREF="#vidix">Vidix-Sektion</A>.</LI> </UL> +<H4><A NAME="xv_neomagic">2.3.1.2.1.5 NeoMagic-Karten</A></H4> -<H5><A NAME="xv_neomagic">2.3.1.2.5. NeoMagic Karten</A></H5> - -<P>Diese Karten findet man in vielen Laptops. Unglücklicherweise unterstützt der Treiber -in X 4.2.0 kein Xv. Wir bieten jedoch einen modifizierten, -<A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neomagic_drv.o.4.2.0.bz2">Xv-fähigen Treiber</A> -an. Der Treiber wurde von Stefan Seyfried zur Verfügung gestellt.</P> +<P>Diese Chips befinden sich in vielen Laptops. Leider unterstützt der +in X 4.2.0 enthaltene Treiber nicht Xv, aber wir haben einen veränderten +Treiber mit Xv-Unterstützung für dich. +<A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neomagic_drv.o.4.2.0.bz2"> +Lade ihn hier herunter</A>. Dieser Treiber wird von Stefan Seyfried zur +Verfügung gestellt.</P> -<P>Um die Wiedergabe von Inhalt mit DVD-Grösse zu erlauben sollte die XF86Config -wie folgt aussehen:</P> +<P>Um die Wiedergabe von Video in DVD-Auflösung zu ermöglichen, +ändere deine <CODE>XF86Config</CODE> wie folgt:</P> -<P><CODE>Section "Device"<BR> - <I>[...]</I><BR> - Driver "neomagic"<BR> - <B>Option "OverlayMem" "829440"</B><BR> - <I>[...]</I><BR> -EndSection</CODE></P> +<P>Section "Device"<BR> + <I>[...]</I><BR> + Driver "neomagic"<BR> + <B>Option "OverlayMem" "829440"</B><BR> + <I>[...]</I><BR> + EndSection</P> -<H5><A NAME="xv_trident">2.3.1.2.6. Trident Karten</A></H5> +<H4><A NAME="xv_trident">2.3.1.2.1.6 Trident-Karten</A></H4> -<P>Wenn du xv mit einer Trident Karte benutzen willst, vorausgesetzt, dass es nicht -mit 4.1.0 läuft, probier die neuste cvs von XFree oder warte auf XFree 4.2.0. -Das neuste cvs enthält Unterstützung für Fullscreen xv mit der Cyberblade XP card.</P> +<P>Wenn du Xv mit einer Trident-Grafikkarte benutzen willst, dann installier +XFree86 4.2.0, sofern Xv nicht schon mit 4.1.0 funktioniert. Version 4.2.0 +enthält Unterstützung für Xv im Vollbild für +Cyberblade XP-Karten.</P> -<H4><A NAME="dga">2.3.1.3. DGA</A></H4> +<H4><A NAME="dga">2.3.1.2.2 DGA</A></H4> -<H5><A NAME="dga_summary">2.3.1.3.1. Zusammenfassung</A></H5> -<P>Dieses Dokument versucht mit einigen Worten zu beschreiben, was DGA allgemein -ist und was man mit dem DGA Video-Ausgabetreiber für <B>MPlayer</B> alles machen kann -(und was es nicht kann).</P> +<H4><A NAME="dga_summary">2.3.1.2.2.1 Zusammenfassung</A></H4> +<P>Dieser Abschnitt versucht, in wenigen Worten zu beschreiben, was DGA +generell ist, und was der DGA-Videotreiber in <B>MPlayer</B> erreichen kann, +und was nicht.</P> -<H5><A NAME="dga_whatis">2.3.1.3.2. Was ist DGA</A></H5> +<H4><A NAME="dga_whatis">2.3.1.2.2.2 Was ist DGA?</A></H4> -<P>DGA ist die Abkürzung für Direct Graphics Access (Direkter Grafik-Zugriff) -und bedeutet für ein Programm, das es den X-Server überbrückt und direkt den -Framebuffer-Speicher ändert. Technisch gesprochen passiert dies durch -Verschieben des Framebuffer-Speichers in den Speicherbereich des Prozesses. -Dies wird vom Kernel nur erlaubt, wenn der Anwender Superuser-Rechte besitzt. Man -kann diese bekommen duch Einloggen als Root oder durch das Setzen des Suid-Bits -für das MPlayer-Programm (<B>nicht</B> empfohlen).</P> +<P>DGA ist die Abkürzung für Direct Graphics Access (direkter +Zugriff auf die Grafikhardware) und gibt Programmen die Möglichkeit, +unter Umgehung des X-Servers direkt den Framebuffer der Grafikkarte +zu verändern. Technisch gesehen wird das dadurch realisiert, dass +der Framebuffer in den virtuellen Adressraum des jeweiligen Prozesses +abgebildet wird. Das wird vom Kernel aber nur dann zugelassen, wenn der +Prozess Superuserprivilegien besitzt. Dazu musst du dich entweder als +root anmelden oder das SUID-bit des <B>MPlayer</B>-Binaries setzen (was +<B>nicht empfohlen wird</B>).</P> -<P>Es gibt zwei Versionen von DGA: DGA1 wird verwendet unter XFree 3.x.x und DGA2 -wurde zu XFree 4.0.1 entwickelt.</P> +<P>Von DGA gibt es zwei Versionen: DGA1 kommt mit XFree 3.x.x, und DGA2 +wurde mit XFree 4.0.1 eingeführt.</P> -<P>DGA1 unterstützt nur den direkten Framebuffer-Zugriff, wie oben beschrieben. -Für das Ändern der Farbtiefe eines Video-Signals muss man auf die XVidMode -Erweiterung zurückgeifen.</P> +<P>DGA1 bietet nur den oben beschriebenen Zugriff auf den Framebuffer. Die +Umschaltung des Videomodus klappt nur mit der XVidMode-Erweiterung.</P> -<P>DGA2 arbeitet mit dem Feature der XVidMode Erweiterung zusammen und erlaubt -auch das Ändern der Farbtiefe. So kannst du dem X Server allgemein auf einer -32 Bit Auflösung betreiben und die Farbtiefe damit auf 15 Bits verringern.</P> +<P>DGA2 beinhaltet die Features der XVidMode-Erweiterung und erlaubt +außerdem, die Farbtiefe zu ändern. Damit kannst du also auf 32bit +Farbtiefe umschalten, auch wenn der X-Server gerade mit 15bit Farbtiefe +läuft.</P> -<P>Wie auch immer, DGA hat auch einige Nachteile. Es scheint, als ob es irgendwie -abhängig vom Grafik-Chip ist und von der Implementation des X Server Video-Treibers, -welcher den Chip kontrolliert. Also funktioniert es nicht auf jedem System...</P> +<P>DGA hat aber auch ein paar Nachteile. Die Funktionsweise scheint ein wenig +von der Grafikkarte und dem Grafikkartentreiber im X-Server abhängig zu +sein. Es fuktioniert also nicht auf jedem System...</P> -<H5><A NAME="dga_installation">2.3.1.3.3. Installation der DGA Unterstützung für MPlayer</A></H5> +<H4><A NAME="dga_installation">2.3.1.2.2.3 DGA-Unterstützung für +MPlayer installieren</A></H4> -<P>Als erstes prüfe, ob X die DGA Erweiterung lädt, siehe /var/log/XFree86.0.log:</P> +<P>Stell als erstes sicher, dass X die DGA-Erweiterung lädt. Schau +in /var/log/XFree86.0.log nach:</P> <P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> -<P>XFree86 4.0.x oder neuer sind STARK EMPFOHLEN! <B>MPlayers</B> DGA-Treiber wird -automatisch von ./configure erkannt, oder du kannst es mit --enable-dga erzwingen.</P> - -<P>Wenn der Treiber nicht zu einer kleineren Auflösung wechseln kann, versuche -mit den Optionen -vm (nur unter X 3.3.x), -fs, -bpp, -zoom um ein Video-Modus zu -finden, dass das Video passt. Es gibt noch keinen Konverter :(</P> - -<P>Werde root. DGA braucht Root-Rechte um direkt in den Video-Speicher zu -schreiben. Wenn du es auch also Anwender starten willst, installiere bei -<B>MPlayer</B> die SUID root:</P> - -<P><CODE> chown root /usr/local/bin/mplayer<BR> - chmod 750 /usr/local/bin/mplayer<BR> - chmod +s /usr/local/bin/mplayer</CODE></P> - -<P>Nun funktioniert es auch als einfacher Anwender.</P> - -<P><BLOCKQUOTE> -<B>Warnung: Sicherheitsrisiko</B><BR> -Dies ist ein <B>grvsseres</B> Sicherheitsrisiko! Es sollte <B>nie</B> auf einem Server oder -einem Computer, der nicht vollstdndig kontrolliert wird angewandt werden. Da die User durch -einen SUID root <B>MPlayer</B> Root-Privilegien bekommen!<BR> -<B>Du bist also gewarnt worden!</B> -</BLOCKQUOTE></P> - -<P>Verwende nun die <CODE>-vo dga</CODE> Option und es sollte funktionieren! (hoffe es:) -Du solltest auch probieren, ob die <CODE>-vo sdl:dga</CODE> Option bei dir funktioniert! -Es ist um einiges schneller!</P> - - -<H5><A NAME="dga_resolution">2.3.1.3.4. Änderung der Auflösung</A></H5> - -<P>Der DGA Treiber erlaubt das Ändern der Auflösung des Ausgabe-Signals. Es erspart -die Verwendung von (langsamem) softwaremäßigem Scaling und ermöglicht zur -selben Zeit Vollbild-Grafiken. Ideal wäre es, wenn man auf die genaue Auflösung -des Videos (würde die richtige Rate voraussetzen) schalten könnte, aber der X Server -erlaubt nur das Änderen in eine Auflösung, die in <CODE>/etc/X11/XF86Config</CODE> -(<CODE>/etc/X11/XF86Config-4</CODE> bei XFree 4.0.X) vordefiniert ist. -Dies sind so genannte "Modelines" und sind von den Fähigkeiten deiner -Video-Hardware abhängig. Der X Server scannt die Konfigurationsdatei beim Starten und -schaltet die Modelines aus, die nicht zu der Hardware passen. Du kannst die -funktionierenden Modelines mithilfe der X11-Logdatei herausfinden. Sie kann -unter <CODE>/var/log/XFree86.0.log</CODE> gefunden werden.</P> - -<P>Siehe Anhang A für einige Beispiele für Modeline-Einstellungen.</P> - +<P>Wie du siehst ist XFree86 4.0.x oder neuer SEHR ZU EMPFEHLEN! +<B>MPlayer</B>s DGA-Treiber wird von <CODE>./configure</CODE> automatisch +erkannt. Alternativ kannst du seine Compilierung mit <CODE>--enable- +dga</CODE> erzwingen.</P> -<H5><A NAME="dga_mplayer">2.3.1.3.5. DGA & MPlayer</A></H5> +<P>Falls der Treiber nicht zu einer kleineren Auflösung wechseln +konnte, dann experimentier mit den Optionen <CODE>-vm</CODE> (nur bei +X 3.3.x), <CODE>-fs, -bpp, -zoom</CODE>, um einen Videomodus zu finden, +in den der Film reinpasst. Momentan gibt es keinen Konverter :(</P> -<P>DGA wird in zwei Plätzen von <B>MPlayer</B> verwendet: Der SDL Treiber kann -es verwenden (-vo sdl:dga) und der DGA-Treiber (-vo dga). Das oben -genannte trifft für beide zu; in der folgenden Sektion werde ich erklären, wie -der DGA-Treiber für <B>MPlayer</B> funktioniert.</P> +<P>Werde root. DGA bruacht root-Privilegien, um direkt in den Grafikspeicher +zu schreiben. Wenn du <B>MPlayer</B> als normaler Benutzer starten +möchtest, dann installiere <B>MPlayer</B> mit dem SUID-Bit:</P> +<P><CODE> + chown root /usr/local/bin/mplayer<BR> + chmod 750 /usr/local/bin/mplayer<BR> + chmod +s /usr/local/bin/mplayer</CODE></P> -<H5><A NAME="dga_features">2.3.1.3.6. Features des DGA-Treibers</A></H5> - -<P>Der DGA Treiber wird durch die -vo dga Option auf der Komandozeile ausgewählt. -Das normale Verhalten ist, dass der DGA-Treiber die Auflösung so weit -wie möglich an das Video anzupassen. Es ignoriert die -vm und -fs Optionen (für -Videomodus-Änderung und Vollbild) - es versucht immer so viel Fläche wie möglich -durch Ändern des Videomodus zu nutzen, dies erspartet eine zusätzliche Verwendung -der CPU um das Bild zu vergrößern/verkleinern. -Wenn dir der Modus, den der Treiber gewählt hat, nicht gefällt, kannst du mit -x -und -y Option einen auswählen, der besser passt. -Mit der -v Option wird der DGA Treiber - neben vielen anderen Dingen - eine -Liste der Auflösungen, die von deiner aktuellen XF86-Config Datei unterstützt -werden ausgeben. Unter DGA2 kannst du auch die Farbtiefe mit der -bpp Option -einstellen. Gültige Farbtiefen sind 15, 16, 24 und 32bpps. Es hängt von deiner -Hardware ab, ob diese Tiefen grundlegend unterstützt werden oder ob sie (was -möglichweise langsam ist) konvertiert werden müssen.</P> - -<P>Wenn du genug Glück hast und genug Offscreen-Speicher übrig ist um eine -ganzes Bild darin zu speichern, wird der DGA Treiber "Doublebuffering" verwenden, -was ein flüssigeres Bild ermöglicht. Es wird ausgeben, ob Doublebuffering -eingeschaltet ist oder nicht.</P> - -<P>Doublebuffering bedeutet, dass der nächste Frame des Videos bereits in den -Offscreen-Speicher schrieben wird, während der aktuelle Frame angezeigt wird. -Wenn der nächste Frame fertig ist, wird dem Grafik-Chip nur die Position im -Speicher mitgeteilet, wo sich der nächste Frame befindet und die Grafik ververwendet -das Bild einfach von dort. In der Zwischenzeit wird der anderer Buffer wieder -mit Video-Daten aufgefüllt.</P> - -<P>Doublebuffering kann man mit der Option -double ein- und mit der Option --nodouble ausschalten. Zur Zeit ist die Standard-Option, dass der zusätzliche Buffer -ausschaltet ist. Wenn der DGA-Treiber verwendet wird, funktioniert das Onscreen -Display (OSD) nur mit eingeschaltetem Doublebuffering. Wie auch immer, das Einschalten -von Doublebuffering kann einen großer Geschwindigkeitsnachteil sein (auf meinem -K6-II+ 525 verwerdet es zusätzliche 20% der CPU-Zeit.), abhängig von der -Implementation von DGA für eine Hardware.</P> - - -<H5><A NAME="dga_speed">2.3.1.3.7. Geschwindigkeit</A></H5> - -<P>Allgemein gesprochen sollte der DGA-Framebuffer Zugriff mindestens so -schnell sein wie Verwendung des X11-Treibers, jedoch mit den zusätzlichen Vorteils des -möglichen Vollbildes. Die prozentuelle Geschwindigkeitsangaben von MPlayer -sollten aber mit Vorsicht genossen werden, denn zum Beispiel wird beim X11-Treiber -die Zeit, die vom X-Server benötigt wird um das Bild aufzubauen, nicht eingerechnet. -Logge dich via ein Terminal über eine serielle Verbindung in deine Box ein und -starte <B>MPlayer</B> damit du wirklich siehst, was los ist...</P> - -<P>Allgemein gesprochen ist der Geschwindigkeitsvorteil von DGA im Vergleich -zur normalen Verwendung von X11 stark abhängig von der Grafikkarte und wie gut -das X-Server Modul dafür optimiert ist.</P> - -<P>Wenn du ein langsames System besitztst, verwende lieber 15 oder 16 Bit Farbtiefen, -denn es verwendet nur halbe Speicherbandbreiten im Vergleich zu 32 bit.</P> - -<P>Die Verwendung von 24bit ist eine gute Idee, wenn deine Karte 32 Bit Tiefe -unterstützt, denn es sind 25% weniger Daten im Vergleich zu einem 32/32 Modus.</P> - -<P>Ich habe einige AVI-Dateien schon auf einem Pentium MMX 266 wiedergegeben. -Bei AMD K6-2 CPUs funktioniert es vielleicht ab 400 MHZ oder mehr.</P> - +<P>Jetzt funktioniert es auch als normaler Benutzer.</P> -<H5><A NAME="dga_bugs">2.3.1.3.8. Bekannte Probleme</A></H5> +<BLOCKQUOTE> + <B>Warnung: Sicherheitsrisiko!</B><BR> + Dieses ist ein <B>großes</B> Sicherheitsloch. Tu das <B>niemals</B> + auf einem Server oder auf einem Computer, auf den auch andere Leute Zugriff + haben, da sie durch einen SUID-root-MPlayer root-Privilegien erlangen + können. +</BLOCKQUOTE> -<P>Nun, nach der Aussage von einigen Entwicklern von XFree ist DGA immer noch "ein -wildes Tier". Sie sagen es ist besser, wenn man es nicht verwendet. Die Implementierung -ist noch nicht immer fehlerfrei mit jedem Chipset-Treiber von XFree.</P> +<P>Benutze jetzt die Option <CODE>-vo dga</CODE>, und ab geht's (hoffe ich +zumindest :))! Du solltest auch ausprobieren, ob bei dir die Option +<CODE>-vo sdl:dga</CODE> funktioniert. Sie ist viel schneller.</P> + +<H4><A NAME="dga_resolution">2.3.1.2.2.4 Ändern der +Auflösung</A></H4> + +<P>Der DGA-Treiber ermöglicht es, die Auflösung zu ändern. +Damit entfällt die Notwendigkeit der langsamen Softwareskalierung und +bietet gleichzeitig ein Vollbild. Idealerweise würde DGA in die gleiche +Auflösung schalten, die das Video (natürlich unter Beachtung des +Höhen-/Breitenverhältnisses) hat, aber der X-Server lässt nur +Auflösungen zu, die vorher in der <CODE>/etc/X11/XF86Config</CODE> bzw. +<CODE>/etc/X11/XF86Config-4</CODE> definiert wurden. Diese werden durch +sogenannte Modelines festgelegt und hängen von den Fähigkeiten +deiner Grafikhardware ab. Der X-Server liest diese Konfigurationsdatei beim +Start ein und deaktiviert alle Modelines, die sich nicht mit deiner Hardware +vertragen. Du kannst die "überlebenden" Modelines anhand der X11- +Logdatei herausfinden (normalerweise +<CODE>/var/log/XFree86.0.log</CODE>).</P> + +<P>Einige Modelines findest du in Anhang A.</P> + +<H4><A NAME="dga_mplayer">2.3.1.2.2.5 DGA & MPlayer</A></H4> + +<P>DGA wird bei <B>MPlayer</B> an zwei Stellen benutzt: beim SDL-Treiber mit +<CODE>-vo sdl:dga</CODE> oder beim DGA-Treiber selber (<CODE>-vo dga</CODE>). +Das oben gesagte gilt für beide Treiber. In den folgenden Abschnitten +erkläre ich, wie der DGA-Treiber von <B>MPlayer</B> selber arbeitet.</P> + +<H4><A NAME="dga_features">2.3.1.2.2.6 Features des DGA-Treibers</A></H4> + +<P>Der DGA-Treiber wird durch die Option <CODE>-vo dga</CODE> aktiviert. Sein +Standardverhalten sieht vor, dass er in die Auflösung schaltet, die der +Videoauflösung am nächsten kommt. Der Treiber ignoriert absichtlich +die Optionen <CODE>-vm</CODE> (Videomodusumschaltung aktivieren) und <CODE>- +fs</CODE> (Vollbildmodus erzwingen) - er versucht immer, so viel des Bildes +wie möglich durch eine Änderung der Auflösung zu bedecken. +Dadurch wird nicht ein einziger weitere CPU-Takt für die Skalierung des +Bildes verwendet. Wenn du mit dem Modus nicht zufrieden bist, den der Treiber +gewählt hat, dann kannst du ihn zwingen, denjenigen Modus zu +wählen, der am besten zu dem mit den Optionen <CODE>-x</CODE> und +<CODE>-y</CODE> angegebenen Werten passt. Die Option <CODE>-v</CODE> +veranlasst den DGA-Treiber, neben einigen anderen Dingen auch alle von deiner +XF86-Konfiguration unterstützen Videomodi aufzulisten. Wenn DGA2 +verwendet wird, dann kannst du mit der <CODE>-bpp</CODE>-Option die +Verwendung einer bestimmten Farbtiefe erzwingen. Gültige Werte sind 15, +16, 24 und 32. Es hängt dann von deiner Hardware ab, ob der Modus nativ +unterstützt wird, oder ob eine (möglicherweise langsame) +Konvertierung stattfindet.</P> + +<P>Wenn du Glück hast und dir genug unbenutzter Grafikspeicher zur +Verfügung steht, um ein komplettes Bild aufzunehmen, dann wird der DGA- +Treiber Doppelpufferung verwenden, was zu regelmäßigerer +Wiedergabe führt. Der DGA-Treiber wird dir mitteilen, ob Doppelpufferung +angeschaltet ist oder nicht.</P> + +<P>Doppelpufferung bedeutet, dass das nächste Bild deines Videos bereits +an einer anderen Stelle im Grafikspeicher aufgebaut wird, während das +aktuelle Bild angezeigt wird. Wenn das nächste Bild fertig ist, so wird +dem Grafikchip nur noch mitgeteilt, wo er das neue Bild im Speicher finden +kann. Somit holt sich der Chip seine Daten einfach von dort. In der +Zwischenzeit wird der andere, jetzt unbenutze Puffer wieder mit neuen +Videodaten gefüllt.</P> + +<P>Doppelpufferung kann mit der Option <CODE>-double</CODE> aktiviert und mit +<CODE>-nodouble</CODE> deaktiviert werden. Momentan ist die Doppelpufferung +standardmäßig deaktiviert. Wenn der DGA-Treiber verwendet wird, +dann funktioniert das Onscreen-Display (ODS) nur dann, wenn auch die +Doppelpufferung aktiviert ist. Andererseits kann die Doppelpufferung auch +einen großen Einbruch bei der Geschwindigkeit hervorrufen, was sehr von +der DGA-Implementierung der Treiber für deine Hardware abhängt (auf +meinem K6-II+ 525 benötigt Doppelpufferung weitere 20% CPU-Zeit!).</P> + +<H4><A NAME="dga_speed">2.3.1.2.2.7 Punkte bzgl. der Geschwindigkeit</A></H4> + +<P>Generell gesehen sollte der Zugriff auf den DGA-Framebuffer genauso +schnell sein wie der X11-Treiber, wobei man zusätzlich noch ein Vollbild +erhält. Die prozentualen Geschwindigkeitswerte, die <B>MPlayer</B> +ausgibt, müssen mit Vorsicht genossen werden, da sie z.B. beim X11- +Treiber nicht die Zeit beinhalten, die der X-Server tatsächlich zum +Anzeigen des Bildes benötigt. Klemm ein Terminal an deinen seriellen +Port und starte <CODE>top</CODE>, wenn du wissen willst, wie's wirklich mit +der Geschwindigkeit aussieht.</P> + +<P>Allgemein betrachtet hängt die Geschwindigkeitsverbesserung von DGA +gegenüber dem "normalen" X11-Treiber sehr von deiner Grafikkarte und +davon ab, wie gut das X-Servermodul optimiert ist.</P> + +<P>Wenn du ein langsames System hast, dann benutz besser eine Farbtiefe von +15 oder 16bit, da sie nur die halbe Bandbreite des 32bit-Farbmodus +benötigen.</P> + +<P>Einge gute Idee ist auch die Verwendung von 24bit Farbtiefe selbst dann, +wenn deine Grafikkarte nativ nur 32bit unterstützt, da bei 24bit 25% +weniger Daten über den Bus transferiert werden müssen.</P> + +<P>Ich habe schon gesehen, wie einige AVI-Dateien auf einem Pentium MMX 266 +wiedergegeben werden konnten. AMD K6-2-CPUs werden ab ca. 400 MHz oder +höher funktionieren.</P> + +<H4><A NAME="dga_bugs">2.3.1.2.2.8 Bekannte Fehler</A></H4> + +<P>Die Entwickler von XFree sagen selber, dass DGA ein ganz schönes +Monstrum ist. Sie raten eher davon ab, es zu benutzen, da seine Implementation +bei bestimmten Treibern nicht immer ganz fehlerfrei war.</P> <UL> - <LI>mit XFree 4.0.3 und nv.o gibt es einen Bug, zu erkennen in eigenartigen Farben</LI> - <LI>ATI-Treiber erfordern mehrmaliges zurückschalten nach dem Abspielen mit DGA</LI> - <LI>einige Treiber schlagen Fehl bei dem Versuch zurück zur normalen Auflösung - zu schalten (verwende STRG-ALT-Keypad +, - um manuell zu schalten)</LI> - <LI>einige Treiber weisen kleine Farbfehler auf</LI> - <LI>einige Treiber lügen, im Bezug auf die Speichergröße für die Anwendung, dieses - DGA wird kein Doublebuffering verwenden (SIS?)</LI> - <LI>einige Treiber scheinen einen Fehler zu berichten, sie zeigen nur eine gültige - Auflösung an. In diesem Fall wird der DGA-Treiber abstützen, wenn er von einer - unsinnigen Auflösungung von 100000x100000 oder ähnlich berichtet...</LI> - <LI>OSD funktioniert nur mit eingeschaltetem Doublebuffering</LI> + <LI>Bei der Kombination aus XFree 4.0.3 und dem nv.o-Treiber gibt es + einen Fehler, der zu merkwürdigen Farben führt.</LI> + <LI>Die ATI-Treiber müssen den Videomodus mehrmals zurückstellen, + nachdem der DGA-Modus verlassen wurde.</LI> + <LI>Einige Treiber schaffen es manchmal einfach nicht, in die vorherige + Auflösung zurückzuschalten. Benutze in solch einem Fall + Ctrl-Alt-Keypad + und -, um manuell die Auflösung zu ändern. + </LI> + <LI>Einige Treiber zeigen einfach nur merkwürdige Farben an.</LI> + <LI>Einige Treiber lügen, was die von ihnen in den Prozessorspeicher + eingeblendete Menge Grafikspeicher anbelangt, weswegen vo_dga + nicht die Doppelpufferung verwendet (SIS?).</LI> + <LI>Einige Treiber schaffen es nicht einmal, auch nur einen einzigen + gültigen Grafikmodus bereitzustellen. In solchen Fällen + gibt der DGA-Treiber schwachsinnige Modi wie z.B. 100000x100000 oder + so ähnlich aus...</LI> + <LI>Das OSD funktioniert nur, wenn auch die Doppelpufferung aktiviert ist. + </LI> </UL> -<H5><A NAME="dga_future">2.3.1.3.9. Zukünftige Arbeiten</A></H5> +<H4><A NAME="dga_future">2.3.1.2.2.9 Ausblick</A></H4> <UL> - <LI>Verwendung des neuen X11 Rendering-Interfaces für OSD</LI> - <LI>Wo ist meine TODO Liste ???? :-(((</LI> + <LI>Benutze das neue X11-Renderinterface für das OSD</LI> + <LI>Wo ist |