Die hier vorgestellten "Frame Rate Control" Patches sind für den aktuellen xorg xf-86-video-ati Treiber sowie dem radeon DRM-Kernel-Modul gedacht die bekanntlich Grafikkarten mit AMD/ATI Radeon Chipsätzen (u.a. R300/R400/R500) unterstützen.
Die Patches erweitern den Treiber um folgende Funktionen:
1. Interlaced video Ausgabe über Xv mit korrekter field order. Damit kann ein interlacing im Video-Player entfallen was insbesondere bei HDTV die notwendige Rechenleistung verringert.
2. Vermeidung eines Drift zwischen Grapikkarten-Takt und Video-Ausgabe-Takt des Players durch "on the fly" Modifikation des video timing der Graphikkarte.
Unterstützt werden beliebige video modes insbesondere aber die für TV interessanten
Modes 720x576@50i, 1440x576@50i, 1280x720@50p sowie 1920x1080@50i.
Mehr Grundlagen zu dem Thema findet man in diesen beiden Threads:
[patch] framesynchrone Ausgabe mit der Xv-Extension am VGA/DVI Anschluss
[patch] RGB/PAL ueber VGA mit variabler Framerate
Aus diesen Threads stammen auch die wesentlichen Ideen und ich möchte hier insbesondere auch noch einmal sparkie für seine tolle Grundlagenarbeit sowie Unterstützung bei der Entwicklung dieser Patches danken.
Getestet wurde bisher von mir mit einer X1550 (RV515) sowie von sparkie mit einer ATI 9100 IGP.
Die Karten unterscheiden sich bezüglich der Xv-Ausgabe ziemlich fundamental. Die X1550 hat zur Videoausgabe AVIVO-Hardware die im aktuellen Treiber nur per textured video Ausgabe funktioniert. Die IGP hat eine ältere Videoausgabe-Architektur die wir einfach mal pre-AVIVO benannt haben. Hier erfolgt die Ausgabe über overlay video.
Ob das "on the fly" modifizieren des Videotiming ohne Bildstörungen funktioniert hängt sehr von der eingesetzen Graphikkarte, der Verbindung zum sowie dem verwendeten TV/Monitor ab. Aus diesem Grund fügt der Patch dem Treiber einige neue Optionen hinzu mit dem der Regelalgorithmus vielfältig konfiguriert werden kann.
Wer den Patch testen möchte sollte in einem ersten Schritt erstmal nur die Funktion 1 "korrekte field order" in Betrieb nehmen und sehen das er ein brauchbares Bild bekommt. Überigens ist alleine diese Funktion schon sehr wertvoll.
Um das erstellen des modifizierten Treiber so einfach wie möglich zu halten habe ich die Patches samt dem passenden Sourcecode von Treiber und DRM Modul als debian source packages hinterlegt.
Die Patches setzen eine aktuelle Distribution voraus. Ich habe mit Ubuntu V8.10 getestet. Eine kleine Bauanleitung ist in der README-Datei enthalten die natürlich auch eine Beschreibung aller Konfigurations-Optionen enthält.
Noch eine WARNUNG: Es besteht die Gefahr dass die Patches inkorrekte video timings erzeugen die euren TV oder LCD potentiell beschädigen können! Wenn Ihr die Patches ausprobiert macht Ihr das auf eigene Gefahr! Anzumerken wäre hierbei das bei unseren Tests bisher kein Gerät in mitleidenschaft gezogen wurde.
Demnächst folgt noch ein Patch für das xineliboutput-Plugin das dann "on the fly"
die video modes umschaltet wenn man zwischen SDTV und HDTV Kanälen zappt.
Siehe hier: SDTV/HDTV video mode switching für das vdr-xinliboutput-plugin
DOWNLOAD: http://www.halstenbach.de/public/frc/rad…20090421.tar.gz
Viel Spass beim ausprobieren!
EDIT:
02.10.2008: xorg.conf für radeon als Anhang aufgenommen
28.10.2008: Korrigierte und überarbeitete xorg.conf für xserver V1.5.2. Danke an shh für den Hinweis.
06.01.2009: Anpassung an aktuellen xorg radeon treiber 6.9.0.91 und drm 2.4.3. Download jetzt als vollständige debian source packages.
15.01.2009: Überarbeitete xorg.conf wieder als Anhang aufgenommen
16.02.2009:Neue download version 0.9.1 mit wichtigen Anmerkungen zum xineliboutput plugin im README. xorg.conf aus Anhang in download archive übernommen. Anhang entfernt
23.02.2009:Neue download version 0.10 jetzt basierend auf xserver-xorg-video-ati v6.11.0 und drm 2.4.4. Weiterhin wurde ein Fehler in der Regelung des Mode 4 beseitigt
24.02.2009:Neue download version 0.11 behebt config bug von version 0.10
19.04.2009:Neue download version 20090419 jetzt basierend auf radeon 6.12.2 und drm 2.4.9
21.04.2009: Neue download version 20090421 jetzt mit weiteren Patches für xine-lib und xineliboutput plugin