<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Vidéo - MPlayer - Le lecteur vidéo pour Linux</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="default.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
<H3><A NAME="video">2.3.1 Sorties vidéo</A></H3>
<H4><A NAME="mtrr">2.3.1.1 Réglage MTRR</A></H4>
<P>Il est FORTEMENT recommandé de bien ajuster ses registres MTRR,
qui apportent un gain important de performances.</P>
<P>Faites un '<CODE>cat /proc/mtrr</CODE>':</P>
<P><CODE>
--($:~)-- cat /proc/mtrr<BR>
reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR>
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1</CODE></P>
<P>C'est bon, il montre ma Matrox G400 avec 16Mo de mémoire. J'ai fais cela avec
XFree 4.x.x , qui ajuste les registres MTRR automatiquement.</P>
<P>Si rien n'a fonctionné, vous devrez procéder manuellement. D'abord, vous
devez trouver l'adresse de base. Vous pouvez la trouver de trois façons :</P>
<UL>
<LI>à partir des messages au démarrage de X11, par exemple:
<P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR>
(--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI>
<LI>à partir de /proc/pci (utilisez la commande lspci -v):
<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>à partir des messages noyau du driver mga_vid (utilisez <CODE>dmesg</CODE>):
<P><CODE>mga_mem_base = d8000000</CODE></P></LI>
</UL>
<P>Trouvons maintenant la taille mémoire. Simplement, convertissez la taille de
la mémoire vidéo en hexadécimal, ou utilisez cette table :</P>
<TABLE BORDER=0>
<TR><TD> </TD><TD>1 Mo</TD><TD WIDTH="10%"></TD><TD>0x100000</TD></TR>
<TR><TD></TD><TD>2 Mo</TD><TD></TD><TD>0x200000</TD></TR>
<TR><TD></TD><TD>4 Mo</TD><TD></TD><TD>0x400000</TD></TR>
<TR><TD></TD><TD>8 Mo</TD><TD></TD><TD>0x800000</TD></TR>
<TR><TD></TD><TD>16 Mo</TD><TD></TD><TD>0x1000000</TD></TR>
<TR><TD></TD><TD>32 Mo</TD><TD></TD><TD>0x2000000</TD></TR>
</TABLE>
<P>Vous connaissez l'adresse de base ainsi que la taille, ajustons vos registres
MTRR ! Par exemple, pour la carte Matrox utilisée ci-dessus (base=0xd8000000)
avec 32MB ram (size=0x2000000) faites simplement :</P>
<P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P>
<P>Tous les processeurs ne supportent pas les MTRR. Les anciens K6-2 par exemple [vers 266Mhz, stepping 0]
ne sont pas compatibles avec les MTRR, mais les stepping 12 le sont ('<CODE>cat
/proc/cpuinfo</CODE>' pour le vérifier').</P>
<H4><A NAME="normal">2.3.1.2 Sortie vidéo pour cartes graphiques traditionnelles</A></H4>
<H4><A NAME="xv">2.3.1.2.1 Xv</A></H4>
<P>Sous XFree86 4.0.2 ou plus récent, vous pouvez utiliser les routines YUV
matérielles de votre carte en utilisant l'extension XVideo. Ceci peut être fait
avec l'option option '-vo xv'. De plus, il supporte le réglage de
luminosité/contraste/saturation/etc (à moins que vous n'utilisiez le vieux, lent
codec Divx DirectShow, qui le supporte partout), voir la page de man.</P>
<P>Pour que cela fonctionne, vérifiez ceci :</P>
<UL>
<LI>Vous utilisez XFree86 4.0.2 ou plus récent (les versions précédentes n'ont
pas XVideo)</LI>
<LI>Votre carte supporte l'accélération matérielle (les cartes modernes le font)</LI>
<LI>X charge l'extension XVideo, qui doit faire apparaître quelque chose comme :
<P><CODE> (II) Loading extension XVideo</CODE></P>
<P>dans /var/log/XFree86.0.log</P>
<P>NOTE: ceci charge seulement l'extension de XFree86. Dans une installation correcte,
celle ci est toujours chargée, et ne signifie pas que le support XVideo spécifique à
<B>votre carte</B> est chargé !</P>
</LI>
<LI>Votre carte a le support Xv sous Linux. Pour le vérifier, essayez 'xvinfo', inclut dans
XFree86. Cela doit afficher un long message, similaire à :
<PRE>
X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
(...)
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
(...etc...)
</PRE>
<P>Cela doit supporter les formats de pixels YUY2 packed et YV12 planar
pour pouvoir être utilisé avec MPlayer.</P>
</LI>
<LI>Finalement, vérifiez si MPlayer a été compilé avec le support 'xv'.
./configure doit vous le préciser. </LI>
</UL>
<H4><A NAME="xv_3dfx">2.3.1.2.1.1 Cartes 3dfx</A></H4>
<P>Les anciens drivers 3dfx avaient des problèmes avec l'accélération XVideo,
et ne supportaient ni YUY2 ni YV12. Vérifiez que vous avez bien XFree86
version 4.2.0 ou plus, qui doit fonctionner correctement. Les versions précédentes,
incluant 4.1.0, <B>se plantent avec YV12</B>. Si des problèmes apparaissent en
utilisant -vo xv,essayez SDL (qui utilise également XVideo) et voyez si cela passe
mieux. Lisez la section <A HREF="#sdl">SDL</A> pour plus de détails.</P>
<P><B>OU</B>, essayez le NOUVEAU pilote -vo tdfxfb! Voir la section
<A HREF="#tdfxfb">tdfxfb</A>.</P>
<H4><A NAME="xv_s3">2.3.1.2.1.2 Cartes S3</A></H4>
<P>Les cartes S3 Savage3D doivent fonctionner correctement, mais pour les Savage4,
utilisez XFree86 version 4.0.3 ou plus (en cas de problèmes d'image, essayez 16bpp).
Comme pour les S3 Virge.. il y a un support xv, mais la carte elle-même est très lente,
donc vous feriez mieux de la vendre.</P>
<P><B>NOTE</B>: il n'est actuellement pas facile de savoir quels modèles de Savage
manquent de support YV12, et de le convertir par un pilote (lent). Si vous
suspectez votre carte, prenez un driver plus récent, ou demandez poliment
un pilote qui gère MMX/3DNow sur la liste de diffusion mplayer-users.</P>
<H4><A NAME="xv_nvidia">2.3.1.2.1.3 Cartes nVidia</A></H4>
<P>nVidia n'est pas un très bon chois sous Linux (d'après nVidia, ce n'est
<A HREF="users_against_developers.html#nvidia">pas vrai</A>).. Vous devrez
utiliser le pilote binaire de nVidia, disponible sur leur site. Le pilote
standard de X ne supporte pas XVideo pour ces cartes, par la faute des
sources/spécifications fermées de nVidia.</P>
<P>D'après ce que je sais les derniers pilotes XFree86 contiennent le support XVideo
pour les GeForce 2 et 3.</P>
<P>Les cartes Riva128 n'ont pas de support XVideo même avec le driver nVidia :(
Plaignez-vous en à nVidia.</P>
<H4><A NAME="xv_ati">2.3.1.2.1.4 Cartes ATI</A></H4>
<UL>
<LI>Le <A HREF="http://gatos.sourceforge.net">pilote GATOS</A> (que vous
|