1
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>4.3. DGA</title><link rel="stylesheet" href="default.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="MPlayer - Le Lecteur Vidéo"><link rel="up" href="video.html" title="Chapitre 4. Sorties vidéo"><link rel="prev" href="xv.html" title="4.2. Xv"><link rel="next" href="sdl.html" title="4.4. SDL"><link rel="preface" href="howtoread.html" title="Comment lire cette documentation"><link rel="chapter" href="intro.html" title="Chapitre 1. Introduction"><link rel="chapter" href="install.html" title="Chapitre 2. Installation"><link rel="chapter" href="usage.html" title="Chapitre 3. Utilisation"><link rel="chapter" href="video.html" title="Chapitre 4. Sorties vidéo"><link rel="chapter" href="ports.html" title="Chapitre 5. Ports"><link rel="chapter" href="mencoder.html" title="Chapitre 6. Utilisation basique de MEncoder"><link rel="chapter" href="encoding-guide.html" title="Chapitre 7. L'encodage avec MEncoder"><link rel="chapter" href="faq.html" title="Chapitre 8. Foire Aux Questions"><link rel="appendix" href="bugreports.html" title="Annexe A. Comment rapporter les bogues"><link rel="appendix" href="skin.html" title="Annexe B. Format de skins MPlayer"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.3. DGA</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="xv.html">Précédent</a> </td><th width="60%" align="center">Chapitre 4. Sorties vidéo</th><td width="20%" align="right"> <a accesskey="n" href="sdl.html">Suivant</a></td></tr></table><hr></div><div class="sect1" title="4.3. DGA"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="dga"></a>4.3. DGA</h2></div></div></div><p title="PRÉAMBULE"><b>PRÉAMBULE. </b>
2
Ce document tente d'expliquer en quelques mots ce qu'est le DGA en général et
3
ce que peut faire le pilote de sortie DGA pour
4
<span class="application">MPlayer</span>
5
(et ce qu'il ne peut pas faire).
7
</p><p title="QU'EST CE QUE LE DGA"><b>QU'EST CE QUE LE DGA. </b>
8
<acronym class="acronym">DGA</acronym> est l'abréviation de <span class="emphasis"><em>Direct Graphics
9
Access</em></span> et permet aux programmes de passer outre le serveur X et de
10
modifier directement la mémoire dans le framebuffer. Techniquement parlant,
12
fonctionne en mappant la mémoire du framebuffer dans les adresses mémoire de
14
process. Cela est autorisé par le noyau uniquement si vous avez les privilèges
15
super-utilisateur. Vous pouvez les obtenir soit en vous loggant en <code class="systemitem">root</code> ou en plaçant le bit suid sur l'exécutable
16
<span class="application">MPlayer</span> (<span class="bold"><strong>non
17
recommandé</strong></span>).
19
Il existe deux versions de DGA : DGA1 est utilisé par XFree 3.x.x et
20
DGA2 a été introduit par XFree 4.0.1.
22
DGA1 propose uniquement un accès direct au framebuffer comme décrit ci-dessus.
23
Pour changer la résolution de votre signal vidéo vous devez utiliser les
26
DGA2 incorpore les fonctions de XVidMode et permet également de changer le
28
couleurs de l'affichage. Donc vous pouvez, en exécutant depuis un serveur X 32
30
passer en 15 bits et vice-versa.
32
Cependant DGA a quelques défauts. Il semble qu'il reste dépendant de la
33
carte graphique utilisée et de la mise en place du pilote de votre serveur
34
X contrôlant cette carte.
35
Cela peut donc ne pas fonctionner sur tous les systèmes...
36
</p><p title="INSTALLER LE SUPPORT DGA POUR MPLAYER"><b>INSTALLER LE SUPPORT DGA POUR MPLAYER. </b>
37
Assurez vous d'abord que X charge l'extension DGA, regardez dans
38
<tt class="filename">/var/log/XFree86.0.log</tt> :
40
</p><pre class="programlisting">(II) Loading extension XFree86-DGA</pre><p title="INSTALLER LE SUPPORT DGA POUR MPLAYER">
42
XFree86 4.0.x ou plus est <span class="bold"><strong>hautement
43
recommandé</strong></span> !
44
Le pilote DGA de <span class="application">MPlayer</span> est automatiquement
45
détecté par <tt class="filename">./configure</tt>, ou vous pouvez le forcer avec
46
l'option <tt class="option">--enable-dga</tt>.
48
Si le pilote ne peut pas passer en résolution inférieure, essayez les options
49
<tt class="option">-vm</tt> (uniquement avec X 3.3.x), <tt class="option">-fs</tt>,
50
<tt class="option">-bpp</tt>, <tt class="option">-zoom</tt> pour trouver un mode vidéo qui
52
à la vidéo. Il n'existe pas de convertisseur actuellement :(
54
Passez en <code class="systemitem">root</code>.
55
DGA nécessite un accès root pour écrire directement dans la mémoire vidéo.
56
Si vous voulez rester en utilisateur, installez
57
<span class="application">MPlayer</span> SUID root :
59
</p><pre class="screen">
60
chown root <em class="replaceable"><code>/usr/local/bin/mplayer</code></em>
61
chmod 750 <em class="replaceable"><code>/usr/local/bin/mplayer</code></em>
62
chmod +s <em class="replaceable"><code>/usr/local/bin/mplayer</code></em>
65
Maintenant cela fonctionne aussi avec les droits d'un simple utilisateur.
66
</p><div class="caution" title="Faille de sécurité" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Faille de sécurité</h3><p>
67
Cela présente une <span class="bold"><strong>grosse</strong></span> faille de
69
Ne faites <span class="bold"><strong>jamais</strong></span> ceci sur un serveur ou un
70
ordinateur accessible par d'autres personnes que vous, ils pourraient obtenir
71
les privilèges root par l'exécutable <span class="application">MPlayer</span>.
73
Utilisez maintenant l'option <tt class="option">-vo dga</tt> et c'est parti !
74
(Enfin on peut l'espérer :)) Vous pouvez alors essayer l'option
75
<tt class="option">-vo sdl:pilote=dga</tt> !
76
C'est beaucoup plus rapide !
77
</p><p title="CHANGEMENT DE RÉSOLUTION"><a name="dga-modelines"></a><b>CHANGEMENT DE RÉSOLUTION. </b>
78
Le pilote DGA vous permet de changer la résolution du signal de sortie. Cela
80
d'éviter un redimensionnement logiciel, beaucoup plus lent, et offre une image
82
écran. Idéalement il doit passer à la résolution exacte de la vidéo (excepté
84
respecter le rapport hauteur/largeur), mais le serveur X permet uniquement le
86
à des résolutions définies dans <tt class="filename">/etc/X11/XF86Config</tt>
87
(<tt class="filename">/etc/X11/XF86Config-4</tt> pour XFree 4.X.X respectivement).
88
Ceux-ci sont définis par des modelines dépendantes des capacités de votre
90
Le serveur X scanne ce fichier de configuration au démarrage et élimine les
92
ne correspondant pas au matériel. Vous pouvez retrouver dans les logs de X
94
modelines sont acceptables. Elles peuvent être trouvées dans :
95
<tt class="filename">/var/log/XFree86.0.log</tt>.
97
Ces entrées doivent fonctionner correctement avec un chip Riva128, en
99
module pilote nv.o du serveur X.
100
</p><pre class="programlisting">
102
Identifier "Modes[0]"
103
Modeline "800x600" 40 800 840 968 1056 600 601 605 628
104
Modeline "712x600" 35.0 712 740 850 900 400 410 412 425
105
Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
106
Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan
107
Modeline "352x288" 25.10 352 368 416 432 288 296 290 310
108
Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan
109
Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan
111
</pre><p title="DGA & MPLAYER"><b>DGA & MPLAYER. </b>
112
DGA est utilisé en deux endroits par
113
<span class="application">MPlayer</span> : Le pilote SDL peut se compiler pour
114
en faire usage (<tt class="option">-vo sdl:pilote=dga</tt>) et dans le pilote DGA
115
(<tt class="option">-vo dga</tt>). Dans les sections suivantes je vous expliquerai
116
comment fonctionne le pilote DGA pour <span class="application">MPlayer</span>.
117
</p><p title="FONCTIONNALITÉS"><b>FONCTIONNALITÉS. </b>
118
Le pilote DGA s'invoque en spécifiant <tt class="option">-vo dga</tt> en ligne de
120
L'action par défaut consiste à passer dans une résolution s'approchant au
122
résolution de la vidéo. Il ignore volontairement les options
123
<tt class="option">-vm</tt> et
124
<tt class="option">-fs</tt> (autorisant le changement de résolution et le plein
126
essaie toujours de couvrir le plus large espace possible de votre écran en
128
les modes vidéo, tout en utilisant un seul cycle CPU additionnel pour agrandir
130
Si vous voulez utiliser un autre mode que celui qu'il a choisi, vous pouvez le
132
par les options <tt class="option">-x</tt> et <tt class="option">-y</tt>. Avec l'option
133
<tt class="option">-v</tt>,
134
le pilote DGA affichera, entre autres choses, une liste de toutes les
136
supportées par votre fichier <tt class="filename">XF86Config</tt>. Avec DGA2 vous
138
également le forcer a utiliser un certain nombre de couleurs en utilisant
140
<tt class="option">-bpp</tt>. Les nombres de couleurs autorisées sont 15, 16, 24 et
142
dépend de votre matériel, soit ces modes sont nativement supportés, ou si une
143
conversion logicielle doit être appliquée (ce qui peut ralentir la lecture).
145
Si par chance vous avez assez de mémoire vidéo libre pour y placer une image
147
le pilote DGA utilisera le double buffering, qui améliore considérablement la
149
de lecture. Il doit vous afficher si le double buffering est utilisé ou non.
151
Double buffering signifie que la prochaine trame de votre vidéo est dessinée
153
partie non affichée de la mémoire graphique tandis que s'affiche la trame en
155
Quand la trame suivante est prête, la puce graphique reçoit simplement
157
celle-ci et récupère les données a afficher depuis cette partie de la mémoire.
159
ce temps l'autre buffer se remplit avec l'image suivante.
161
Le double buffering peut s'activer avec l'option <tt class="option">-double</tt>
162
et se désactiver avec <tt class="option">-nodouble</tt>.
163
Actuellement l'option par défaut est de désactiver le double buffering.
164
En utilisant le pilote DGA, l'on-screen display (OSD) fonctionne uniquement
165
avec le doublebuffering activé.
166
Cependant, activer le double buffering peut demander des calculs
168
au processeur (sur mon K6-II+ 525 il utilisait 20% de temps CPU en
170
ceci dépendant de l'implémentation du DGA pour votre matériel.
171
</p><p title="PROBLÈMES DE VITESSE"><b>PROBLÈMES DE VITESSE. </b>
172
Généralement, l'accès au framebuffer DGA peut s'avérer aussi rapide que le
174
apportant en plus l'avantage de bénéficier d'une image plein écran. Les
176
affichés par <span class="application">MPlayer</span> doivent être interprétés avec
177
précaution, comme par exemple avec le pilote X11 où ils n'incluent pas le
179
par le serveur X pour l'affichage. Pour des résultats exacts, branchez un
181
le port série de votre machine et lancez un <span class="command"><strong>top</strong></span> pour savoir
183
se passe réellement lors de la lecture...
185
D'une manière générale, l'accélération acquise en utilisant le DGA au lieu de
186
l'affichage X11 classique dépend fortement de votre carte graphique et des
187
optimisations effectuées sur le module DGA du serveur X.
189
Si votre système s'avère trop lent, utilisez plutôt une profondeur de couleurs
191
16bits, qui ne demandent que la moitié de la bande passante d'un affichage 32
194
Utiliser une profondeur de 24 bits peut s'avérer une bonne solution si votre
196
supporte nativement que le 32 bits, le transfert se réduisant de 25% par
200
J'ai vu certains fichiers AVI passer sur des Pentium MMX 266. Les processeurs
202
s'avèrent utilisables à partir de 400 MHz.
203
</p><p title="BOGUES CONNUS"><b>BOGUES CONNUS. </b>
204
A vrai dire, selon certains développeurs de XFree, DGA est une usine à gaz.
206
recommandent d'éviter son utilisation. Son implémentation n'est pas parfaite
208
chaque chipset pour XFree.
209
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
210
Avec XFree 4.0.3 et <tt class="filename">nv.o</tt> un bogue affiche des couleurs
212
</p></li><li class="listitem"><p>
213
Les pilotes ATI requièrent de changer plusieurs fois de mode après
216
</p></li><li class="listitem"><p>
217
Certains pilotes échouent à revenir à la résolution normale (utilisez
218
<span class="keycap"><b>Ctrl</b></span>+<span class="keycap"><b>Alt</b></span>+<span class="keycap"><b>Keypad +</b></span>
219
et <span class="keycap"><b>Ctrl</b></span>+<span class="keycap"><b>Alt</b></span>+<span class="keycap"><b>Keypad -</b></span> pour y retourner manuellement).
220
</p></li><li class="listitem"><p>
221
Certains pilotes affichent simplement des couleurs étranges.
222
</p></li><li class="listitem"><p>
223
Certains pilotes mentent a propos de la quantité de mémoire allouée dans
225
d'adressage du processus, empêchant vo_dga d'utiliser le doublebuffering
227
</p></li><li class="listitem"><p>
228
Certains pilotes semblent ne pas pouvoir reporter ne serait-ce qu'un seul
230
Dans ce cas le pilote DGA plantera en vous affichant un mode 100000x100000
232
quelque chose comme ça.
233
</p></li><li class="listitem"><p>
234
L'OSD fonctionne uniquement avec le doublebuffering activé (sinon il
236
</p></li></ul></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="xv.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="video.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="sdl.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">4.2. Xv </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> 4.4. SDL</td></tr></table></div></body></html>