Es gibt drei Zeitgebermethoden in MPlayer.
usleep()
, um
A/V-Synchronisation abzustimmen, mit +/- 10ms Genauigkeit. Trotzdem, manchmal
muss die Synchronisation noch feiner abgestimmt werden.
Der neue Zeitgeber-Code benutzt RTC (RealTime Clock, Echtzeituhr)
für diese Aufgabe, da dieser präzise 1ms-Timer besitzt. Falls er verfügbar ist, wird
er automagisch aktiviert, benötigt jedoch root-Rechte, eine setuid root
MPlayer-Binärdatei oder einen korrekt aufgesetzten Kernel.
Wenn du Kernel 2.4.19pre8 oder neuer laufen hast, kannst du die maximale RTC-Frequenz
für normale Benutzer durch das /proc
-Dateisystem
festlegen. Benutze folgenden Befehl, um RTC für normale Benutzer zu aktivieren
echo 1024 > /proc/sys/dev/rtc/max-user-freq
Wenn du keinen so neuen Kernel hast, kannst du auch eine Zeile in drivers/char/rtc.c ändern und deinen Kernel neu compilieren. Finde den Abschnitt, der folgendermaßen lautet:
* We don't really want Joe User enabling more * than 64Hz of interrupts on a multi-user machine. */ if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))
und ändere die 64 auf 1024. Du solltest jedoch wirklich wissen, was du tust. Du kannst die Effizienz des neuen Zeitgebers in der Statuszeile sehen. Die Power Management-Funktionen der BIOSse mancher Notebooks mit speedstep-CPUs vertragen sich nicht gut mit RTC. Audio und Video könnten Synchronisation verlieren. Die externe Stromversorgung anzuschließen, bevor du dein Notebook einschaltest, scheint zu helfen. Du kannst RTC-Unterstützung jederzeit mit der Option -nortc abschalten. Bei manchen Hardwarekombinationen (bestätigt während des Gebrauchs eines nicht-DMA-DVD-Laufwerks auf einem ALi1541-Board) führt der Gebrauch des RTC-Zeitgebers zu sprunghafter Wiedergabe. Es wird empfohlen, in solchen Fällen die dritte Methode zu verwenden.
Installiere NIEMALS eine setuid root MPlayer-Binärdatei auf einem Multiuser-System! Es ist eine Einladung für jeden, root zu werden.