V MPlayer jsou zabudovány tři metody časování.
usleep()
pro hlídání
A/V synchronizace s přesností +/- 10ms. Ačkoli někdy může být synchronizace
hlídána ještě jemněji.
Kód nového časovače používá pro tento účel RTC
(hodiny reálného času), protože mají přesné 1ms časovače. Pokud jsou RTC
dostupné, jsou automaticky použity, ale to vyžaduje oprávnění roota,
setuid root
binárku MPlayeru nebo správně nastavené jádro.
Pokud používáte jádro 2.4.19pre8 nebo pozdější, můžete nastavit maximální RTC
kmitočet pro normální uživatele pomocí systému souborů
/proc
. Použijte následný příkaz pro zapnutí RTC pro obyčejné uživatele:
echo 1024 > /proc/sys/dev/rtc/max-user-freq
Pokud nemáte tak nové jádro, můžete změnit jeden řádek v drivers/char/rtc.c a rekompilovat jádro. Najděte sekci, která začíná
* 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)))
a změňte 64 na 1024. Opravdu byste ovšem měli vědět co děláte. Efektivitu nového časovače uvidíte na stavovém řádku. Funkce power managementu některých notebookových BIOSů s speedstep procesory špatně komunikují s RTC. Audio a video se mohou rozejít. Zdá se že pomáhá připojení vnějšího napájení před zapnutím notebooku. Vždy můžete vypnout podporu RTC volbou -nortc. V některých hardwarových kombinacích (zjištěno během používání ne-DMA DVD mechaniky na ALi1541 boardu) způsobuje použití RTC časování trhavé přehrávání. Pak doporučujeme použít třetí metodu.
NIKDY neinstalujte setuid root binárku MPlayeru na víceuživatelském systému! To je nejlepší cesta jak umožnit každému být rootem.