Mercurial > mplayer.hg
comparison DOCS/video.html @ 1682:dba45a1aafad
*** empty log message ***
author | gabucino |
---|---|
date | Fri, 24 Aug 2001 18:48:13 +0000 |
parents | a5cb1b1d47a8 |
children | f314e83b78e6 |
comparison
equal
deleted
inserted
replaced
1681:445ea1ce4180 | 1682:dba45a1aafad |
---|---|
1 <HTML> | 1 <HTML> |
2 | |
3 <BODY> | 2 <BODY> |
4 | 3 |
4 <P><B><A NAME=2.2.1>2.2.1. Video output devices</A></B></P> | |
5 | |
6 <TABLE BORDER=0> | |
7 | |
8 <TD COLSPAN=4><P><B>General:</B></P></TD><TR> | |
9 | |
10 <TD> </TD><TD VALIGN=top>x11</TD><TD> </TD><TD>X11 with optional SHM extension</TD><TR> | |
11 <TD></TD><TD VALIGN=top>xv</TD><TD></TD><TD>X11 using overlays with the Xvideo extension (hardware YUV & scaling)</TD><TR> | |
12 <TD></TD><TD VALIGN=top>gl</TD><TD></TD><TD>OpenGL renderer, so far works only with: | |
13 <UL><LI>all cards with Utah-GLX | |
14 <LI>Matrox cards with X/DRI >=4.0.3 | |
15 <LI>Radeon with X/DRI CVS</UL></TD><TR> | |
16 <TD></TD><TD VALIGN=top>dga</TD><TD></TD><TD>X11 DGA extension</TD><TR> | |
17 <TD></TD><TD VALIGN=top>fbdev</TD><TD></TD><TD>Output to general framebuffers</TD><TR> | |
18 <TD></TD><TD VALIGN=top>svga</TD><TD></TD><TD>Output to SVGAlib</TD><TR> | |
19 <TD></TD><TD VALIGN=top>sdl</TD><TD></TD><TD> | |
20 <CODE>1.1.7:</CODE> supports software scaling<BR> | |
21 <CODE>1.1.8:</CODE> supports Xvideo (hardware scaling/fullscreen)<BR> | |
22 <CODE>1.2.0:</CODE> supports AAlib (-vo aa is very recommended, see below!)</TD><TR> | |
23 <TD></TD><TD VALIGN=top>ggi</TD><TD></TD><TD>similar to SDL</TD><TR> | |
24 <TD></TD><TD VALIGN=top>aa</TD><TD></TD><TD>textmode rendering with AAlib</TD><TR> | |
25 | |
26 <TD COLSPAN=4><P><B>Card specific:</B></P></TD><TR> | |
27 | |
28 <TD> </TD><TD VALIGN=top>mga</TD><TD> </TD><TD>Matrox G200/G400 hardware YUV overlay via the mga_vid device</TD><TR> | |
29 <TD></TD><TD VALIGN=top>xmga</TD><TD></TD><TD>Matrox G200/G400 overlay (mga_vid) in X11 window<BR> | |
30 (<I>Xv emulation on X 3.3.x!</I>)</TD><TR> | |
31 <TD></TD><TD VALIGN=top>syncfb</TD><TD></TD><TD>Matrox G400 YUV support on framebuffer (obsoleted, use mga/xmga)</TD><TR> | |
32 <TD></TD><TD VALIGN=top>3dfx</TD><TD></TD><TD>Voodoo2/3 hardware YUV (/dev/3dfx) support (not yet tested, maybe | |
33 broken)</TD><TR> | |
34 | |
35 <TD COLSPAN=4><P><B>Special:</B></P></TD><TR> | |
36 | |
37 <TD> </TD><TD VALIGN=top>png</TD><TD> </TD><TD>PNG files output (use -z switch to set compression)</TD><TR> | |
38 <TD></TD><TD VALIGN=top>pgm</TD><TD></TD><TD>PGM files output (for testing purposes or ffmpeg encoding)</TD><TR> | |
39 <TD></TD><TD VALIGN=top>md5</TD><TD></TD><TD>MD5sum output (for MPEG conformance tests)</TD><TR> | |
40 <TD></TD><TD VALIGN=top>odivx</TD><TD></TD><TD>OpenDivX AVI File writer (use -br to set encoding bitrate)</TD><TR> | |
41 <TD></TD><TD VALIGN=top>null</TD><TD></TD><TD>Null output (for speed tests/benchmarking)</TD><TR> | |
42 </TABLE> | |
43 | |
44 <P>NOTE: <I>check the following subsections for details and requirements!</I></P> | |
45 | |
46 | |
47 <P><B><A NAME=2.2.1.1>2.2.1.1. MTRR</A></B></P> | |
48 | |
49 <P>It is VERY recommended to set MTRR registers up properly, because they can | |
50 give a big performance boost. First you have to find the base address. | |
51 You have 3 ways to find it:</P> | |
52 | |
53 <P><UL> | |
54 <LI>from X11 startup messages, for example: | |
55 <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR> | |
56 (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P> | |
57 <LI>from /proc/pci (use lspci -v command): | |
58 <P><TABLE> | |
59 <TD VALIGN=top><CODE>01:00.0</CODE></TD><TD><CODE>VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE></TD><TR> | |
60 <TD></TD><TD><CODE>Memory at d8000000 (32-bit, prefetchable)</CODE></TD><TR> | |
61 </TABLE></P></CODE> | |
62 <LI>from mga_vid kernel driver messages (use dmesg): | |
63 <P><CODE>mga_mem_base = d8000000</CODE></P> | |
64 </UL></P> | |
65 | |
66 <P>Then let's find the memory size. This is very easy, just convert video ram | |
67 size to hexadecimal, or use this table:</P> | |
68 | |
69 <TABLE BORDER=0> | |
70 <TD> </TD><TD>1 MB</TD><TD WIDTH=10%></TD><TD>0x100000</TD><TR> | |
71 <TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD><TR> | |
72 <TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD><TR> | |
73 <TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD><TR> | |
74 <TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD><TR> | |
75 <TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD><TR> | |
76 </TABLE> | |
77 | |
78 | |
79 <P>You know base address and memory size, let's setup mtrr registers! | |
80 For example, for the Matrox card above (base=0xd8000000) with 32MB | |
81 ram (size=0x2000000) just execute:</P> | |
82 | |
83 | |
84 <P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> | |
85 | |
86 | |
87 <P>Not all CPUs support MTRRs. For example older K6-2's [around 266Mhz, | |
88 stepping 0] doesn't support MTRR, but stepping 12's do ('<CODE>cat /proc/cpuinfo</CODE>' | |
89 to check it).</P> | |
90 | |
91 <P><B><A NAME=2.2.1.2>2.2.1.2. Xv</A></B></P> | |
92 | |
93 <P>Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines | |
94 using the XVideo extension. This is what the option '-vo xv' uses. | |
95 In order to make this work, be sure to check the following:</P> | |
96 <P><UL> | |
97 <LI>You have to use XFree86 4.0.2 or newer (former versions don't have XVideo) | |
98 <LI>Your card actually supports harware acceleration (modern cards do) | |
99 <LI>X loads the XVideo extension, it's something like this: | |
100 | |
101 <P><CODE> (II) Loading extension XVideo</CODE></P> | |
102 <P>in /var/log/XFree86.0.log</P> | |
103 | |
104 <P>NOTE: this loads only the XFree86's extension. In a good install, this is | |
105 always loaded, and doesn't mean that the _card's_ XVideo support is loaded!</P> | |
106 | |
107 <LI>Your card has Xv support under Linux. To check, try 'xvinfo', it is the | |
108 part of the XFree86 distribution. It should display a long text, similar | |
109 to this: | |
5 <PRE> | 110 <PRE> |
6 | |
7 <A NAME=2.2.1>2.2.1. Video output devices</A> | |
8 | |
9 General: | |
10 - x11: X11 with optional SHM extension | |
11 - xv: X11 using overlays with the Xvideo extension (hardware YUV & scaling) | |
12 - gl: OpenGL renderer, so far works only with : | |
13 - all cards with Utah-GLX | |
14 - Matrox cards with X/DRI >=4.0.3 | |
15 - Radeon with X/DRI CVS | |
16 - dga: X11 DGA extension | |
17 - fbdev:Output to general framebuffers | |
18 - svga: Output to SVGAlib | |
19 - sdl: 1.1.7 : supports software scaling | |
20 1.1.8 : supports Xvideo (hardware scaling/fullscreen) | |
21 1.2.0 : supports AAlib (-vo aa is very recommended, see below!) | |
22 - ggi: similar to SDL | |
23 - aa: textmode rendering with AAlib | |
24 | |
25 Card specific: | |
26 - mga: Matrox G200/G400 hardware YUV overlay via the mga_vid device | |
27 - xmga: Matrox G200/G400 overlay (mga_vid) in X11 window | |
28 (Xv emulation on X 3.3.x !) | |
29 - syncfb: Matrox G400 YUV support on framebuffer (obsoleted, use mga/xmga) | |
30 - 3dfx: Voodoo2/3 hardware YUV (/dev/3dfx) support (not yet tested, maybe | |
31 broken) | |
32 | |
33 Special: | |
34 - png: PNG files output (use -z switch to set compression) | |
35 - pgm: PGM files output (for testing purposes or ffmpeg encoding) | |
36 - md5: MD5sum output (for MPEG conformance tests) | |
37 - odivx:OpenDivX AVI File writer (use -br to set encoding bitrate) | |
38 - null: Null output (for speed tests/benchmarking) | |
39 | |
40 NOTE: check the following subsections for details and requirements! | |
41 | |
42 | |
43 <A NAME=2.2.1.1>2.2.1.1. MTRR</A> | |
44 | |
45 It is VERY recommended to set MTRR registers up properly, because they can | |
46 give a big performance boost. First you have to find the base address. | |
47 You have 3 ways to find it: | |
48 | |
49 - from X11 startup messages, for example: | |
50 | |
51 (--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 | |
52 (--) SVGA: Linear framebuffer at 0xD8000000 | |
53 | |
54 - from /proc/pci (use lspci -v command): | |
55 | |
56 01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 | |
57 Memory at d8000000 (32-bit, prefetchable) | |
58 | |
59 - from mga_vid kernel driver messages (use dmesg): | |
60 | |
61 mga_mem_base = d8000000 | |
62 | |
63 Then let's find the memory size. This is very easy, just convert video ram | |
64 size to hexadecimal, or use this table: | |
65 | |
66 | |
67 1 MB 0x100000 | |
68 2 MB 0x200000 | |
69 4 MB 0x400000 | |
70 8 MB 0x800000 | |
71 16 MB 0x1000000 | |
72 32 MB 0x2000000 | |
73 | |
74 | |
75 You know base address and memory size, let's setup mtrr registers! | |
76 For example, for the Matrox card above (base=0xd8000000) with 32MB | |
77 ram (size=0x2000000) just execute: | |
78 | |
79 | |
80 echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr | |
81 | |
82 | |
83 Not all CPUs support MTRRs. For example older K6-2's [around 266Mhz, | |
84 stepping 0] doesn't support MTRR, but stepping 12's do ('cat /proc/cpuinfo' | |
85 to check it). | |
86 | |
87 | |
88 <A NAME=2.2.1.2>2.2.1.2. Xv</A> | |
89 | |
90 Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines | |
91 using the XVideo extension. This is what the option '-vo xv' uses. | |
92 In order to make this work, be sure to check the following: | |
93 - You have to use XFree86 4.0.2 or newer (former versions don't have XVideo) | |
94 - Your card actually supports harware acceleration (modern cards do) | |
95 - X loads the XVideo extension, it's something like this: | |
96 | |
97 | |
98 (II) Loading extension XVideo | |
99 | |
100 | |
101 in /var/log/XFree86.0.log | |
102 | |
103 | |
104 NOTE : this loads only the XFree86's extension. In a good install, this is | |
105 always loaded, and doesn't mean that the _card's_ XVideo support is | |
106 loaded! | |
107 | |
108 - Your card has Xv support under Linux. To check, try 'xvinfo', it is the | |
109 part of the XFree86 distribution. It should display a long text, similar | |
110 to this: | |
111 | |
112 | |
113 X-Video Extension version 2.2 | 111 X-Video Extension version 2.2 |
114 screen #0 | 112 screen #0 |
115 Adaptor #0: "Savage Streams Engine" | 113 Adaptor #0: "Savage Streams Engine" |
116 number of ports: 1 | 114 number of ports: 1 |
117 port base: 43 | 115 port base: 43 |
131 guid: 59563132-0000-0010-8000-00aa00389b71 | 129 guid: 59563132-0000-0010-8000-00aa00389b71 |
132 bits per pixel: 12 | 130 bits per pixel: 12 |
133 number of planes: 3 | 131 number of planes: 3 |
134 type: YUV (planar) | 132 type: YUV (planar) |
135 (...etc...) | 133 (...etc...) |
136 | 134 </PRE> |
137 | 135 |
138 It must support YUY2 packed, and YV12 planar pixel formats to be | 136 <P>It must support YUY2 packed, and YV12 planar pixel formats to be |
139 usable with <B>MPlayer</B>. | 137 usable with <B>MPlayer</B>.</P> |
140 | 138 |
141 - And finally, check if <B>MPlayer</B> was compiled with 'xv' support. | 139 <LI>And finally, check if <B>MPlayer</B> was compiled with 'xv' support. |
142 ./configure prints this. | 140 ./configure prints this. |
143 | 141 |
144 | 142 </UL></P> |
145 <A NAME=2.2.1.2.1>2.2.1.2.1. 3dfx cards</A> | 143 |
146 | 144 <P><B><A NAME=2.2.1.2.1>2.2.1.2.1. 3dfx cards</A></B></P> |
147 Older 3dfx drivers were known to have problems with XVideo acceleration, | 145 |
148 it didn't support either YUY2 or YV12, and so. Verify that you have | 146 <P>Older 3dfx drivers were known to have problems with XVideo acceleration, |
149 XFree86 version 4.1.0 or greater, it works ok. Alternatively, you can use | 147 it didn't support either YUY2 or YV12, and so. Verify that you have |
150 <A HREF="http://dri.sourceforge.net">DRI</A> cvs. | 148 XFree86 version 4.1.0 or greater, it works ok. Alternatively, you can use |
151 If you experience strange effects using -vo xv, try SDL (it has XVideo too) | 149 <A HREF="http://dri.sourceforge.net">DRI</A> cvs. |
152 and see if it helps. Check the <A HREF="#2.2.1.4">SDL section</A> for details. | 150 If you experience strange effects using -vo xv, try SDL (it has XVideo too) |
153 | 151 and see if it helps. Check the <A HREF="#2.2.1.4">SDL section</A> for details.</P> |
154 | 152 |
155 <A NAME=2.2.1.2.2>2.2.1.2.2. S3 cards</A> | 153 |
156 | 154 <P><B><A NAME=2.2.1.2.2>2.2.1.2.2. S3 cards</A></B></P> |
157 S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 | 155 |
158 or greater. As for S3 Virge.. sell it. | 156 <P>S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 |
159 | 157 or greater. As for S3 Virge.. sell it.</P> |
160 | 158 |
161 <A NAME=2.2.1.2.3>2.2.1.2.3. nVidia cards</A> | 159 <P><B><A NAME=2.2.1.2.3>2.2.1.2.3. nVidia cards</A></B></P> |
162 | 160 |
163 nVidia isn't a very good choice under Linux.. You'll have to use the | 161 <P>nVidia isn't a very good choice under Linux.. You'll have to use the |
164 binary nVidia driver, available at nVidia's website. The standard X | 162 binary nVidia driver, available at nVidia's website. The standard X |
165 driver doesn't support XVideo for these cards, due to nVidia's closed | 163 driver doesn't support XVideo for these cards, due to nVidia's closed |
166 sources/specifications. | 164 sources/specifications.</P> |
167 | 165 |
168 - Riva128 cards don't have XVideo support even with the nvidia driver :( | 166 <P><UL><LI>Riva128 cards don't have XVideo support even with the nvidia driver :( |
169 Complain to NVidia. | 167 Complain to NVidia.</UL></P> |
170 | 168 |
171 | 169 |
172 <A NAME=2.2.1.2.4>2.2.1.2.4. ATI cards</A> | 170 <P><B><A NAME=2.2.1.2.4>2.2.1.2.4. ATI cards</A></B></P> |
173 | 171 |
174 The GATOS driver has VSYNC enabled by default. It means that decoding speed | 172 <P>The GATOS driver has VSYNC enabled by default. It means that decoding speed |
175 (!) is synced to the monitor's refresh rate. If playing seems to be slow, try | 173 (!) is synced to the monitor's refresh rate. If playing seems to be slow, try |
176 disabling VSYNC somehow, or set refresh rate to n*(fps of the movie) Hz. | 174 disabling VSYNC somehow, or set refresh rate to n*(fps of the movie) Hz.</P> |
177 | 175 |
178 | 176 |
179 <A NAME=2.2.1.3>2.2.1.3. DGA</A> | 177 <P><B><A NAME=2.2.1.3>2.2.1.3. DGA</A></B></P> |
180 | 178 |
181 <A NAME=2.2.1.3.1>2.2.1.3.1. Summary</A> | 179 <P><B><A NAME=2.2.1.3.1>2.2.1.3.1. Summary</A></B></P> |
182 | 180 |
183 This document tries to explain in some words what DGA is in general and | 181 <P>This document tries to explain in some words what DGA is in general and |
184 what the DGA video output driver for mplayer can do (and what it can't). | 182 what the DGA video output driver for mplayer can do (and what it can't).</P> |
185 | 183 |
186 | 184 |
187 <A NAME=2.2.1.3.2>2.2.1.3.2. What is DGA</A> | 185 <P><B><A NAME=2.2.1.3.2>2.2.1.3.2. What is DGA</A></B></P> |
188 | 186 |
189 DGA is short for Direct Graphics Access and is a means for a program to | 187 <P>DGA is short for Direct Graphics Access and is a means for a program to |
190 bypass the X-Server and directly modifying the framebuffer memory. | 188 bypass the X-Server and directly modifying the framebuffer memory. |
191 Technically spoken this happens by mapping the framebuffer memory into | 189 Technically spoken this happens by mapping the framebuffer memory into |
192 the memory range of your process. This is allowed by the kernel only | 190 the memory range of your process. This is allowed by the kernel only |
193 if you have superuser privileges. You can get these either by logging in | 191 if you have superuser privileges. You can get these either by logging in |
194 as root or by setting the suid bit on the mplayer excecutable (NOT | 192 as root or by setting the suid bit on the mplayer excecutable (NOT |
195 recommended!). | 193 recommended!).</P> |
196 | 194 |
197 There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was | 195 <P>There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was |
198 introduced with XFree 4.0.1. | 196 introduced with XFree 4.0.1.</P> |
199 | 197 |
200 DGA1 provides only direct framebuffer access as described above. For | 198 <P>DGA1 provides only direct framebuffer access as described above. For |
201 switching the resolution of the video signal you have to rely on the | 199 switching the resolution of the video signal you have to rely on the |
202 XVidMode extension. | 200 XVidMode extension.</P> |
203 | 201 |
204 DGA2 incorporates the features of XVidMode extension and also allows | 202 <P>DGA2 incorporates the features of XVidMode extension and also allows |
205 switching the depth of the display. So you may, although basically | 203 switching the depth of the display. So you may, although basically |
206 running a 32 bit depth XServer, switch to a depth of 15 bits and vice | 204 running a 32 bit depth XServer, switch to a depth of 15 bits and vice |
207 versa. | 205 versa. </P> |
208 | 206 |
209 However DGA has some drawbacks. It seems it is somewhat dependent on the | 207 <P>However DGA has some drawbacks. It seems it is somewhat dependent on the |
210 graphics chip you use and on the implementation of the XServer's video | 208 graphics chip you use and on the implementation of the XServer's video |
211 driver that controls this chip. So it does not work on every system ... | 209 driver that controls this chip. So it does not work on every system ...</P> |
212 | 210 |
213 | 211 |
214 <A NAME=2.2.1.3.3>2.2.1.3.3. Installing DGA support for <B>MPlayer</B></A> | 212 <P><B><A NAME=2.2.1.3.3>2.2.1.3.3. Installing DGA support for MPlayer</A></B></P> |
215 | 213 |
216 First make sure X loads the DGA extension, see in /var/log/XFree86.0.log : | 214 <P>First make sure X loads the DGA extension, see in /var/log/XFree86.0.log:</P> |
217 | 215 |
218 | 216 <P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> |
219 (II) Loading extension XFree86-DGA | 217 |
220 | 218 <P>See, XFree86 4.0.x or greater is VERY RECOMMENDED! |
221 | 219 <B>MPlayer</B>'s DGA driver is autodetected on ./configure, or you can force it |
222 See, XFree86 4.0.x or greater is VERY RECOMMENDED! | 220 with --enable-dga.</P> |
223 <B>MPlayer</B>'s DGA driver is autodetected on ./configure, or you can force it | 221 |
224 with --enable-dga. | 222 <P>If the driver couldn't switch to a smaller resolution, experiment with |
225 | 223 switches -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that |
226 If the driver couldn't switch to a smaller resolution, experiment with | 224 the movie fits in. There is no converter right now.. :(</P> |
227 switches -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that | 225 |
228 the movie fits in. There is no converter right now.. :( | 226 <P>Become ROOT. DGA needs root access to be able to write directly video memory. |
229 | 227 If you want to run it as user, then install <B>MPlayer</B> SUID root:</P> |
230 Become ROOT. DGA needs root access to be able to write directly video memory. | 228 |
231 If you want to run it as user, then install <B>MPlayer</B> SUID root: | 229 <P><CODE> |
232 | 230 <CODE>chown root /usr/local/bin/mplayer<BR> |
233 | 231 <CODE>chmod 750 /usr/local/bin/mplayer<BR> |
234 chown root /usr/local/bin/mplayer | 232 <CODE>chmod +s /usr/local/bin/mplayer<BR></CODE></P> |
235 chmod 750 /usr/local/bin/mplayer | 233 |
236 chmod +s /usr/local/bin/mplayer | 234 |
237 | 235 <P>Now it works as a simple user, too.</P> |
238 | 236 |
239 Now it works as a simple user, too. | 237 |
240 | 238 <P><B>!!!! BUT STAY TUNED !!!!</B><BR> |
241 | 239 This is a <B>BIG</B> security risk! Never do this on a server or on a computer |
242 !!!! BUT STAY TUNED !!!! | 240 can be accessed by more people than only you because they can gain root |
243 This is a BIG security risk! Never do this on a server or on a computer | 241 privilegies through suid root mplayer.<BR> |
244 can be accessed by more people than only you because they can gain root | 242 <B>!!!! SO YOU HAVE BEEN WARNED ... !!!!</B></P> |
245 privilegies through suid root mplayer. | 243 |
246 !!!! SO YOU HAVE BEEN WARNED ... !!!! | 244 <P>Now use '-vo dga' option, and there you go! (hope so:) |
247 | 245 You should also try if the '-vo sdl:dga' option works for you! It's much |
248 | 246 faster!!!</P> |
249 Now use '-vo dga' option, and there you go! (hope so:) | 247 |
250 You should also try if the '-vo sdl:dga' option works for you! It's much | 248 <P><B><A NAME=2.2.1.3.4>2.2.1.3.4. Resolution switching</A></B></P> |
251 faster!!! | 249 |
252 | 250 <P>The DGA driver allows for switching the resolution of the output signal. |
253 | 251 This avoids the need for doing (slow) software scaling and at the same |
254 <A NAME=2.2.1.3.4>2.2.1.3.4. Resolution switching</A> | 252 time provides a fullscreen image. Ideally it would switch to the exact |
255 | 253 resolution (except for honouring aspect ratio) of the video data, but the |
256 The DGA driver allows for switching the resolution of the output signal. | 254 XServer only allows switching to resolutions predefined in |
257 This avoids the need for doing (slow) software scaling and at the same | 255 <CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> for XFree 4.0.X respectively). |
258 time provides a fullscreen image. Ideally it would switch to the exact | 256 Those are defined by so-called modelines and depend on the capabilites |
259 resolution (except for honouring aspect ratio) of the video data, but the | 257 of your video hardware. The XServer scans this config file on startup and |
260 XServer only allows switching to resolutions predefined in | 258 disables the modelines not suitable for your hardware. You can find |
261 /etc/X11/XF86Config (/etc/X11/XF86Config-4 for XFree 4.0.X respectively). | 259 out which modes survive with the X11 log file. It can be found at: |
262 Those are defined by so-called modelines and depend on the capabilites | 260 <CODE>/var/log/XFree86.0.log</CODE>.</P> |
263 of your video hardware. The XServer scans this config file on startup and | 261 <P>See appendix A for some sample modeline definitions.</P> |
264 disables the modelines not suitable for your hardware. You can find | 262 |
265 out which modes survive with the X11 log file. It can be found at: | 263 <P><B><A NAME=2.2.1.3.5>2.2.1.3.5. DGA & MPlayer</A></B></P> |
266 /var/log/XFree86.0.log | 264 |
267 See appendix A for some sample modeline definitions. | 265 <P>DGA is used in two places with <B>MPlayer</B>: The SDL driver can be made to make |
268 | 266 use of it (-vo sdl:dga) and within the DGA driver (-vo dga). |
269 | 267 The above said is true for both; in the following sections I'll explain |
270 <A NAME=2.2.1.3.5>2.2.1.3.5. DGA & <B>MPlayer</B></A> | 268 how the DGA driver for <B>MPlayer</B> works.</P> |
271 | 269 |
272 DGA is used in two places with <B>MPlayer</B>: The SDL driver can be made to make | 270 <P><B><A NAME=2.2.1.3.6>2.2.1.3.6. Features of the DGA driver</A></B></P> |
273 use of it (-vo sdl:dga) and within the DGA driver (-vo dga). | |
274 The above said is true for both; in the following sections I'll explain | |
275 how the DGA driver for <B>MPlayer</B> works. | |
276 | |
277 | |
278 <A NAME=2.2.1.3.6>2.2.1.3.6. Features of the DGA driver</A> | |
279 | 271 |
280 The DGA driver is invoked by specifying -vo dga at the command line. | 272 <P>The DGA driver is invoked by specifying -vo dga at the command line. |
281 The default behaviour is to switch to a resolution matching the original | 273 The default behaviour is to switch to a resolution matching the original |
282 resolution of the video as close as possible. It deliberately ignores the | 274 resolution of the video as close as possible. It deliberately ignores the |
283 -vm and -fs switches (enabling of video mode switching and fullscreen) - | 275 -vm and -fs switches (enabling of video mode switching and fullscreen) - |
284 it always tries to cover as much area of your screen as possible by switching | 276 it always tries to cover as much area of your screen as possible by switching |
285 the video mode, thus refraining to use a single additional cycle of your CPU | 277 the video mode, thus refraining to use a single additional cycle of your CPU |
286 to scale the image. | 278 to scale the image. |
287 If you don't like the mode it chooses you may force it to choose the mode | 279 If you don't like the mode it chooses you may force it to choose the mode |
288 matching closest the resolution you specify by -x and -y. | 280 matching closest the resolution you specify by -x and -y. |
289 By providing the -v option, the DGA driver will print, among a lot of other | 281 By providing the -v option, the DGA driver will print, among a lot of other |
290 things, a list of all resolutions supported by your current XF86-Config | 282 things, a list of all resolutions supported by your current XF86-Config |
291 file. | 283 file. |
292 Having DGA2 you may also force it to use a certain depth by using the -bpp | 284 Having DGA2 you may also force it to use a certain depth by using the -bpp |
293 option. Valid depths are 15, 16, 24 and 32. It depends on your hardware | 285 option. Valid depths are 15, 16, 24 and 32. It depends on your hardware |
294 whether these depths are natively supported or if a (possibly slow) | 286 whether these depths are natively supported or if a (possibly slow) |
295 conversion has to be done. | 287 conversion has to be done.</P> |
296 | 288 |
297 If you should be lucky enough to have enough offscreen memory left to | 289 <P>If you should be lucky enough to have enough offscreen memory left to |
298 put a whole image there, the DGA driver will use doublebuffering, which | 290 put a whole image there, the DGA driver will use doublebuffering, which |
299 results in much smoother movie replaying. It will tell you whether double- | 291 results in much smoother movie replaying. It will tell you whether double- |
300 buffering is enabled or not. | 292 buffering is enabled or not.</P> |
301 | 293 |
302 Doublebuffering means that the next frame of your video is being drawn in | 294 <P>Doublebuffering means that the next frame of your video is being drawn in |
303 some offscreen memory while the current frame is being displayed. When the | 295 some offscreen memory while the current frame is being displayed. When the |
304 next frame is ready, the graphics chip is just told the location in memory | 296 next frame is ready, the graphics chip is just told the location in memory |
305 of the new frame and simply fetches the data to be displayed from there. | 297 of the new frame and simply fetches the data to be displayed from there. |
306 In the meantime the other buffer in memory will be filled again with new | 298 In the meantime the other buffer in memory will be filled again with new |
307 video data. | 299 video data.</P> |
308 | 300 |
309 Doublebuffering may be switched on by using the option -double and may be | 301 Doublebuffering may be switched on by using the option -double and may be |
310 disabled with -nodouble. Current default option is to disable | 302 disabled with -nodouble. Current default option is to disable |
311 doublebuffering. When using the DGA driver, onscreen display (OSD) only | 303 doublebuffering. When using the DGA driver, onscreen display (OSD) only |
312 works with doublebuffering enabled. However, enabling doublebuffering may | 304 works with doublebuffering enabled. However, enabling doublebuffering may |
313 result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of | 305 result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of |
314 CPU time!) depending on the implementation of DGA for your hardware. | 306 CPU time!) depending on the implementation of DGA for your hardware.</P> |
315 | 307 |
316 | 308 |
317 <A NAME=2.2.1.3.7>2.2.1.3.7. Speed issues</A> | 309 <P><B><A NAME=2.2.1.3.7>2.2.1.3.7. Speed issues</A></B></P> |
318 | 310 |
319 Generally spoken, DGA framebuffer access should be at least as fast as using | 311 <P>Generally spoken, DGA framebuffer access should be at least as fast as using |
320 the X11 driver with the additional benefit of getting a fullscreen image. | 312 the X11 driver with the additional benefit of getting a fullscreen image. |
321 The percentage speed values printed by mplayer have to be interpreted with | 313 The percentage speed values printed by mplayer have to be interpreted with |
322 some care, as for example, with the X11 driver they do not include the time | 314 some care, as for example, with the X11 driver they do not include the time |
323 used by the X-Server needed for the actual drawing. Hook a terminal to a | 315 used by the X-Server needed for the actual drawing. Hook a terminal to a |
324 serial line of your box and start top to see what is really going on in your | 316 serial line of your box and start top to see what is really going on in your |
325 box ... | 317 box ...</P> |
326 | 318 |
327 Generally spoken, the speedup done by using DGA against 'normal' use of X11 | 319 <P>Generally spoken, the speedup done by using DGA against 'normal' use of X11 |
328 highly depends on your graphics card and how well the X-Server module for it | 320 highly depends on your graphics card and how well the X-Server module for it |
329 is optimized. | 321 is optimized.</P> |
330 | 322 |
331 If you have a slow system, better use 15 or 16bit depth since they require | 323 <P>If you have a slow system, better use 15 or 16bit depth since they require |
332 only half the memory bandwidth of a 32 bit display. | 324 only half the memory bandwidth of a 32 bit display.</P> |
325 | |
326 <P>Using a depth of 24bit is even a good idea if your card natively just supports | |
327 32 bit depth since it transfers 25% less data compared to the 32/32 mode.</P> | |
333 | 328 |
334 Using a depth of 24bit is even a good idea if your card natively just supports | 329 <P>I've seen some avi files already be replayed on a Pentium MMX 266. AMD K6-2 |
335 32 bit depth since it transfers 25% less data compared to the 32/32 mode. | 330 CPUs might work at 400 MHZ and above.</P> |
336 | 331 |
337 I've seen some avi files already be replayed on a Pentium MMX 266. AMD K6-2 | 332 <P><B><A NAME=2.2.1.3.8>2.2.1.3.8. Known bugs</A></B></P> |
338 CPUs might work at 400 MHZ and above. | 333 |
339 | 334 <P>Well, according to some developpers of XFree, DGA is quite a beast. They |
340 | 335 tell you better not to use it. Its implementation is not always flawless |
341 <A NAME=2.2.1.3.8>2.2.1.3.8. Known bugs</A> | 336 with every chipset driver for XFree out there.</P> |
342 | 337 |
343 Well, according to some developpers of XFree, DGA is quite a beast. They | 338 <P><UL> |
344 tell you better not to use it. Its implementation is not always flawless | 339 <LI>with XFree 4.0.3 and nv.o there is a bug resulting in strange colors |
345 with every chipset driver for XFree out there. | 340 <LI>ATI driver requires to switch mode back more than once after finishing |
346 | 341 using of DGA |
347 o with XFree 4.0.3 and nv.o there is a bug resulting in strange colors | 342 <LI>some drivers simply fail to switch back to normal resolution (use |
348 o ATI driver requires to switch mode back more than once after finishing | 343 Ctrl-Alt-Keypad +, - to switch back manually) |
349 using of DGA | 344 <LI>some drivers simply display strange colors |
350 o some drivers simply fail to switch back to normal resolution (use | 345 <LI>some drivers lie about the amount of memory they map into the process's |
351 Ctrl-Alt-Keypad +, - to switch back manually) | 346 address space, thus vo_dga won't use doublebuffering (SIS?) |
352 o some drivers simply display strange colors | 347 <LI>some drivers seem to fail to report even a single valid mode. In this |
353 o some drivers lie about the amount of memory they map into the process's | 348 case the DGA driver will crash telling you about a nonsense mode of |
354 address space, thus vo_dga won't use doublebuffering (SIS?) | 349 100000x100000 or the like ... |
355 o some drivers seem to fail to report even a single valid mode. In this | 350 <LI>OSD only works with doublebuffering enabled |
356 case the DGA driver will crash telling you about a nonsense mode of | 351 </UL></P> |
357 100000x100000 or the like ... | 352 |
358 o OSD only works with doublebuffering enabled | 353 <P><B><A NAME=2.2.1.3.9>2.2.1.3.9. Future work</A></B></P> |
359 | 354 |
360 | 355 <P><UL><LI>use of the new X11 render interface for OSD |
361 <A NAME=2.2.1.3.9>2.2.1.3.9. Future work</A> | 356 <LI>where is my TODO list ???? :-(((</UL></P> |
362 | 357 |
363 o use of the new X11 render interface for OSD | 358 |
364 o where is my TODO list ???? :-((( | 359 <P><B><A NAME=2.2.1.3.A>2.2.1.3.A. Some modelines</A></B></P> |
365 | 360 |
366 | 361 <PRE> |
367 <A NAME=2.2.1.3.A>2.2.1.3.A. Some modelines</A> | |
368 | |
369 Section "Modes" | 362 Section "Modes" |
370 Identifier "Modes[0]" | 363 Identifier "Modes[0]" |
371 Modeline "800x600" 40 800 840 968 1056 600 601 605 628 | 364 Modeline "800x600" 40 800 840 968 1056 600 601 605 628 |
372 Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 | 365 Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 |
373 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 | 366 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 |
374 Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan | 367 Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan |
375 Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 | 368 Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 |
376 Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan | 369 Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan |
377 Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan | 370 Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan |
378 EndSection | 371 EndSection |
379 | 372 </PRE> |
380 | 373 |
381 These entries work fine with my Riva128 chip, using nv.o XServer driver | 374 <P>These entries work fine with my Riva128 chip, using nv.o XServer driver |
382 module. | 375 module.</P> |
383 | 376 |
384 | 377 |
385 <A NAME=2.2.1.3.B>2.2.1.3.B. Bug Reports</A> | 378 <P><B><A NAME=2.2.1.3.B>2.2.1.3.B. Bug Reports</A></B></P> |
386 | 379 |
387 If you experience troubles with the DGA driver please feel free to file | 380 <P>If you experience troubles with the DGA driver please feel free to file |
388 a bug report to me (e-mail address below). Please start mplayer with the | 381 a bug report to me (e-mail address below). Please start mplayer with the |
389 -v option and include all lines in the bug report that start with vo_dga: | 382 -v option and include all lines in the bug report that start with vo_dga:</P> |
390 | 383 |
391 Please do also include the version of X11 you are using, the graphics card | 384 <P>Please do also include the version of X11 you are using, the graphics card |
392 and your CPU type. The X11 driver module (defined in XF86-Config) might | 385 and your CPU type. The X11 driver module (defined in XF86-Config) might |
393 also help. Thanks! | 386 also help. Thanks!</P> |
394 | 387 |
395 | 388 |
396 Acki (acki@acki-netz.de, www.acki-netz.de) | 389 <P><I>Acki (acki@acki-netz.de, www.acki-netz.de)</I></P> |
397 | 390 |
398 | 391 |
399 <A NAME=2.2.1.4>2.2.1.4. SDL</A> | 392 <P><B><A NAME=2.2.1.4>2.2.1.4. SDL</A></B></P> |
400 | 393 |
401 Here are some notes about SDL out in <B>MPlayer</B>. | 394 <P>Here are some notes about SDL out in <B>MPlayer</B>.</P> |
402 | 395 |
403 There are several commandline switches for SDL: | 396 |
404 | 397 |
405 -vo sdl:name specifies sdl video driver to use (ie. aalib, | 398 <P><TABLE BORDER=0> |
406 dga, x11) | 399 <TD COLSPAN=4><P><B>There are several commandline switches for SDL:</B></P></TD><TR> |
407 -ao sdl:name specifies sdl audio driver to use (ie. dsp, | 400 <TD> </TD><TD>-vo sdl:name</TD><TD> </TD><TD> |
408 esd, arts) | 401 specifies sdl video driver to use (ie. aalib, dga, x11)</TD><TR> |
409 -noxv disables Xvideo hardware acceleration | 402 <TD></TD><TD>-ao sdl:name</TD><TD></TD><TD>specifies sdl audio driver to use (ie. dsp, |
410 -forcexv tries to force Xvideo acceleration | 403 esd, arts)</TD><TR> |
411 | 404 <TD></TD><TD>-noxv</TD><TD></TD><TD>disables Xvideo hardware acceleration</TD><TR> |
412 SDL Keys: | 405 <TD></TD><TD>-forcexv</TD><TD></TD><TD>tries to force Xvideo acceleration</TD><TR> |
413 | 406 |
414 F toggles fullscreen/windowed mode | 407 <TD COLSPAN=4><P><B>SDL Keys:</B></P></TD><TR> |
415 C cycles available fullscreen modes | 408 |
416 W/S mappings for * and / (mixer control) | 409 <TD></TD><TD>F</TD><TD></TD><TD>toggles fullscreen/windowed mode</TD><TR> |
417 | 410 <TD></TD><TD>C</TD><TD></TD><TD>cycles available fullscreen modes</TD><TR> |
418 KNOWN BUGS: | 411 <TD></TD><TD>W/S</TD><TD></TD><TD>mappings for * and / (mixer control)</TD><TR> |
419 - Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa !) | 412 |
420 It's bug in SDL, I can't change it (tested with SDL 1.2.1). | 413 </TABLE></P> |
421 | 414 |
422 | 415 <P><B>KNOWN BUGS:</B></P> |
423 <A NAME=2.2.1.5>2.2.1.5. SVGAlib</A> | 416 <P><UL><LI>Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa !) |
424 | 417 It's bug in SDL, I can't change it (tested with SDL 1.2.1). |
425 If you don't have X, you can use the SVGAlib target! Be sure not to use the | 418 </UL></P> |
426 -fs switch, since it toggles the usage of the software scaler, and it's | 419 |
427 SLOOOW now, unless you have a real fast CPU (and/or MTRR?). :( | 420 <P><B><A NAME=2.2.1.5>2.2.1.5. SVGAlib</A></B></P> |
428 | 421 |
429 Of course you'll have to install svgalib and its development package in | 422 <P>If you don't have X, you can use the SVGAlib target! Be sure not to use the |
430 order for <B>MPlayer</B> build its SVGAlib driver (autodetected, but can be | 423 -fs switch, since it toggles the usage of the software scaler, and it's |
431 forced), and don't forget to edit /etc/vga/libvga.config to suit your | 424 SLOOOW now, unless you have a real fast CPU (and/or MTRR?). :(</P> |
432 card & monitor. | 425 |
433 | 426 <P>Of course you'll have to install svgalib and its development package in |
434 | 427 order for <B>MPlayer</B> build its SVGAlib driver (autodetected, but can be |
435 <A NAME=2.2.1.6>2.2.1.6. Framebuffer output (FBdev)</A> | 428 forced), and don't forget to edit /etc/vga/libvga.config to suit your |
436 | 429 card & monitor.</P> |
437 Whether to build the FBdev target is autodetected during ./configure . | 430 |
438 Read the framebuffer documentation in the kernel sources | 431 <P><B><A NAME=2.2.1.6>2.2.1.6. Framebuffer output (FBdev)</A></B></P> |
439 (Documentation/fb/*) for info on how to enable it, etc.. ! | 432 |
440 | 433 <P>Whether to build the FBdev target is autodetected during ./configure . |
441 If your card doesn't support VBE 2.0 standard (older ISA/PCI | 434 Read the framebuffer documentation in the kernel sources |
442 cards, such as S3 Trio64), only VBE 1.2 (or older?) : | 435 (Documentation/fb/*) for info on how to enable it, etc.. !</P> |
443 Well, VESAfb is still available, but you'll have to load SciTech Display | 436 |
444 Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or | 437 <P>If your card doesn't support VBE 2.0 standard (older ISA/PCI |
445 whatever. And don't forget to register your UniVBE ;)) | 438 cards, such as S3 Trio64), only VBE 1.2 (or older?) : |
446 | 439 Well, VESAfb is still available, but you'll have to load SciTech Display |
447 The FBdev output takes some additional parameters above the others: | 440 Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or |
448 | 441 whatever. And don't forget to register your UniVBE ;))</P> |
449 -fb specify the framebuffer device to use (/dev/fd0) | 442 |
450 -fbmode mode name to use (according to /etc/fb.modes) | 443 <P>The FBdev output takes some additional parameters above the others:</P> |
451 -fbmodeconfig config file of modes (default /etc/fb.modes) | 444 |
452 monitor_hfreq | 445 <P><TABLE BORDER=0> |
453 monitor_vfreq IMPORTANT values, see example.conf | 446 <TD> </TD><TD>-fb</TD><TD> </TD><TD> |
454 monitor_dotclock | 447 specify the framebuffer device to use (/dev/fd0)</TD><TR> |
455 | 448 <TD></TD><TD>-fbmode</TD><TD></TD><TD>mode name to use (according to /etc/fb.modes)</TD><TR> |
456 If you want to change to a specific mode, then use | 449 <TD></TD><TD>-fbmodeconfig</TD><TD></TD><TD> config file of modes (default /etc/fb.modes)</TD><TR> |
457 | 450 <TD></TD><TD>-monitor_hfreq</TD><TD></TD><TD ROWSPAN=3>IMPORTANT values, see example.conf</TD><TR> |
458 mplayer -vm -fbmode (NameOfMode) filename | 451 <TD></TD><TD>-monitor_vfreq</TD><TD></TD><TR> |
459 | 452 <TD></TD><TD>-monitor_dotclock</TD><TD></TD><TR> |
460 -vm alone will choose the most suitable mode from /etc/fb.modes . Can be | 453 </TABLE></P> |
461 used together with -x and -y options too. The -flip option is supported only | 454 |
462 if the movie's pixel format matches the video mode's pixel format. | 455 <P>If you want to change to a specific mode, then use</P> |
463 Pay attention to the bpp value, fbdev driver tries to use the current, | 456 |
464 or if you specify the -bpp option, then that. | 457 <P><CODE> mplayer -vm -fbmode (NameOfMode) filename</CODE></P> |
465 -zoom option isn't supported (software scaling is slow). -fs option | 458 |
466 isn't supported. You can't use 8bpp (or less) modes. | 459 <P><UL><LI><B>-vm</B> alone will choose the most suitable mode from /etc/fb.modes . Can be |
467 | 460 used together with -x and -y options too. The -flip option is supported only |
468 NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer, | 461 if the movie's pixel format matches the video mode's pixel format. |
469 and don't ask for it, since it's not an <B>MPlayer</B> limitation. | 462 Pay attention to the bpp value, fbdev driver tries to use the current, |
470 | 463 or if you specify the -bpp option, then that. |
471 | 464 <LI><B>-zoom</B> option isn't supported (software scaling is slow). -fs option |
472 <A NAME=2.2.1.7>2.2.1.7. Matrox framebuffer (mga_vid)</A> | 465 isn't supported. You can't use 8bpp (or less) modes.</UL></P> |
473 | 466 |
474 This section is about the Matrox G200/G400/G450 BES (Back-End Scaler) | 467 <P>NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer, |
475 support, the mga_vid kernel driver. It's active developed by me (A'rpi), and | 468 and don't ask for it, since it's not an <B>MPlayer</B> limitation.</P> |
476 it has hardware VSYNC support with triple buffering. It works on both | 469 |
477 framebuffer console and under X. | 470 <P><B><A NAME=2.2.1.7>2.2.1.7. Matrox framebuffer (mga_vid)</A></B></P> |
471 | |
472 <P>This section is about the Matrox G200/G400/G450 BES (Back-End Scaler) | |
473 support, the mga_vid kernel driver. It's active developed by me (A'rpi), and | |
474 it has hardware VSYNC support with triple buffering. It works on both | |
475 framebuffer console and under X.</P> | |
478 | 476 |
479 To use it, you first have to compile mga_vid.o : | 477 <P>To use it, you first have to compile mga_vid.o:</P> |
480 | 478 |
481 | 479 <P><CODE> cd drivers<BR> |
482 cd drivers | 480 make</CODE></P> |
483 make | 481 |
484 | 482 <P>Then create /dev/mga_vid device:</P> |
485 | 483 |
486 Then create /dev/mga_vid device : | 484 <P><CODE> mknod /dev/mga_vid c 178 0</CODE></P> |
487 | 485 |
488 | 486 <P>and load the driver with</P> |
489 mknod /dev/mga_vid c 178 0 | 487 |
490 | 488 <P><CODE> insmod mga_vid.o</CODE></P> |
491 | 489 |
492 and load the driver with | 490 <P>You should verify the memory size detection using the 'dmesg' command. If |
493 | 491 it's bad, use the mga_ram_size option (rmmod mga_vid first), specify card's |
494 | 492 memory size in MB:</P> |
495 insmod mga_vid.o | 493 |
496 | 494 <P><CODE> insmod mga_vid.o mga_ram_size=16</CODE></P> |
497 | 495 |
498 You should verify the memory size detection using the 'dmesg' command. If | 496 <P>To make it load/unload automatically when needed, insert the following line |
499 it's bad, use the mga_ram_size option (rmmod mga_vid first), specify card's | 497 at the end of /etc/modules.conf:</P> |
500 memory size in MB: | 498 |
501 | 499 <P><CODE> alias char-major-178 mga_vid</CODE></P> |
502 | 500 |
503 insmod mga_vid.o mga_ram_size=16 | 501 <P>Then run</P> |
504 | 502 |
505 | 503 <P><CODE> depmod -a</CODE></P> |
506 To make it load/unload automatically when needed, insert the following line | 504 |
507 at the end of /etc/modules.conf : | 505 <P>Now you have to (re)compile <B>MPlayer</B>, ./configure will detect /dev/mga_vid |
508 | 506 and build the 'mga' driver. Using it from <B>MPlayer</B> goes by '-vo mga' if |
509 | 507 you have matroxfb console, or '-vo xmga' under XFree86 3.x.x or 4.x.x.</P> |
510 alias char-major-178 mga_vid | 508 |
511 | 509 <P>Note: '-vo xmga' works under XFree86 4.x.x, but it conflicts with the Xv |
512 | 510 driver, so avoid using both. If you messed up Xv with mga, try running |
513 Then run | 511 <B>MPlayer</B> with '-vo mga' . It should fix Xv.</P> |
514 | |
515 | |
516 depmod -a | |
517 | |
518 | |
519 Now you have to (re)compile <B>MPlayer</B>, ./configure will detect /dev/mga_vid | |
520 and build the 'mga' driver. Using it from <B>MPlayer</B> goes by '-vo mga' if | |
521 you have matroxfb console, or '-vo xmga' under XFree86 3.x.x or 4.x.x . | |
522 | |
523 Note: '-vo xmga' works under XFree86 4.x.x, but it conflicts with the Xv | |
524 driver, so avoid using both. If you messed up Xv with mga, try running | |
525 <B>MPlayer</B> with '-vo mga' . It should fix Xv. | |
526 | 512 |
527 | 513 |
528 <A NAME=2.2.1.8>2.2.1.8. SiS 6326 framebuffer (sis_vid)</A> | 514 <P><B><A NAME=2.2.1.8>2.2.1.8. SiS 6326 framebuffer (sis_vid)</A></B></P> |
529 | 515 |
530 SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver | 516 <P>SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver</P> |
531 | 517 |
532 Its interface should be compatible with the mga_vid, but the driver was not | 518 <P>Its interface should be compatible with the mga_vid, but the driver was not |
533 updated after the mga_vid changes, so it's outdated now. Volunteers | 519 updated after the mga_vid changes, so it's outdated now. Volunteers |
534 needed to test it and bring the code up-to-date. | 520 needed to test it and bring the code up-to-date.</P> |
535 | 521 |
536 | 522 <P><B><A NAME=2.2.1.9>2.2.1.9. 3dfx YUV support</A></B></P> |
537 <A NAME=2.2.1.9>2.2.1.9. 3dfx YUV support</A> | 523 |
538 | 524 <P>3dfx has native YUV+scaler support, using /dev/3dfx (tdfx.o driver?) |
539 3dfx has native YUV+scaler support, using /dev/3dfx (tdfx.o driver?) | 525 The /dev/3dfx kernel driver exists only for 2.2.x kernels, for use with |
540 The /dev/3dfx kernel driver exists only for 2.2.x kernels, for use with | 526 Glide 2.x Linux ports. It's not tested with <B>MPlayer</B>, and so no more |
541 Glide 2.x Linux ports. It's not tested with <B>MPlayer</B>, and so no more | 527 supported. Volunteers needed to test it and bring the code up-to-date.</P> |
542 supported. Volunteers needed to test it and bring the code up-to-date. | 528 |
543 | 529 <P><B><A NAME=2.2.1.10>2.2.1.10. OpenGL output</A></B></P> |
544 | 530 |
545 <A NAME=2.2.1.10>2.2.1.10. OpenGL output</A> | 531 <P><B>MPlayer</B> support displaying movies using OpenGL. Unfortunately, not all |
546 | 532 drivers support this ability. For example the Utah-GLX drivers |
547 <B>MPlayer</B> support displaying movies using OpenGL. Unfortunately, not all | 533 (for XFree86 3.3.6) have it, with all cards. |
548 drivers support this ability. For example the Utah-GLX drivers | 534 See <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> |
549 (for XFree86 3.3.6) have it, with all cards. | 535 for details about how to install it.</P> |
550 See <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> for details about how to install it. | 536 |
551 | 537 <P>XFree86(DRI) >= 4.0.3 supports it only with Matrox, and Radeon cards. |
552 XFree86(DRI) >= 4.0.3 supports it only with Matrox, and Radeon cards. | 538 See <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> for download, |
553 See <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> for download, and installation instructions. | 539 and installation instructions.</P> |
554 | 540 |
555 | 541 <P><B><A NAME=2.2.1.11>2.2.1.11. AAlib - text mode displaying</B></P> |
556 <A NAME=2.2.1.11>2.2.1.11. AAlib - text mode displaying</A> | 542 |
557 | 543 <P><B>AAlib</B> is a library for displaying graphics in text mode, using powerful |
558 <B>AAlib</B> is a library for displaying graphics in text mode, using powerful | 544 ASCII renderer. There are LOTS of programs already supporting it, like Doom, |
559 ASCII renderer. There are LOTS of programs already supporting it, like Doom, | 545 Quake, etc. MPlayer contains a very usable driver for it. |
560 Quake, etc. MPlayer contains a very usable driver for it. | 546 If ./configure detects aalib installed, the aalib libvo driver will be built.</P> |
561 If ./configure detects aalib installed, the aalib libvo driver will be built. | 547 |
562 | 548 <P><TABLE BORDER=0> |
563 You can use some keys in the AA Window to change rendering options: | 549 <TD COLSPAN=4><P><B>You can use some keys in the AA Window to change rendering options:</B></P></TD><TR> |
564 1 : decrease contrast | 550 <TD> </TD><TD>1</TD><TD> </TD><TD>decrease contrast</TD><TR> |
565 2 : increase contrast | 551 <TD></TD><TD>2</TD><TD></TD><TD>increase contrast</TD><TR> |
566 3 : decrease brightness | 552 <TD></TD><TD>3</TD><TD></TD><TD>decrease brightness</TD><TR> |
567 4 : increase brightness | 553 <TD></TD><TD>4</TD><TD></TD><TD>increase brightness</TD><TR> |
568 5 : switch fast rendering on/off | 554 <TD></TD><TD>5</TD><TD></TD><TD>switch fast rendering on/off</TD><TR> |
569 6 : set dithering mode (none, error distribution, floyd steinberg) | 555 <TD></TD><TD>6</TD><TD></TD><TD>set dithering mode (none, error distribution, floyd steinberg)</TD><TR> |
570 7 : invert image | 556 <TD></TD><TD>7</TD><TD></TD><TD>invert image</TD><TR> |
571 a : toggles between aa and mplayer control) | 557 <TD></TD><TD>a</TD><TD></TD><TD>toggles between aa and mplayer control)</TD><TR> |
572 | 558 |
573 | 559 <TD COLSPAN=4><P><B>The following command line options can be used:</B></P></TD><TR> |
574 The following command line options can be used: | 560 |
575 -aaosdcolor=V : change osd color | 561 <TD></TD><TD>-aaosdcolor=V</TD><TD></TD><TD>change osd color</TD><TR> |
576 -aasubcolor=V : change subtitle color | 562 <TD></TD><TD>-aasubcolor=V</TD><TD></TD><TD>change subtitle color</TD><TR> |
577 where V can be: (0/normal, 1/dark, 2/bold, 3/boldfont, 4/reverse, | 563 <TD COLSPAN=3></TD><TD><P><I>where V can be: (0/normal, 1/dark, 2/bold, 3/boldfont, 4/reverse, 5/special)</P></TD><TR> |
578 5/special) | |
579 | 564 |
580 AAlib itselves provides a large sum of options. | 565 <TD COLSPAN=4><P><B>AAlib itselves provides a large sum of options. |
581 Here are some important: | 566 Here are some important:</P></B></TD><TR> |
582 -aadriver : set recommended aa driver (X11, curses, linux) | 567 |
583 -aaextended : use all 256 characters | 568 <TD></TD><TD>-aadriver</TD><TD></TD><TD>set recommended aa driver (X11, curses, linux)</TD><TR> |
584 -aaeight : use eight bit ascii | 569 <TD></TD><TD>-aaextended</TD><TD></TD><TD>use all 256 characters</TD><TR> |
585 -aahelp : prints out all aalib options | 570 <TD></TD><TD>-aaeight</TD><TD></TD><TD>use eight bit ascii</TD><TR> |
571 <TD></TD><TD>-aahelp</TD><TD></TD><TD>prints out all aalib options</TD><TR> | |
572 </TABLE></P> | |
573 | |
574 <P>NOTE: the rendering is very CPU intensive, especially when using AA-on-X | |
575 (using aalib on X), and it's least CPU intensive on standard, | |
576 non-framebuffer console. Use SVGATextMode to set up a big textmode, | |
577 then enjoy! (secondary head Hercules cards rock :)) (anyone can enhance | |
578 bdev to do conversion/dithering to hgafb? Would be neat :)</P> | |
586 | 579 |
587 | 580 <P>Use the -framedrop option if your comp isn't fast enough to render all frames!</P> |
588 NOTE: the rendering is very CPU intensive, especially when using AA-on-X | 581 |
589 (using aalib on X), and it's least CPU intensive on standard, | 582 <P>Playing on terminal you'll get better speed and quality using the linux driver, not |
590 non-framebuffer console. Use SVGATextMode to set up a big textmode, | 583 curses (-aadriver linux). But therefore you need write access on /dev/vcsa<terminal>! |
591 then enjoy! (secondary head Hercules cards rock :)) (anyone can enhance | 584 That isn't autodetected by aalib, bu vo_aa tries to find the best mode. |
592 fbdev to do conversion/dithering to hgafb? Would be neat :) | 585 See http://aa-project.sourceforge.net/tune/ for further tuning issues.</P> |
593 | 586 |
594 Use the -framedrop option if your comp isn't fast enough to render all | 587 <P><B><A NAME=2.2.1.A>2.2.1.A. TV-out support</A></B></P> |
595 frames! | 588 |
596 | 589 <P><B><A NAME=2.2.1.A.1>2.2.1.A.1. Matrox cards</A></B></P> |
597 Playing on terminal you'll get better speed and quality using the linux | 590 |
598 driver, not curses (-aadriver linux). But therefore you need write | 591 <P><I> What I'd love to see in mplayer is the the same feature that I see in my |
599 access on /dev/vcsa(terminal)! That isn't autodetected by aalib, bu | 592 windows box. When I start a movie in windows (in a window or in full screen) |
600 vo_aa tries to find the best mode. See | 593 the movie is also redirected to the tv-out and I can also see it full screen |
601 http://aa-project.sourceforge.net/tune/ for further tuning issues. | 594 on my tv. I love this feature and was wondering how hard it would be to add |
602 | 595 such a feature to mplayer.</I></P> |
603 | 596 |
604 <A NAME=2.2.1.A>2.2.1.A. TV-out support</A> | 597 <P>It's a driver limitation. BES (Back-End Scaler, it's the overlay generator |
605 | 598 and YUV scaling engine of G200/G400/G450 cards) works only with CRTC1. |
606 | 599 Normally, CRTC1 (textmode, every bpp gfx and BES) is routed to HEAD1, |
607 <A NAME=2.2.1.A.1>2.2.1.A.1. Matrox cards</A> | 600 and CRTC2 (only 16/32bpp gfx) is routed to HEAD2 (TV-out).</P> |
608 | 601 |
609 <I> What I'd love to see in mplayer is the the same feature that I see in my | 602 <P>Under linux, you have two choices to get TV-out working:</P> |
610 windows box. When I start a movie in windows (in a window or in full screen) | 603 |
611 the movie is also redirected to the tv-out and I can also see it full screen | 604 <P><UL> |
612 on my tv. I love this feature and was wondering how hard it would be to add | 605 <LI>Using X 4.0.x + the HAL driver from matrox, so you'll get dual-head |
613 such a feature to mplayer.</I> | 606 support, and you'll be able to redirect second output to the TV. |
614 | 607 Unfortunately it has Macrovision encryption enabled, so it will |
615 It's a driver limitation. BES (Back-End Scaler, it's the overlay generator | 608 only work on directly-connected TV, no through VCR. |
616 and YUV scaling engine of G200/G400/G450 cards) works only with CRTC1. | 609 Other problem is that Xv doesn't work on the second head. |
617 Normally, CRTC1 (textmode, every bpp gfx and BES) is routed to HEAD1, | 610 (I don't know how Windows solve it, maybe it swaps the CRTCs between |
618 and CRTC2 (only 16/32bpp gfx) is routed to HEAD2 (TV-out). | 611 the heads, or just uses YUV framebuffer of second DAC with some trick) |
619 | 612 <LI>Using matroxfb with dual-head support enabled (2.4.x kernels). |
620 Under linux, you have two choices to get TV-out working: | 613 You'll be able to get a framebuffer console (using CRTC2, so it's |
621 | 614 slow), and TV-out (using CRTC1, with BES support). |
622 1. Using X 4.0.x + the HAL driver from matrox, so you'll get dual-head | 615 You have to forget X while using this kind of TV-out! :( |
623 support, and you'll be able to redirect second output to the TV. | 616 </UL></P> |
624 Unfortunately it has Macrovision encryption enabled, so it will | 617 |
625 only work on directly-connected TV, no through VCR. | 618 <P>Follow these instructions:</P> |
626 Other problem is that Xv doesn't work on the second head. | 619 |
627 (I don't know how Windows solve it, maybe it swaps the CRTCs between | 620 <P><UL> |
628 the heads, or just uses YUV framebuffer of second DAC with some trick) | 621 <LI>Compile all the matrox-related things to modules in the kernel. |
629 | 622 (you MUST compile them to modules, at least I couldn't get them |
630 2. Using matroxfb with dual-head support enabled (2.4.x kernels). | 623 working built-in yet) |
631 You'll be able to get a framebuffer console (using CRTC2, so it's | 624 [reboot to new kernel & install modules, but don't load them yet!] |
632 slow), and TV-out (using CRTC1, with BES support). | 625 <P><CODE> |
633 You have to forget X while using this kind of TV-out! :( | 626 cd TVout<BR> |
634 | 627 ./compile.sh</CODE></P> |
635 - Compile all the matrox-related things to modules in the kernel. | 628 <LI>Run the 'modules' script from the TV-out directory of mplayer. |
636 (you MUST compile them to modules, at least I couldn't get them | 629 It will switch your console to framebuffer. |
637 working built-in yet) | 630 Change to tty1 (ALT+F1)! |
638 [reboot to new kernel & install modules, but don't load them yet!] | 631 Now run the script 'independent', it will set up your tty's: |
639 | 632 <P>tty 1,2: fb console, CRTC2, head 1 (monitor)<BR> |
640 cd TVout | 633 tty 3,4,5...: framebuffer+BES, CRTC1, head 2 (TV-out)</P> |
641 ./compile.sh | 634 You should run the scripts TV-* and Mon-* to set up resolutions: |
642 | 635 <P>change to tty1 (ALT+F1), and run Mon-* (one of them)<BR> |
643 - Run the 'modules' script from the TV-out directory of mplayer. | 636 change to tty3 (ALT+F3) and then back to tty1 (ALT+F1)</P> |
644 It will switch your console to framebuffer. | 637 (this change will select tty3 on /dev/fb1 - tricky)<BR> |
645 Change to tty1 (ALT+F1)! | 638 <P>run TV-* (one of them)</P> |
646 Now run the script 'independent', it will set up your tty's: | 639 (now you'll get a console on your PAL TV - don't know about NTSC) |
647 tty 1,2: fb console, CRTC2, head 1 (monitor) | 640 <P>Now if you start mplayer (on tty1), the picture will show up on |
648 tty 3,4,5...: framebuffer+BES, CRTC1, head 2 (TV-out) | 641 the tty3, so you'll see it on your TV or second monitor.</P> |
649 You should run the scripts TV-* and Mon-* to set up resolutions: | 642 </UL></P> |
650 change to tty1 (ALT+F1), and run Mon-* (one of them) | 643 |
651 change to tty3 (ALT+F3) and then back to tty1 (ALT+F1) | 644 <P>Yes, it is a bit 'hack' now. But I'm waiting for the marvel |
652 (this change will select tty3 on /dev/fb1 - tricky) | 645 project to be finished, it will provide real TV-out drivers, I hope.</P> |
653 run TV-* (one of them) | 646 |
654 (now you'll get a console on your PAL TV - don't know about NTSC) | 647 <P>My current problem is that BES is working only with CRTC1. So picture |
655 | 648 will always shown up on head routed to CRTC1 (normaly the monitor), |
656 Now if you start mplayer (on tty1), the picture will show up on | 649 so i have to swap CRTC's, but this way your console will framebuffer |
657 the tty3, so you'll see it on your TV or second monitor. | 650 (CRTC2 can't do text-mode) and a bit slow (no acceleration). :(</P> |
658 | 651 |
659 Yes, it is a bit 'hack' now. But I'm waiting for the marvel | 652 <P><I>Anyway i also just get monochrome output on the tv ...</I> |
660 project to be finished, it will provide real TV-out drivers, I hope. | 653 Maybe you have NTSC TV? Or just didn't run one of TV-* scripts.</P> |
661 | 654 |
662 My current problem is that BES is working only with CRTC1. So picture | 655 <BR> |
663 will always shown up on head routed to CRTC1 (normaly the monitor), | 656 <HR>MPlayer documentation project |
664 so i have to swap CRTC's, but this way your console will framebuffer | |
665 (CRTC2 can't do text-mode) and a bit slow (no acceleration). :( | |
666 | |
667 | |
668 <I> anyway i also just get monochrome output on the tv ...</I> | |
669 Maybe you have NTSC TV? Or just didn't run one of TV-* scripts. | |
670 | |
671 | |
672 </PRE> | |
673 | 657 |
674 </BODY> | 658 </BODY> |
675 | |
676 </HTML> | 659 </HTML> |