Il y a trois méthodes de synchro dans MPlayer.
usleep()
pour régler la
synchro A/V, avec une précision de +/- 10ms. Cependant parfois la synchro doit être
réglé encore plus finement.
Le nouveau code de synchro utilise la RTC (Real Time Clock) du PC pour cette tâche, car elle à des timers précis à 1ms près. Il est automatiquement activé si disponible, mais requiert des droits root, un binaire MPlayer setuid root ou un noyau configuré dans ce but. Si vous utilisez un noyau 2.4.19pre8 ou plus récent, vous pouvez ajouter la fréquence maxi de la RTC pour les utilisateurs normaux au travers du système de fichier /proc. Utilisez cette commande pour activer la RTC pour les utilisateurs normaux:
echo 1024 > /proc/sys/dev/rtc/max-user-freq
Si vous n'avez pas un noyau si récent, vous pouvez aussi changer une ligne du fichier drivers/char/rtc.c et recompiler votre noyau. Trouvez la section suivante
* 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)))
et changez le 64 en 1024. Cependant, vous devriez savoir ce que vous faites. Vous pouvez voir l'efficacité du nouveau timer sur la ligne d'état. Les fonctions d'économie d'énergie du BIOS de certains portables qui contrôlent la vitesse des processeurs interfèrent avec la RTC. L'audio et la vidéo peuvent alors se désynchroniser. Brancher l'alimentation sur secteur avant de démarrer le portable semble aider. Vous pouvez toujours désactiver le support RTC avec l'option -nortc. Dans certaines configurations matérielles (confirmées durant l'utilisation d'un lecteur DVD sans DMA sur une carte ALi1541), l'utilisation de la RTC peut causer une image qui saute. Dans ce cas, il est recommandé d'utiliser la troisième méthode.
Ne JAMAIS installer un binaire MPlayer setuid root sur un système multi-utilisateur ! C'est une manière facile pour n'importe qui de devenir root.