Mercurial > mplayer.hg
annotate DOCS/video.html @ 4218:3931c41f740a
Added new syncengine thanks to a new previously undocumented feature of the em8300, this might fix playback on both slow and fast machines (more testing needed). This also requires users to get the em8300 driver from cvs until the next version is released (will probably happen this weekend)
Added lots of comments, should be pretty easy to understand most of the internals now
Added lots of brackets to if's for's while's etc, this is not a cosmetical thing but rather due to the fact I got some very odd bugs with else's since I didn't properly use brackets (and it's the K&R standard to have brackets everywhere)
Fixed some bugs that would occur when disabling libmp1e
Switched to default to the new naming scheme of device nodes, the driver will slowly switch over to this state, if it can't find devices under the new name it will try the old naming scheme
I stopped opening devices in non-blocking mode, it would break the new syncengine which tries to burst data to the device (alot of times meaning it will fill the fifo pretty fast which would previously result in jerkyness on fast machines)
The device now sets the initial state of the pts and speed (probably not needed, but assumption is the mother of all fuckups =)
Keep the control interface open during the entire duration of the libvo device, we might need this to flush video buffers on seeking (currently not implemented, therefore seeking is broken)
This is beta stuff to the driver, I will get some users to test it for me and do my best to fix seeking as soon as possible...
author | mswitch |
---|---|
date | Thu, 17 Jan 2002 10:33:47 +0000 |
parents | bcaf75e384d8 |
children | 82d33038b2d0 |
rev | line source |
---|---|
1612 | 1 <HTML> |
1704 | 2 <BODY BGCOLOR=white> |
3 | |
4 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
1612 | 5 |
2745 | 6 <P><B><A NAME=2.3.1>2.3.1. Video output devices</A></B></P> |
1612 | 7 |
1682 | 8 <TABLE BORDER=0> |
9 | |
1987 | 10 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>General:</B></P></TD><TR> |
1612 | 11 |
3027 | 12 <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, |
13 sans-serif" size=2><A HREF=#2.3.1.13>x11</A></TD><TD> </TD><TD><FONT | |
14 face="Verdana, Arial, Helvetica, sans-serif" size=2>X11 with optional SHM | |
15 extension</TD><TR> | |
16 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
17 size=2><A HREF=#2.3.1.2>xv</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
18 Helvetica, sans-serif" size=2>X11 using overlays with the Xvideo extension | |
19 (hardware YUV & scaling)</TD><TR> | |
20 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
21 size=2><A HREF=#2.3.1.10>gl</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
22 Helvetica, sans-serif" size=2>OpenGL renderer, so far works only with: | |
1682 | 23 <UL><LI>all cards with Utah-GLX |
24 <LI>Matrox cards with X/DRI >=4.0.3 | |
25 <LI>Radeon with X/DRI CVS</UL></TD><TR> | |
3027 | 26 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
3583 | 27 size=2><A HREF=#2.3.1.10>gl2</A></TD><TD></TD><TD><FONT face="Verdana, Arial, |
28 Helvetica, sans-serif" size=2>OpenGL renderer, multiple textures version</TD><TR> | |
29 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
3027 | 30 size=2><A HREF=#2.3.1.3>dga</A></TD><TD></TD><TD><FONT face="Verdana, Arial, |
31 Helvetica, sans-serif" size=2>X11 DGA extension</TD><TR> | |
32 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
33 size=2><A HREF=#2.3.1.6>fbdev</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
34 Helvetica, sans-serif" size=2>Output to general framebuffers</TD><TR> | |
35 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
36 size=2><A HREF=#2.3.1.5>svga</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
37 Helvetica, sans-serif" size=2>Output to SVGAlib</TD><TR> | |
38 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
39 size=2><A HREF=#2.3.1.4>sdl</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
40 Helvetica, sans-serif" size=2> | |
1682 | 41 <CODE>1.1.7:</CODE> supports software scaling<BR> |
42 <CODE>1.1.8:</CODE> supports Xvideo (hardware scaling/fullscreen)<BR> | |
43 <CODE>1.2.0:</CODE> supports AAlib (-vo aa is very recommended, see below!)</TD><TR> | |
3027 | 44 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
45 size=2><A HREF=#2.3.1.14-TODO>ggi</A></TD><TD></TD><TD><FONT face="Verdana, | |
46 Arial, Helvetica, sans-serif" size=2>similar to SDL</TD><TR> | |
47 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
48 size=2><A HREF=#2.3.1.11>aa</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
49 Helvetica, sans-serif" size=2>textmode rendering with AAlib</TD><TR> | |
50 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
51 size=2><a href=#2.3.1.12>vesa</a></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
52 Helvetica, sans-serif" size=2>Output to VESA BIOS.</TD><TR> | |
3583 | 53 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
4199 | 54 size=2><a href=#2.3.1.15>vidix</a></TD><TD></TD><TD><FONT face="Verdana, Arial, |
55 Helvetica, sans-serif" size=2>VIDeo Interface for *niX (this entry is not a | |
56 real driver, but an explanation of VIDIX)</TD><TR> | |
57 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
58 size=2><a href=#2.3.1.15>xvidix</a></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
59 Helvetica, sans-serif" size=2>VIDIX in X window</TD><TR> | |
60 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
3583 | 61 size=2>directfb</TD><TD></TD><TD><FONT face="Verdana, Arial, |
62 Helvetica, sans-serif" size=2>Direct Framebuffer Device</TD><TR> | |
1682 | 63 |
3027 | 64 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" |
65 size=2>Card specific:</B></P></TD><TR> | |
1612 | 66 |
3027 | 67 <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, |
68 sans-serif" size=2><A HREF=#2.3.1.7>mga</A></TD><TD> </TD><TD><FONT | |
69 face="Verdana, Arial, Helvetica, sans-serif" size=2>Matrox G200/G400 hardware | |
70 YUV overlay via the mga_vid device</TD><TR> | |
71 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
72 size=2><A HREF=#2.3.1.7>xmga</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
73 Helvetica, sans-serif" size=2>Matrox G200/G400 overlay (mga_vid) in X11 | |
74 window<BR> | |
1682 | 75 (<I>Xv emulation on X 3.3.x!</I>)</TD><TR> |
3027 | 76 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" |
77 size=2>syncfb</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, | |
78 sans-serif" size=2>Matrox G400 YUV support on framebuffer (obsoleted, use | |
79 mga/xmga)</TD><TR> | |
80 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
81 size=2>3dfx</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
82 size=2>Voodoo3/Banshee hardware YUV (/dev/3dfx) support (not yet tested, maybe | |
83 broken)</TD><TR> | |
84 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
85 size=2><A HREF=#2.3.1.9>tdfxfb</A></TD><TD></TD><TD><FONT face="Verdana, Arial, | |
86 Helvetica, sans-serif" size=2>Voodoo3/Banshee hardware YUV support on tdfx | |
87 framebuffer (works!)</TD><TR> | |
1682 | 88 |
3027 | 89 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" |
90 size=2>Special:</B></P></TD><TR> | |
1612 | 91 |
3027 | 92 <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, |
93 sans-serif" size=2>png</TD><TD> </TD><TD><FONT face="Verdana, Arial, | |
94 Helvetica, sans-serif" size=2>PNG files output (use -z switch to set | |
95 compression)</TD><TR> | |
96 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
97 size=2>pgm</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
98 size=2>PGM files output (for testing purposes or ffmpeg encoding)</TD><TR> | |
99 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
100 size=2>md5</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
101 size=2>MD5sum output (for MPEG conformance tests)</TD><TR> | |
102 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
103 size=2>null</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" | |
104 size=2>Null output (for speed tests/benchmarking)</TD><TR> | |
1682 | 105 </TABLE> |
1612 | 106 |
1682 | 107 <P>NOTE: <I>check the following subsections for details and requirements!</I></P> |
1612 | 108 |
109 | |
2745 | 110 <P><B><A NAME=2.3.1.1>2.3.1.1. Setting up MTRR</A></B></P> |
1612 | 111 |
1946 | 112 <P>It is VERY recommended to check if the MTRR registers are set up properly, |
113 because they can give a big performance boost.</P> | |
114 | |
115 <P>Do a '<CODE>cat /proc/mtrr</CODE>' :</P> | |
116 | |
117 <P><CODE> | |
118 --($:~)-- cat /proc/mtrr<BR> | |
119 reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR> | |
120 reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1<BR> | |
121 </CODE></P> | |
122 | |
123 <P>It's right, shows my Matrox G400 with 16Mb memory. I did this from | |
124 XFree 4.x.x , which sets up MTRR registers automatically.</P> | |
125 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
126 <P>If nothing worked, you have to do it manually. First, you have to find the base |
1946 | 127 address. |
1682 | 128 You have 3 ways to find it:</P> |
1612 | 129 |
1682 | 130 <P><UL> |
131 <LI>from X11 startup messages, for example: | |
132 <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000<BR> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
133 (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI> |
1682 | 134 <LI>from /proc/pci (use lspci -v command): |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
135 <P> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
136 <CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525</CODE> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
137 <CODE>Memory at d8000000 (32-bit, prefetchable)</CODE> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
138 </P> |
1682 | 139 <LI>from mga_vid kernel driver messages (use dmesg): |
140 <P><CODE>mga_mem_base = d8000000</CODE></P> | |
141 </UL></P> | |
1612 | 142 |
1682 | 143 <P>Then let's find the memory size. This is very easy, just convert video ram |
144 size to hexadecimal, or use this table:</P> | |
1612 | 145 |
1682 | 146 <TABLE BORDER=0> |
147 <TD> </TD><TD>1 MB</TD><TD WIDTH=10%></TD><TD>0x100000</TD><TR> | |
148 <TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD><TR> | |
149 <TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD><TR> | |
150 <TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD><TR> | |
151 <TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD><TR> | |
152 <TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD><TR> | |
153 </TABLE> | |
1612 | 154 |
155 | |
1682 | 156 <P>You know base address and memory size, let's setup mtrr registers! |
157 For example, for the Matrox card above (base=0xd8000000) with 32MB | |
158 ram (size=0x2000000) just execute:</P> | |
1612 | 159 |
160 | |
1682 | 161 <P><CODE> echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr</CODE></P> |
1612 | 162 |
163 | |
1682 | 164 <P>Not all CPUs support MTRRs. For example older K6-2's [around 266Mhz, |
165 stepping 0] doesn't support MTRR, but stepping 12's do ('<CODE>cat /proc/cpuinfo</CODE>' | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
166 to check it').</P> |
1612 | 167 |
2745 | 168 <P><B><A NAME=2.3.1.2>2.3.1.2. Xv</A></B></P> |
1612 | 169 |
1682 | 170 <P>Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines |
171 using the XVideo extension. This is what the option '-vo xv' uses. | |
172 In order to make this work, be sure to check the following:</P> | |
173 <P><UL> | |
174 <LI>You have to use XFree86 4.0.2 or newer (former versions don't have XVideo) | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
175 <LI>Your card actually supports hardware acceleration (modern cards do) |
1682 | 176 <LI>X loads the XVideo extension, it's something like this: |
1612 | 177 |
1682 | 178 <P><CODE> (II) Loading extension XVideo</CODE></P> |
179 <P>in /var/log/XFree86.0.log</P> | |
1612 | 180 |
1682 | 181 <P>NOTE: this loads only the XFree86's extension. In a good install, this is |
182 always loaded, and doesn't mean that the _card's_ XVideo support is loaded!</P> | |
1612 | 183 |
1682 | 184 <LI>Your card has Xv support under Linux. To check, try 'xvinfo', it is the |
185 part of the XFree86 distribution. It should display a long text, similar | |
186 to this: | |
187 <PRE> | |
1612 | 188 X-Video Extension version 2.2 |
189 screen #0 | |
190 Adaptor #0: "Savage Streams Engine" | |
191 number of ports: 1 | |
192 port base: 43 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
193 operations supported: PutImage |
1612 | 194 supported visuals: |
195 depth 16, visualID 0x22 | |
196 depth 16, visualID 0x23 | |
197 number of attributes: 5 | |
198 (...) | |
199 Number of image formats: 7 | |
200 id: 0x32595559 (YUY2) | |
201 guid: 59555932-0000-0010-8000-00aa00389b71 | |
202 bits per pixel: 16 | |
203 number of planes: 1 | |
204 type: YUV (packed) | |
205 id: 0x32315659 (YV12) | |
206 guid: 59563132-0000-0010-8000-00aa00389b71 | |
207 bits per pixel: 12 | |
208 number of planes: 3 | |
209 type: YUV (planar) | |
210 (...etc...) | |
1682 | 211 </PRE> |
1612 | 212 |
1682 | 213 <P>It must support YUY2 packed, and YV12 planar pixel formats to be |
214 usable with <B>MPlayer</B>.</P> | |
1612 | 215 |
1682 | 216 <LI>And finally, check if <B>MPlayer</B> was compiled with 'xv' support. |
217 ./configure prints this. | |
1612 | 218 |
1682 | 219 </UL></P> |
220 | |
2745 | 221 <P><B><A NAME=2.3.1.2.1>2.3.1.2.1. 3dfx cards</A></B></P> |
1612 | 222 |
1682 | 223 <P>Older 3dfx drivers were known to have problems with XVideo acceleration, |
224 it didn't support either YUY2 or YV12, and so. Verify that you have | |
3942 | 225 XFree86 version 4.1.0 or greater, it works ok with YUY2, but <B>crashes |
226 with YV12</B>! Thus, either wait for 4.2.0 or use the | |
1682 | 227 <A HREF="http://dri.sourceforge.net">DRI</A> cvs. |
228 If you experience strange effects using -vo xv, try SDL (it has XVideo too) | |
2745 | 229 and see if it helps. Check the <A HREF="#2.3.1.4">SDL section</A> for details.</P> |
1612 | 230 |
2745 | 231 <P><B>OR</B>, try the NEW -vo tdfxfb driver! See the <A HREF=#2.3.1.9>2.3.1.9</A> |
1992 | 232 section!</P> |
1612 | 233 |
2865 | 234 |
2745 | 235 <P><B><A NAME=2.3.1.2.2>2.3.1.2.2. S3 cards</A></B></P> |
1682 | 236 |
237 <P>S3 Savage3D's should work fine, but for Savage4, use XFree86 version 4.0.3 | |
3942 | 238 or greater (in case of image problems, try 16bpp). As for S3 Virge.. there is |
239 xv support, but the card itself is very slow, so you better sell it.</P> | |
1682 | 240 |
3027 | 241 <P><B>NOTE</B>: Savage cards have a slow YV12 image displaying capability (it needs |
2883 | 242 to do YV12->YUY2 conversion, because the Savage hardware can't display YV12). |
243 So when this documentation says at some point "this has YV12 output use this, | |
3027 | 244 it's faster", it's not sure. Try.</P> |
2865 | 245 |
246 | |
2745 | 247 <P><B><A NAME=2.3.1.2.3>2.3.1.2.3. nVidia cards</A></B></P> |
1612 | 248 |
3938 | 249 <P>nVidia isn't a very good choice under Linux (according to NVidia, this |
250 is <A HREF="users_against_developers.html#nvidia">not true</A>).. You'll have to use the | |
3290 | 251 binary closed-source nVidia driver, available at nVidia's website. The standard XFree86 |
1682 | 252 driver doesn't support XVideo for these cards, due to nVidia's closed |
253 sources/specifications.</P> | |
1612 | 254 |
3290 | 255 <P>As far as I know the latest XFree86 driver contains XVideo support for |
256 Geforce 2 and 3.</P> | |
257 | |
1682 | 258 <P><UL><LI>Riva128 cards don't have XVideo support even with the nvidia driver :( |
259 Complain to NVidia.</UL></P> | |
1612 | 260 |
261 | |
2745 | 262 <P><B><A NAME=2.3.1.2.4>2.3.1.2.4. ATI cards</A></B></P> |
1612 | 263 |
1920 | 264 <P> |
4177 | 265 <LI>The <A HREF="http://www.linuxvideo.org/gatos">GATOS driver</A> (which you |
266 should use, unless you have Rage128 or Radeon) has VSYNC enabled by default. It | |
267 means that decoding speed (!) is synced to the monitor's refresh rate. If | |
268 playing seems to be slow, try disabling VSYNC somehow, or set refresh rate to | |
269 n*(fps of the movie) Hz.</LI> | |
1920 | 270 |
271 <LI>Radeon VE - currently only XFree86 CVS has driver for this card, version | |
3027 | 272 4.1.0 doesn't. And no TV out support. Of course with <B>MPlayer</B> you can |
273 happily get <B>accelerated</B> display, with or without <B>TV output</B>, and | |
274 no libraries or X are needed. Read <a href=#2.3.1.12>VESA driver</a> and <A | |
3053 | 275 HREF=#2.3.1.14>Radeon video overlay</A> sections).</LI> </P> |
1612 | 276 |
277 | |
2745 | 278 <P><B><A NAME=2.3.1.2.5>2.3.1.2.5. NeoMagic cards</A></B></P> |
1922
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
279 |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
280 <P> |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
281 These cards can be found in many laptops. Under Linux, their peak is only DGA. |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
282 Unfortunately, the DGA driver in X 4.1.0 doesn't work, you'll have to wait for |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
283 4.2.0, or download a modified driver for 4.0.3 or 4.1.0 from here : |
2614 | 284 <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver">http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver</A> |
1922
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
285 (there is also the patch to the driver's source).<BR> |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
286 Drivers provided by <A HREF="mailto:tomee@cpi.pl">Tomek Jarzynka</A>. |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
287 </P> |
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
288 |
3794 | 289 <P><B><A NAME=2.3.1.2.6>2.3.1.2.6. Trident cards</A></B></P> |
290 | |
291 <P>If you want to use xv with a trident card, provided that it doesn't | |
292 work with 4.1.0, try the latest cvs of Xfree or wait for Xfree 4.2.0. | |
293 The latest cvs adds support for fullscreen xv support with the | |
294 Cyberblade XP card.</P> | |
1922
5f0e4310dd4d
NeoMagic stuff added (legyen egyszer gyereknap...)
gabucino
parents:
1920
diff
changeset
|
295 |
2745 | 296 <P><B><A NAME=2.3.1.3>2.3.1.3. DGA</A></B></P> |
1612 | 297 |
2745 | 298 <P><B><A NAME=2.3.1.3.1>2.3.1.3.1. Summary</A></B></P> |
1612 | 299 |
1682 | 300 <P>This document tries to explain in some words what DGA is in general and |
301 what the DGA video output driver for mplayer can do (and what it can't).</P> | |
1612 | 302 |
303 | |
2745 | 304 <P><B><A NAME=2.3.1.3.2>2.3.1.3.2. What is DGA</A></B></P> |
1612 | 305 |
1682 | 306 <P>DGA is short for Direct Graphics Access and is a means for a program to |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
307 bypass the X-Server and directly modifying the framebuffer memory. |
1682 | 308 Technically spoken this happens by mapping the framebuffer memory into |
309 the memory range of your process. This is allowed by the kernel only | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
310 if you have superuser privileges. You can get these either by logging in |
1682 | 311 as root or by setting the suid bit on the mplayer excecutable (NOT |
312 recommended!).</P> | |
1612 | 313 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
314 <P>There are two versions of DGA: DGA1 is used by XFree 3.x.x and DGA2 was |
1682 | 315 introduced with XFree 4.0.1.</P> |
1612 | 316 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
317 <P>DGA1 provides only direct framebuffer access as described above. For |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
318 switching the resolution of the video signal you have to rely on the |
1682 | 319 XVidMode extension.</P> |
1612 | 320 |
1682 | 321 <P>DGA2 incorporates the features of XVidMode extension and also allows |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
322 switching the depth of the display. So you may, although basically |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
323 running a 32 bit depth XServer, switch to a depth of 15 bits and vice |
1682 | 324 versa. </P> |
1612 | 325 |
1682 | 326 <P>However DGA has some drawbacks. It seems it is somewhat dependent on the |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
327 graphics chip you use and on the implementation of the XServer's video |
1682 | 328 driver that controls this chip. So it does not work on every system ...</P> |
1612 | 329 |
330 | |
2745 | 331 <P><B><A NAME=2.3.1.3.3>2.3.1.3.3. Installing DGA support for MPlayer</A></B></P> |
1682 | 332 |
333 <P>First make sure X loads the DGA extension, see in /var/log/XFree86.0.log:</P> | |
334 | |
335 <P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> | |
336 | |
337 <P>See, XFree86 4.0.x or greater is VERY RECOMMENDED! | |
338 <B>MPlayer</B>'s DGA driver is autodetected on ./configure, or you can force it | |
339 with --enable-dga.</P> | |
1612 | 340 |
1682 | 341 <P>If the driver couldn't switch to a smaller resolution, experiment with |
342 switches -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that | |
343 the movie fits in. There is no converter right now.. :(</P> | |
1612 | 344 |
1682 | 345 <P>Become ROOT. DGA needs root access to be able to write directly video memory. |
346 If you want to run it as user, then install <B>MPlayer</B> SUID root:</P> | |
1612 | 347 |
1682 | 348 <P><CODE> |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
349 chown root /usr/local/bin/mplayer<BR> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
350 chmod 750 /usr/local/bin/mplayer<BR> |
1686 | 351 chmod +s /usr/local/bin/mplayer</CODE></P> |
1612 | 352 |
353 | |
1682 | 354 <P>Now it works as a simple user, too.</P> |
1612 | 355 |
356 | |
1682 | 357 <P><B>!!!! BUT STAY TUNED !!!!</B><BR> |
358 This is a <B>BIG</B> security risk! Never do this on a server or on a computer | |
359 can be accessed by more people than only you because they can gain root | |
360 privilegies through suid root mplayer.<BR> | |
361 <B>!!!! SO YOU HAVE BEEN WARNED ... !!!!</B></P> | |
362 | |
363 <P>Now use '-vo dga' option, and there you go! (hope so:) | |
364 You should also try if the '-vo sdl:dga' option works for you! It's much | |
365 faster!!!</P> | |
366 | |
2745 | 367 <P><B><A NAME=2.3.1.3.4>2.3.1.3.4. Resolution switching</A></B></P> |
1682 | 368 |
369 <P>The DGA driver allows for switching the resolution of the output signal. | |
370 This avoids the need for doing (slow) software scaling and at the same | |
371 time provides a fullscreen image. Ideally it would switch to the exact | |
372 resolution (except for honouring aspect ratio) of the video data, but the | |
1686 | 373 XServer only allows switching to resolutions predefined in |
1682 | 374 <CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> for XFree 4.0.X respectively). |
375 Those are defined by so-called modelines and depend on the capabilites | |
376 of your video hardware. The XServer scans this config file on startup and | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
377 disables the modelines not suitable for your hardware. You can find |
1682 | 378 out which modes survive with the X11 log file. It can be found at: |
379 <CODE>/var/log/XFree86.0.log</CODE>.</P> | |
380 <P>See appendix A for some sample modeline definitions.</P> | |
381 | |
2745 | 382 <P><B><A NAME=2.3.1.3.5>2.3.1.3.5. DGA & MPlayer</A></B></P> |
1612 | 383 |
1682 | 384 <P>DGA is used in two places with <B>MPlayer</B>: The SDL driver can be made to make |
385 use of it (-vo sdl:dga) and within the DGA driver (-vo dga). | |
386 The above said is true for both; in the following sections I'll explain | |
387 how the DGA driver for <B>MPlayer</B> works.</P> | |
1612 | 388 |
2745 | 389 <P><B><A NAME=2.3.1.3.6>2.3.1.3.6. Features of the DGA driver</A></B></P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
390 |
1682 | 391 <P>The DGA driver is invoked by specifying -vo dga at the command line. |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
392 The default behaviour is to switch to a resolution matching the original |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
393 resolution of the video as close as possible. It deliberately ignores the |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
394 -vm and -fs switches (enabling of video mode switching and fullscreen) - |
1682 | 395 it always tries to cover as much area of your screen as possible by switching |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
396 the video mode, thus refraining to use a single additional cycle of your CPU |
1682 | 397 to scale the image. |
398 If you don't like the mode it chooses you may force it to choose the mode | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
399 matching closest the resolution you specify by -x and -y. |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
400 By providing the -v option, the DGA driver will print, among a lot of other |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
401 things, a list of all resolutions supported by your current XF86-Config |
1682 | 402 file. |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
403 Having DGA2 you may also force it to use a certain depth by using the -bpp |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
404 option. Valid depths are 15, 16, 24 and 32. It depends on your hardware |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
405 whether these depths are natively supported or if a (possibly slow) |
1682 | 406 conversion has to be done.</P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
407 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
408 <P>If you should be lucky enough to have enough offscreen memory left to |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
409 put a whole image there, the DGA driver will use doublebuffering, which |
1682 | 410 results in much smoother movie replaying. It will tell you whether double- |
411 buffering is enabled or not.</P> | |
1612 | 412 |
1682 | 413 <P>Doublebuffering means that the next frame of your video is being drawn in |
414 some offscreen memory while the current frame is being displayed. When the | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
415 next frame is ready, the graphics chip is just told the location in memory |
1682 | 416 of the new frame and simply fetches the data to be displayed from there. |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
417 In the meantime the other buffer in memory will be filled again with new |
1682 | 418 video data.</P> |
419 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
420 Doublebuffering may be switched on by using the option -double and may be |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
421 disabled with -nodouble. Current default option is to disable |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
422 doublebuffering. When using the DGA driver, onscreen display (OSD) only |
1682 | 423 works with doublebuffering enabled. However, enabling doublebuffering may |
424 result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of | |
425 CPU time!) depending on the implementation of DGA for your hardware.</P> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
426 |
1682 | 427 |
2745 | 428 <P><B><A NAME=2.3.1.3.7>2.3.1.3.7. Speed issues</A></B></P> |
1682 | 429 |
430 <P>Generally spoken, DGA framebuffer access should be at least as fast as using | |
431 the X11 driver with the additional benefit of getting a fullscreen image. | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
432 The percentage speed values printed by mplayer have to be interpreted with |
1682 | 433 some care, as for example, with the X11 driver they do not include the time |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
434 used by the X-Server needed for the actual drawing. Hook a terminal to a |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
435 serial line of your box and start top to see what is really going on in your |
1682 | 436 box ...</P> |
437 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
438 <P>Generally spoken, the speedup done by using DGA against 'normal' use of X11 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
439 highly depends on your graphics card and how well the X-Server module for it |
1682 | 440 is optimized.</P> |
441 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
442 <P>If you have a slow system, better use 15 or 16bit depth since they require |
1682 | 443 only half the memory bandwidth of a 32 bit display.</P> |
1612 | 444 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
445 <P>Using a depth of 24bit is even a good idea if your card natively just supports |
1682 | 446 32 bit depth since it transfers 25% less data compared to the 32/32 mode.</P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
447 |
1682 | 448 <P>I've seen some avi files already be replayed on a Pentium MMX 266. AMD K6-2 |
449 CPUs might work at 400 MHZ and above.</P> | |
1612 | 450 |
2745 | 451 <P><B><A NAME=2.3.1.3.8>2.3.1.3.8. Known bugs</A></B></P> |
1682 | 452 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
453 <P>Well, according to some developpers of XFree, DGA is quite a beast. They |
1682 | 454 tell you better not to use it. Its implementation is not always flawless |
455 with every chipset driver for XFree out there.</P> | |
1612 | 456 |
1682 | 457 <P><UL> |
458 <LI>with XFree 4.0.3 and nv.o there is a bug resulting in strange colors | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
459 <LI>ATI driver requires to switch mode back more than once after finishing |
1682 | 460 using of DGA |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
461 <LI>some drivers simply fail to switch back to normal resolution (use |
1682 | 462 Ctrl-Alt-Keypad +, - to switch back manually) |
463 <LI>some drivers simply display strange colors | |
464 <LI>some drivers lie about the amount of memory they map into the process's | |
465 address space, thus vo_dga won't use doublebuffering (SIS?) | |
466 <LI>some drivers seem to fail to report even a single valid mode. In this | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
467 case the DGA driver will crash telling you about a nonsense mode of |
1682 | 468 100000x100000 or the like ... |
469 <LI>OSD only works with doublebuffering enabled | |
470 </UL></P> | |
471 | |
2745 | 472 <P><B><A NAME=2.3.1.3.9>2.3.1.3.9. Future work</A></B></P> |
1682 | 473 |
474 <P><UL><LI>use of the new X11 render interface for OSD | |
475 <LI>where is my TODO list ???? :-(((</UL></P> | |
1612 | 476 |
477 | |
2745 | 478 <P><B><A NAME=2.3.1.3.A>2.3.1.3.A. Some modelines</A></B></P> |
1612 | 479 |
1682 | 480 <PRE> |
1612 | 481 Section "Modes" |
482 Identifier "Modes[0]" | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
483 Modeline "800x600" 40 800 840 968 1056 600 601 605 628 |
1612 | 484 Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
485 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 |
1612 | 486 Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan |
487 Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 | |
488 Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan | |
489 Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan | |
490 EndSection | |
1682 | 491 </PRE> |
1612 | 492 |
1682 | 493 <P>These entries work fine with my Riva128 chip, using nv.o XServer driver |
494 module.</P> | |
1612 | 495 |
496 | |
2745 | 497 <P><B><A NAME=2.3.1.3.B>2.3.1.3.B. Bug Reports</A></B></P> |
1612 | 498 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
499 <P>If you experience troubles with the DGA driver please feel free to file |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
500 a bug report to me (e-mail address below). Please start mplayer with the |
1682 | 501 -v option and include all lines in the bug report that start with vo_dga:</P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
502 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
503 <P>Please do also include the version of X11 you are using, the graphics card |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
504 and your CPU type. The X11 driver module (defined in XF86-Config) might |
1682 | 505 also help. Thanks!</P> |
1612 | 506 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
507 |
1682 | 508 <P><I>Acki (acki@acki-netz.de, www.acki-netz.de)</I></P> |
1612 | 509 |
510 | |
2745 | 511 <P><B><A NAME=2.3.1.4>2.3.1.4. SDL</A></B></P> |
1612 | 512 |
3988 | 513 <P>SDL (Simple Directmedia Layer) is basically an unified video/audio |
514 interface. Programs that use it know only about SDL, and not about what video | |
515 or audio driver does SDL actually use. For example a Doom port using SDL can | |
516 run on svgalib, aalib, X, fbdev, and others, you only have to specify the | |
517 (for example) video driver to use with the SDL_VIDEODRIVER environment | |
518 variable. Well, in theory.</P> | |
519 | |
520 <P>With <B>MPlayer</B>, we used its X11 driver's software scaler ability for | |
521 cards/drivers that doesn't support XVideo, until we made our own (faster, | |
522 nicer) software scaler. Also we used its aalib output, but now we have ours | |
523 which is more comfortable. Its DGA mode was better than ours, until | |
524 recently. Get it now? :)</P> | |
525 | |
526 <P>It also helps with some buggy drivers/cards if the video is jerky | |
527 (not slow system problem), or audio is lagging.</P> | |
528 | |
1682 | 529 <P>Here are some notes about SDL out in <B>MPlayer</B>.</P> |
1612 | 530 |
531 | |
532 | |
1682 | 533 <P><TABLE BORDER=0> |
1987 | 534 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>There are several commandline switches for SDL:</B></P></TD><TR> |
535 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vo sdl:name</TD><TD> </TD><TD> | |
536 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>specifies sdl video driver to use (ie. aalib, dga, x11)</TD><TR> | |
537 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-ao sdl:name</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>specifies sdl audio driver to use (ie. dsp, | |
1682 | 538 esd, arts)</TD><TR> |
1987 | 539 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-noxv</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>disables Xvideo hardware acceleration</TD><TR> |
540 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-forcexv</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>tries to force Xvideo acceleration</TD><TR> | |
1612 | 541 |
1987 | 542 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>SDL Keys:</B></P></TD><TR> |
1612 | 543 |
1987 | 544 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>F</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>toggles fullscreen/windowed mode</TD><TR> |
545 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>C</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>cycles available fullscreen modes</TD><TR> | |
546 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>W/S</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>mappings for * and / (mixer control)</TD><TR> | |
1612 | 547 |
1682 | 548 </TABLE></P> |
1612 | 549 |
1682 | 550 <P><B>KNOWN BUGS:</B></P> |
551 <P><UL><LI>Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa !) | |
552 It's bug in SDL, I can't change it (tested with SDL 1.2.1). | |
553 </UL></P> | |
1612 | 554 |
2745 | 555 <P><B><A NAME=2.3.1.5>2.3.1.5. SVGAlib</A></B></P> |
1682 | 556 |
557 <P>If you don't have X, you can use the SVGAlib target! Be sure not to use the | |
558 -fs switch, since it toggles the usage of the software scaler, and it's | |
559 SLOOOW now, unless you have a real fast CPU (and/or MTRR?). :(</P> | |
1612 | 560 |
1682 | 561 <P>Of course you'll have to install svgalib and its development package in |
562 order for <B>MPlayer</B> build its SVGAlib driver (autodetected, but can be | |
563 forced), and don't forget to edit /etc/vga/libvga.config to suit your | |
564 card & monitor.</P> | |
1612 | 565 |
2745 | 566 <P><B><A NAME=2.3.1.6>2.3.1.6. Framebuffer output (FBdev)</A></B></P> |
1682 | 567 |
568 <P>Whether to build the FBdev target is autodetected during ./configure . | |
569 Read the framebuffer documentation in the kernel sources | |
570 (Documentation/fb/*) for info on how to enable it, etc.. !</P> | |
1612 | 571 |
1682 | 572 <P>If your card doesn't support VBE 2.0 standard (older ISA/PCI |
573 cards, such as S3 Trio64), only VBE 1.2 (or older?) : | |
574 Well, VESAfb is still available, but you'll have to load SciTech Display | |
575 Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or | |
576 whatever. And don't forget to register your UniVBE ;))</P> | |
1612 | 577 |
1682 | 578 <P>The FBdev output takes some additional parameters above the others:</P> |
1612 | 579 |
1682 | 580 <P><TABLE BORDER=0> |
1987 | 581 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fb</TD><TD> </TD><TD> |
582 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>specify the framebuffer device to use (/dev/fd0)</TD><TR> | |
583 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fbmode</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>mode name to use (according to /etc/fb.modes)</TD><TR> | |
584 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fbmodeconfig</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> config file of modes (default /etc/fb.modes)</TD><TR> | |
585 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_hfreq</TD><TD></TD><TD ROWSPAN=3><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>IMPORTANT values, see example.conf</TD><TR> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
586 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_vfreq</TD><TD></TD><TR> |
1987 | 587 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-monitor_dotclock</TD><TD></TD><TR> |
1682 | 588 </TABLE></P> |
1612 | 589 |
1682 | 590 <P>If you want to change to a specific mode, then use</P> |
1612 | 591 |
1682 | 592 <P><CODE> mplayer -vm -fbmode (NameOfMode) filename</CODE></P> |
1612 | 593 |
1682 | 594 <P><UL><LI><B>-vm</B> alone will choose the most suitable mode from /etc/fb.modes . Can be |
595 used together with -x and -y options too. The -flip option is supported only | |
596 if the movie's pixel format matches the video mode's pixel format. | |
597 Pay attention to the bpp value, fbdev driver tries to use the current, | |
2507 | 598 or if you specify the -bpp option, then that.</LI> |
1682 | 599 <LI><B>-zoom</B> option isn't supported (software scaling is slow). -fs option |
2507 | 600 isn't supported. You can't use 8bpp (or less) modes.</LI> |
601 <LI>you possibly want to turn the cursor off : <CODE>echo -e '\033[?25l'</CODE><BR> | |
602 and the screen saver: <CODE>setterm -blank 0</CODE><BR> | |
603 To turn the cursor back on : <CODE>echo -e '\033[?25h'</CODE> | |
604 </UL></P> | |
1612 | 605 |
1682 | 606 <P>NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer, |
607 and don't ask for it, since it's not an <B>MPlayer</B> limitation.</P> | |
1612 | 608 |
2745 | 609 <P><B><A NAME=2.3.1.7>2.3.1.7. Matrox framebuffer (mga_vid)</A></B></P> |
1612 | 610 |
1992 | 611 <P>This section is about the Matrox G200/G400/G450/G550 BES (Back-End Scaler) |
1682 | 612 support, the mga_vid kernel driver. It's active developed by me (A'rpi), and |
613 it has hardware VSYNC support with triple buffering. It works on both | |
614 framebuffer console and under X.</P> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
615 |
1682 | 616 <P>To use it, you first have to compile mga_vid.o:</P> |
1612 | 617 |
1682 | 618 <P><CODE> cd drivers<BR> |
619 make</CODE></P> | |
1612 | 620 |
1682 | 621 <P>Then create /dev/mga_vid device:</P> |
1612 | 622 |
1682 | 623 <P><CODE> mknod /dev/mga_vid c 178 0</CODE></P> |
1612 | 624 |
1682 | 625 <P>and load the driver with</P> |
626 | |
627 <P><CODE> insmod mga_vid.o</CODE></P> | |
1612 | 628 |
1682 | 629 <P>You should verify the memory size detection using the 'dmesg' command. If |
630 it's bad, use the mga_ram_size option (rmmod mga_vid first), specify card's | |
631 memory size in MB:</P> | |
1612 | 632 |
1682 | 633 <P><CODE> insmod mga_vid.o mga_ram_size=16</CODE></P> |
1612 | 634 |
3664
f3a20477f042
added "copy mga_vid to /lib/modules" to install instructions
gabucino
parents:
3583
diff
changeset
|
635 <P>To make it load/unload automatically when needed, first insert the following line |
1682 | 636 at the end of /etc/modules.conf:</P> |
1612 | 637 |
1682 | 638 <P><CODE> alias char-major-178 mga_vid</CODE></P> |
1612 | 639 |
3664
f3a20477f042
added "copy mga_vid to /lib/modules" to install instructions
gabucino
parents:
3583
diff
changeset
|
640 <P>Then copy the <CODE>mga_vid.o</CODE> module to the appropriate place under |
f3a20477f042
added "copy mga_vid to /lib/modules" to install instructions
gabucino
parents:
3583
diff
changeset
|
641 <CODE>/lib/modules/<kernel version>/somewhere</CODE>.</P> |
f3a20477f042
added "copy mga_vid to /lib/modules" to install instructions
gabucino
parents:
3583
diff
changeset
|
642 |
1682 | 643 <P>Then run</P> |
1612 | 644 |
1682 | 645 <P><CODE> depmod -a</CODE></P> |
1612 | 646 |
1682 | 647 <P>Now you have to (re)compile <B>MPlayer</B>, ./configure will detect /dev/mga_vid |
648 and build the 'mga' driver. Using it from <B>MPlayer</B> goes by '-vo mga' if | |
649 you have matroxfb console, or '-vo xmga' under XFree86 3.x.x or 4.x.x.</P> | |
650 | |
2108 | 651 <P>The mga_vid driver cooperates with Xv.</P> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
652 |
1612 | 653 |
2745 | 654 <P><B><A NAME=2.3.1.8>2.3.1.8. SiS 6326 framebuffer (sis_vid)</A></B></P> |
1682 | 655 |
656 <P>SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver</P> | |
1612 | 657 |
1682 | 658 <P>Its interface should be compatible with the mga_vid, but the driver was not |
659 updated after the mga_vid changes, so it's outdated now. Volunteers | |
660 needed to test it and bring the code up-to-date.</P> | |
1612 | 661 |
2745 | 662 <P><B><A NAME=2.3.1.9>2.3.1.9. 3dfx YUV support (tdfxfb)</A></B></P> |
1612 | 663 |
1992 | 664 <P>This driver uses the kernel's tdfx framebuffer driver to play movies with |
665 YUV acceleration. You'll need a kernel with tdfxfb support, and recompile with | |
666 <CODE>./configure --enable-tdfxfb</CODE></P> | |
1612 | 667 |
2745 | 668 <P><B><A NAME=2.3.1.10>2.3.1.10. OpenGL output</A></B></P> |
1612 | 669 |
1682 | 670 <P><B>MPlayer</B> support displaying movies using OpenGL. Unfortunately, not all |
671 drivers support this ability. For example the Utah-GLX drivers | |
672 (for XFree86 3.3.6) have it, with all cards. | |
673 See <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> | |
674 for details about how to install it.</P> | |
1612 | 675 |
1682 | 676 <P>XFree86(DRI) >= 4.0.3 supports it only with Matrox, and Radeon cards. |
677 See <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> for download, | |
678 and installation instructions.</P> | |
1612 | 679 |
2745 | 680 <P><B><A NAME=2.3.1.11>2.3.1.11. AAlib - text mode displaying</B></P> |
1612 | 681 |
1682 | 682 <P><B>AAlib</B> is a library for displaying graphics in text mode, using powerful |
683 ASCII renderer. There are LOTS of programs already supporting it, like Doom, | |
684 Quake, etc. MPlayer contains a very usable driver for it. | |
685 If ./configure detects aalib installed, the aalib libvo driver will be built.</P> | |
1612 | 686 |
1682 | 687 <P><TABLE BORDER=0> |
1987 | 688 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>You can use some keys in the AA Window to change rendering options:</B></P></TD><TR> |
689 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>1</TD><TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>decrease contrast</TD><TR> | |
690 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>2</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>increase contrast</TD><TR> | |
691 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>3</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>decrease brightness</TD><TR> | |
692 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>4</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>increase brightness</TD><TR> | |
693 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>5</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>switch fast rendering on/off</TD><TR> | |
694 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>6</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>set dithering mode (none, error distribution, floyd steinberg)</TD><TR> | |
695 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>7</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>invert image</TD><TR> | |
696 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>a</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>toggles between aa and mplayer control)</TD><TR> | |
1682 | 697 |
1987 | 698 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>The following command line options can be used:</B></P></TD><TR> |
1612 | 699 |
1987 | 700 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaosdcolor=V</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>change osd color</TD><TR> |
701 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aasubcolor=V</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>change subtitle color</TD><TR> | |
702 <TD COLSPAN=3></TD><TD><P><I><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>where V can be: (0/normal, 1/dark, 2/bold, 3/boldfont, 4/reverse, 5/special)</P></TD><TR> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
703 |
1987 | 704 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>AAlib itselves provides a large sum of options. |
1682 | 705 Here are some important:</P></B></TD><TR> |
706 | |
1987 | 707 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aadriver</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>set recommended aa driver (X11, curses, linux)</TD><TR> |
708 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaextended</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>use all 256 characters</TD><TR> | |
709 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aaeight</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>use eight bit ascii</TD><TR> | |
710 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-aahelp</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>prints out all aalib options</TD><TR> | |
1682 | 711 </TABLE></P> |
712 | |
713 <P>NOTE: the rendering is very CPU intensive, especially when using AA-on-X | |
714 (using aalib on X), and it's least CPU intensive on standard, | |
715 non-framebuffer console. Use SVGATextMode to set up a big textmode, | |
716 then enjoy! (secondary head Hercules cards rock :)) (anyone can enhance | |
717 bdev to do conversion/dithering to hgafb? Would be neat :)</P> | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
718 |
1682 | 719 <P>Use the -framedrop option if your comp isn't fast enough to render all frames!</P> |
1612 | 720 |
1682 | 721 <P>Playing on terminal you'll get better speed and quality using the linux driver, not |
722 curses (-aadriver linux). But therefore you need write access on /dev/vcsa<terminal>! | |
723 That isn't autodetected by aalib, bu vo_aa tries to find the best mode. | |
1731 | 724 See <A HREF="http://aa-project.sourceforge.net/tune/">http://aa-project.sourceforge.net/tune/</A> for further tuning issues.</P> |
1612 | 725 |
2471 | 726 |
2745 | 727 <P><B><A NAME=2.3.1.12>2.3.1.12. VESA - output to VESA BIOS</B></P> |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
728 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
729 This driver was designed and introduced as <b>generic driver</b> for any video |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
730 card which has VESA VBE 2.0 compatible BIOS. But exists still one reason of |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
731 developing of this driver - it's multiple troubles with displaying movie on TV.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
732 <b>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</b> (Page 70) |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
733 says: |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
734 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
735 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
736 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
737 <code><i> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
738 <b>Dual-Controller Designs</b><br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
739 VBE 3.0 supports the dual-controller design by assuming that since both |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
740 controllers are typically provided by the same OEM, under control of a |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
741 single BIOS ROM on the same graphics card, it is possible to hide the fact |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
742 that two controllers are indeed present from the application. This has the |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
743 limitation of preventing simultaneous use of the independent controllers, |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
744 but allows applications released before VBE 3.0 to operate normally. The |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
745 VBE Function 00h (Return Controller Information) returns the combined |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
746 information of both controllers, including the combined list of available modes. |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
747 When the application selects a mode, the appropriate controller is activated. |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
748 Each of the remaining VBE functions then operates on the active controller. |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
749 </i></code> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
750 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
751 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
752 <P> |
2471 | 753 So you have chances to get working TV-out by using this driver.<br> |
754 (I guess that TV-out frequently is standalone head or standalone output | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
755 at least.) |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
756 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
757 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
758 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
759 <b>What are pluses:</b><BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
760 - You have chances to watch movies <b>if Linux even doesn't know</b> your video hardware.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
761 - You don't need to have installed any graphics' related things on your Linux |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
762 (like X11 (aka XFree86), fbdev and so on). This driver can be run from |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
763 <b>text-mode</b>.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
764 - You have chances to get <b>working TV-out</b>. (It's known at least for ATI's cards).<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
765 - This driver calls <b>int 10h</b> handler thus it's not an emulator - it |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
766 calls <b>real</b> things of <b>real</b> BIOS in <b>real</b>-mode. (Finely - |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
767 in vm86 mode).<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
768 - Most important :) You can watch <b>DVD at 320x200</b> if you don't have a powerful CPU.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
769 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
770 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
771 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
772 <b>What are minuses:</b><BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
773 - It works only on <b>x86 systems</b>.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
774 - <b>It's the slowest driver</b> from all the available ones for MPlayer.<BR> |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
775 (But only if your card doesn't support <b>DGA mode</b> - otherwise this |
2747 | 776 driver is comparable by speed with <b>-vo dga</b> and <b>-vo fbdev</b> ones.<BR> |
777 | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
778 - It can be used only by <b>ROOT</b>.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
779 - Currently it's available only for <b>Linux</b>.<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
780 - It <b>doesn't use</b> any <b>hardware accelerations</b> (like YUV overlay or hw scaling).<BR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
781 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
782 |
3141 | 783 <P>Don't use this driver with <B>GCC 2.96</B> ! It won't work !</P> |
784 | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
785 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
786 <TABLE BORDER=0> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
787 <TD COLSPAN=4><P><B><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>These switches of command line currently are available for VESA:</B></P></TD><TR> |
2747 | 788 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vo vesa:opts</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>currently recognized: <b>dga</b> to force dga mode and <b>nodga</b> to disable dga mode. Note: you may omit these parameters to enable <b>autodetect</b> of dga mode. (In the future also will specify mode parameters such as refresh rate, interlacing, doublescan and so on. Samples: i43, 85, d100)</TD><TR> |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
789 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-screenw, -screenh, -bpp</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>force userdefined mode</TD><TR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
790 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-x, -y</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>set userdefined prescaling</TD><TR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
791 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-zoom</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>enables userdefined prescaling</TD><TR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
792 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fs</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>scales image to fullscreen</TD><TR> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
793 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-fs -zoom</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>scales userdefined prescaling to fullscreen</TD><TR> |
2747 | 794 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-double</TD><TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>enables double buffering mode. (Available only in DGA mode). Should be slower of single buffering, but has no flickering effects.</TD><TR> |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
795 </TABLE> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
796 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
797 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
798 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
799 <b>Known problems and workaround:</b><br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
800 - If you have installed <b>NLS</b> font on your Linux box and run VESA driver |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
801 from text-mode then after terminating mplayer you will have <b>ROM font</b> loaded instead |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
802 of national. You can load national font again by using <b><i>setsysfont</i></b> utility |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
803 from for example Mandrake distribution.<br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
804 (<b>Hint</b>: The same utility is used for localizating fbdev).<br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
805 - Some <b>Linux graphics drivers</b> don't update active <b>BIOS mode</b> in DOS memory. So if you have such |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
806 problem - always use VESA driver only from <b>text-mode</b>. Otherwise text-mode (#03) will be |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
807 activated anyway and you will need restart your computer.<br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
808 - Often after terminating VESA driver you get <b>black screen</b>. To return your screen |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
809 to original state - simply switch to other console (by pressing <b>Alt-Fx</b>) then switch |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
810 to your previous console by the same way.<br> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
811 - To get <b>working TV-out</b> you need have plugged tv-connector in before booting |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
812 your PC since video BIOS initializes itself only once during POST procedure. |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
813 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
814 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
815 |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
816 <P><B><A NAME=2.3.1.13>2.3.1.13. X11</B></P> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
817 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
818 <P>Avoid if possible. Outputs to X11 (uses shared memory extension), with no |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
819 hardware acceleration at all. Supports (MMX/3DNow/SSE accelerated, but still |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
820 slow) software scaling, use the options <CODE>-fs -zoom</CODE>. Most cards have |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
821 hardware scaling support, use the <CODE>-vo xv</CODE> output for them, or |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
822 <CODE>-vo xmga</CODE> for Matroxes.</P> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
823 |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
824 <P>The problem is that most cards' driver doesn't support |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
825 hardware acceleration on the second head/TV. In those cases, you see green/blue |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
826 coloured window instead of the movie. This is where this driver comes in |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
827 handy, but you need powerful CPU to use software scaling. Don't use the |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
828 SDL driver's software output+scaler, it has worse image quality !</P> |
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
829 |
3290 | 830 <P>Software scaling is very slow, you better try changing video modes instead. |
831 It's very simple. See the <A HREF=#2.3.1.3.A>DGA section's modelines</A>, and | |
832 insert them into your XF86Config. | |
833 <UL> | |
834 <LI>If you have XFree86 4.x.x - use the <CODE>-vm</CODE> option. It will | |
835 change to a resolution your movie fits in. If it doesn't :</LI> | |
836 <LI>With XFree86 3.x.x - you have to cycle through available resolutions | |
837 with the <B>CTRL-ALT-plus</B> and <B>minus</B> keys.</LI> | |
838 </UL> | |
839 | |
840 If you can't find the modes you inserted, browse XFree86's output. Some | |
841 drivers can't use low pixelclocks that are needed for low resolution | |
842 video modes.</P> | |
843 | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
844 |
3224 | 845 <P><B><A NAME=2.3.1.14>2.3.1.14. Rage128 (Pro) / Radeon video overlay (radeon_vid)</A></B></P> |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
846 <P> |
3267 | 847 <b>radeon_vid</b> and <B>rage128_vid</B> provides support for the <b>BackEnd Scaler</b> on ATI <b>Radeon</b> and Rage128 (Pro) chipsets. |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
848 It was designed and introduced as analog of <a href="video.html#2.3.1.7">mga_vid</a> driver, so you can use it in the same way!<br> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
849 But main goal of this driver usage is <a href="video.html#2.3.1.12">VESA</a> driver.<br> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
850 Simply because VESA enables TV-out on ATI's card but Backend scaler is used after |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
851 mode switching. This implementation outputs video stream on both: <b>TV-screen</b> and <b>CRTC</b> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
852 display simultaneously. (It slightly degrades quality of video output but it's |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
853 much better than nothing). |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
854 Sorry! I couldn't find out any video overlay's related information |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
855 on ATI pages. (I planned to implement it through <b>int 10h</b> calls). But it was |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
856 very easy to implement this stuff through reading/writing Radeon ports. |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
857 <br><b>NOTE</b>: XXX_VID technology is perfectly undocumented and maybe in the |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
858 future this stuff will be fully rewritten. This is the first public release of |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
859 driver.</P> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
860 |
2958 | 861 <P><B>Installation</B></P> |
862 | |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
863 <P> |
2958 | 864 <UL> |
865 <LI> | |
3224 | 866 <CODE>cd drivers/radeon<BR> |
3268 | 867 make<BR> |
868 make install<BR> | |
869 make nodes</CODE></LI> | |
3267 | 870 <LI>add one of the following at the end of the <CODE>/etc/modules.conf</CODE> file :<BR> |
871 <CODE> alias char-major-178 radeon_vid</CODE><BR> | |
872 <CODE> alias char-major-178 rage128_vid</CODE></LI> | |
2958 | 873 <LI>run <CODE>depmod -a</CODE></LI> |
874 </UL> | |
875 </P> | |
876 | |
877 <P> | |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
878 <br><b>Usage:</b><BR> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
879 <CODE>mplayer -vo vesa:lvo:/dev/radeon_vid <your options> filename</CODE> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
880 </P> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
881 |
3267 | 882 <P>More examples (for hardware deinterlacing, etc) can be found |
883 <A HREF="../drivers/radeon/README">here</A>.</P> | |
884 | |
2958 | 885 <P><B>NOTE</B>: don't use any framebuffers when you plan to use this driver ! Use |
886 it only from textmode console.</P> | |
887 | |
3224 | 888 <P> |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
889 <b>Conclusion:</b> I know there are lot of lacks and bugs. So if you are able |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
890 to improve something then simply send me your patches. |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
891 </P> |
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
892 |
4199 | 893 <P><B><A NAME=2.3.1.15>2.3.1.15. VIDIX</A></B></P> |
894 | |
895 <P><B><I>WHAT IS VIDIX</I></B></P> | |
896 | |
897 <P>VIDIX is the abbreviation for <b>VID</b>eo <b>I</b>nterface for | |
898 *ni<b>X</b>.<BR> | |
899 VIDIX was designed and introduced as an interface for fast user-space drivers | |
900 providing <b>DGA</b> everywhere where it's possible (<b>unlike X11</b>). I | |
901 hope that these drivers will be as portable as X11 (<b>not only on | |
902 *nix</b>).<BR> | |
903 What is it: | |
904 <LI>It's a portable successor of mga_vid technology, but it's located in | |
905 user-space.</LI> | |
906 <LI>Unlike X11 it provides DGA everywhere it's possible</LI> | |
907 <LI>Unlike v4l it provides interface for video playback</LI> | |
908 <LI>Unlike linux's drivers it uses mathematics library</LI> | |
909 </P> | |
910 | |
911 <P>I can tell you in bold capital letters :<BR> | |
912 <b>VIDIX PROVIDES DIRECT GRAPHICS ACCESS TO BES YUV MEMORY.</b> | |
913 </P> | |
914 | |
915 <P><i>Well (it's in my todo) - implement DGA to MPEG2 decoder.</i></P> | |
916 | |
917 <P>This interface was designed as an attempt to fit existing video acceleration | |
918 interfaces (known as mga_vid, mga_yuv, radeon_vid) into a fixed scheme. It | |
919 provides highlevel interface to chips which are known as BES (BackEnd | |
920 scalers) or OV (Video Overlays). It doesn't provide lowlevel interface to | |
921 things which are known as graphics servers. (I don't want to compete with X11 | |
922 team in graphics mode switching). I.e. main goal of this interface is to | |
923 provide maximal speed of video playback but not putting video signal on | |
924 screen of your TV or on tape of your VCR. Although these things are also very | |
925 significant - it's perfectly other task. (However I guess that it would be | |
926 possible to implement something like mini-X (don't mix it with Minix ;) in | |
927 the future, if some number of volunteers will be found. | |
928 </P> | |
929 | |
930 <P><B><I>USAGE</I></B></P> | |
931 | |
932 <P> | |
933 <LI>You can use standalone video output driver: <CODE>-vo xvidix</CODE><BR> | |
934 This driver was developed as X11's front end to VIDIX technology. It | |
935 requires XServer and can work only under XServer.</LI> | |
936 <LI>You can use VIDIX subdevice which was applied to several video output | |
937 drivers, such as:<BR> | |
938 <CODE>-vo vesa:vidix</CODE> and <CODE>-vo fbdev:vidix</CODE></LI> | |
939 Indeed it doesn't matter which video output driver is used with <b>VIDIX</b>. | |
940 </P> | |
941 | |
942 <P><B><I>REQUIREMENTS</I></B></P> | |
943 | |
944 <P> | |
945 <LI>video card should be in graphics mode (I write <b>should</b> simply | |
946 because I tested it in text mode - it works but has awful output ;) Use | |
947 AAlib for that).<BR> | |
948 <I>Note: Everyone can try this trick by commenting out mode switching in | |
949 vo_vesa driver.</I></LI> | |
950 <LI><B>MPlayer</B>'s video output driver should know active video mode and be | |
951 able to tell to VIDIX subdevice some video characteristics of server.</LI> | |
952 I hope that probably every video output driver of <B>MPlayer</B> will | |
953 recognize <CODE>:vidix</CODE> subdevice. | |
954 </P> | |
955 | |
956 <P><B><I>USAGE METHODS</I></B></P> | |
957 | |
958 <P>When VIDIX is used as <b>subdevice</b> (<CODE>-vo vesa:xvidix</CODE>) then | |
959 video mode configuration is performed by video output device | |
960 (<b>vo_server</b> in short). Therefore you can pass into command line of | |
961 <B>MPlayer</B> the same keys as for vo_server. In addition it understands | |
962 <CODE>-double</CODE> key as globally visible parameter. (I recommend using | |
963 this key with VIDIX at least for ATI's card).<BR> | |
964 As for <CODE>-vo xvidix</CODE> : currently it recognizes the following | |
965 options: <CODE>-fs -zoom -x -y</CODE>.<BR> | |
966 </P> | |
967 | |
968 <P>Also you can specify VIDIX's driver directly as third subargument in command | |
969 line :<BR> | |
970 <BR> | |
971 <code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double | |
972 file.avi</code><BR> | |
973 or<BR> | |
974 <code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp | |
975 32 file.avi</code><BR> | |
976 <BR> | |
977 But it's dangerous, and you shouldn't do that. In this case given driver will | |
978 be forced and result is unpredictable (it may <b>freeze</b> your | |
979 computer). The Right Way is to use VIDIX without arguments to enable driver | |
980 autodetection. | |
981 </P> | |
982 | |
983 <P> | |
984 VIDIX is very new technology and it's extremely possible that on your system | |
985 (OS=abc CPU=xyz) it won't work. In this case only solution for you it's port | |
986 it (mainly libdha). But there is hope that it will work on those systems | |
987 where X11 does. | |
988 </P> | |
989 | |
990 <P>And the last <b>WARNING</b>: (un)fortunately you <b>MUST</b> have | |
991 <b>ROOT</b> privileges to use VIDIX due to direct hardware access. At least | |
992 set the <b>suid</b> bit on the <B>MPlayer</B> excecutable. | |
993 </P> | |
994 | |
2956
f6b51da0a50d
DOXized and applied Nick's radeon_vid patch. Nick, should I update
gabucino
parents:
2883
diff
changeset
|
995 |
2745 | 996 <P><B><A NAME=2.3.1.A>2.3.1.A. TV-out support</A></B></P> |
1612 | 997 |
2745 | 998 <P><B><A NAME=2.3.1.A.1>2.3.1.A.1. Matrox cards</A></B></P> |
1612 | 999 |
2486 | 1000 <P>Under Linux you have 2 methods to get TV out working :</P> |
2309 | 1001 |
1002 <P> | |
2486 | 1003 <UL> |
1004 <LI><B>XFree86</B>: using the driver and the HAL module, available from | |
1005 <A HREF="http://www.matrox.com">Matrox's site</A>. This will give you X on | |
1006 the TV.<BR> <B>This method doesn't give you accelerated playback</B> as | |
1007 under Windoze! The second head has only YUV framebuffer, the <I>BES</I> | |
1008 (Back End Scaler, the YUV scaler on G200/G400/G450/G550 cards) doesn't work | |
1009 on it! The windows driver somehow workarounds this, probably by using the | |
1010 3D engine to zoom, and the YUV framebuffer to display the zoomed | |
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2747
diff
changeset
|
1011 image. If you really want to use X, use the <CODE>-vo x11 -fs -zoom</CODE> |
2486 | 1012 options, but it will be <B>SLOW</B>, and has <B>Macrovision</B> copyprotection |
4177 | 1013 enabled (you can "workaround" Macrovision using |
1014 <A HREF="http://avifile.sourceforge.net/mgamacro.pl">this</A> perl | |
1015 script.</LI> | |
2486 | 1016 <LI><B>Framebuffer</B>: using the <B>matroxfb modules</B> in the 2.4 kernels. |
1017 2.2 kernels don't have the TVout feature in them, thus unusable for this. | |
3030 | 1018 You have to enable ALL matroxfb-specific feature during compilation (except |
1019 MultiHead), and compile them into <B>modules</B>! | |
2486 | 1020 <UL> |
1021 <LI> | |
1022 Enter <CODE>TVout/matroxset</CODE> and type <CODE>make</CODE>. Install | |
1023 <CODE>matroxset</CODE> into somewhere in your PATH.</LI> | |
1024 <LI> | |
1025 If you don't have <CODE>fbset</CODE> installed, enter | |
1026 <CODE>TVout/fbset</CODE> and type <CODE>make</CODE>. Install | |
1027 <CODE>fbset</CODE> into somewhere in your PATH.</LI> | |
1028 <LI> | |
1029 Then enter into the <CODE>TVout/</CODE> directory in the <B>MPlayer</B> | |
1030 source, and execute <CODE>./modules</CODE> as root. Your text-mode console | |
1031 will enter into framebuffer mode (no way back!).</LI> | |
1032 <LI>Next, run the <CODE>./matroxtv</CODE> script. This will present you | |
1033 to a very simple menu. Press <B>2</B> and <B>ENTER</B>. Now you should | |
1034 have the same picture on your monitor, and TV. The <B>3.</B> option | |
1035 will turn on independent display, but then you <B>can't use X</B>! If | |
3030 | 1036 the TV (PAL !) picture has some weird stripes on it, the script wasn't able to |
2486 | 1037 set the resolution correctly (to 640x512 by default). Use other menu |
1038 items randomly and it'll be OK :)</LI> | |
1039 </UL> | |
1040 | |
1041 <P> | |
1042 Yoh. Next task is to make the cursor on tty1 (or whatever) to disappear, | |
1043 and turn off screen blanking. Execute the following commands:</P> | |
1044 | |
1045 <P> | |
1046 <CODE>echo -e '\033[?25l'<BR> | |
1047 setterm -blank 0</CODE> | |
1048 </P> | |
1049 | |
1050 <P> | |
1051 You possibly want to put the above into a script, and also clear | |
1052 the screen.. To turn the cursor back :<BR><CODE>echo -e '\033[?25h'</CODE> | |
1053 </P> | |
1054 | |
1055 <P>Yeah kewl. Start movie playing with <CODE>mplayer -vo mga -fs -screenw 640 | |
1056 -screenh 512 <filename></CODE><BR> | |
1057 (if you use X, now change to matroxfb with for example CTRL-ALT-F1 !)<BR> | |
1058 Change 640x512 if you set the resolution to other..<BR> | |
1059 <B>Enjoy the ultra-fast ultra-featured Matrox TV output (better than Xv) !</B> | |
1060 </P> | |
1061 </LI> | |
1062 </LI> | |
1063 </UL> | |
2309 | 1064 </P> |
1065 | |
1066 | |
2745 | 1067 <P><B><A NAME=2.3.1.A.2>2.3.1.A.2. ATI cards</A></B></P> |
2206 | 1068 |
1069 <P> | |
1070 <b>A few word about ATI's TV-out:</b><BR> | |
1071 Currently ATI doesn't want to support any of its TV-out chips under Linux. | |
1072 Below is official answer from ATI Inc.: | |
1073 | |
1074 <P> | |
1075 <code> | |
1076 <i> | |
1077 <br>> Hello! | |
1078 <br>> | |
1079 <br>> On your pages you wrote that you support linux developers. | |
1080 <br>> Currently I participate with mplayer project (www.mplayerhq.hu) | |
1081 <br>> I'm interesting with enabling TV-out on Radeon VE chips during | |
1082 <br>> movie playback. I would be glad to add this feature to radeonfb driver | |
1083 <br>> (which can be found in CVS tree of mplayer project at main/drivers/radeon). | |
1084 <br>> Do I have a chance to get any official technical documenation? | |
1085 </i> | |
1086 <br>We will not provide TV out related documents due to macrovision concerns. | |
1087 <br>Also mpeg2 decoding is something that we MAY consider in the future but not | |
1088 <br>at this current time. This is again due to proprietary and 3rd party | |
1089 <br>information. | |
1090 </code> | |
1091 </P> | |
1092 | |
1093 <P>Pity isn't?</P> | |
1094 | |
1095 <P> | |
1096 <code> | |
1097 <B>Q:What is Macrovision?</B><BR> | |
1098 A:It's copy protection mechanism.</code> | |
1099 </P> | |
1100 | |
1101 <P>It means that if they open any TV-out related information then | |
1102 hackers will be able to disable copy protection on their chips. Therefore | |
1103 we have no chance to get working TV-out on ATI.</P> | |
1104 | |
1105 <P>What's status of ATI's tv-out chips under Linux: | |
4199 | 1106 <LI><b>ATI Mach64</b> has <i>ImpacTV</i> which is supported by <A HREF="http://gatos.sf.net">gatos</A>. |
1107 <LI><b>ASIC Radeon VIVO</b> has <i>Rage Theatre</i> which is supported by <A HREF="http://gatos.sf.net">gatos</A>. | |
3027 | 1108 <LI><b>Radeon VE</b> and <b>Rage PRO LT</b> have <i>ImpacTV2+</i> which is not supported under Linux. |
1109 But with <B>MPlayer</B> you get <B>full hardware acceleration</B> and <B>TV out</B> | |
1110 for Radeons ! | |
1111 Check <a href=#2.3.1.12>VESA driver</a> and <A HREF=#2.3.1.14>Radeon | |
1112 acceleration</A> sections.</P> | |
2206 | 1113 |
1114 <P> | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1115 Fortunately, owners of fast enough CPUs (Duron, Celeron2 and better) <b>can watch |
2745 | 1116 movies on their TV</b> through <a href=#2.3.1.12>VESA drivers</a>. |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1117 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1118 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1119 <P> |
2486 | 1120 I should say good words to ATI Inc. too:<br> |
1121 <b>they produce top quality BIOSes.</b> | |
2206 | 1122 </P> |
1123 | |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1124 <P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1125 <b>VESA drivers</b> don't use any hardware acceleration but it simulates |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1126 <b>DGA</b> through 64K window, which is configured through 32-bit mode |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1127 functions of BIOS. ATI cards have enough <b>fast video memory</b> (DIMM or DDR |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1128 chips with 64 - 128-bit access) so it's not bottleneck for them. There are no |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1129 limitations on which video mode can be displayed on your TV (like on other |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1130 cards) so you can use <b>any video mode</b> on your <b>TV</b> (from |
2471 | 1131 <b>320x200</b> up to <b>1024x768</b>).<br> |
2747 | 1132 From other side (it's known at least for <b>Radeons</b>) there is <b>DGA</b> |
1133 mode which is detected automatically and in this case you'll get comparable | |
1134 with <b>-vo dga</b> and <b>-vo fbdev</b> drivers speed.<br> | |
2486 | 1135 Only thing you need to do - <b>have TV connector plugged in before booting your |
2471 | 1136 PC</b> since video BIOS initializes itself only once during POST procedure. |
2448
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1137 </P> |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1138 |
1e56c3381d55
'vesa' vo driver added. By Nick Kurshev. (spellchecked, fixed, mplayerdoxized)
gabucino
parents:
2408
diff
changeset
|
1139 <P> |
2745 | 1140 For detail see <a href="video.html#2.3.1.12">VESA</a> sections of this |
2471 | 1141 documentation. |
2206 | 1142 </P> |
1143 | |
2472
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1144 |
3027 | 1145 <P><B><A NAME=2.3.1.A.3>2.3.1.A.3. Voodoo 3</A></B></P> |
2472
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1146 |
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1147 <P> |
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1148 Check <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">this URL</A>. |
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1149 </P> |
487f5bbb38ae
link to tomi ollila's voodoo3 tvout text. if he has interest to integrate
gabucino
parents:
2471
diff
changeset
|
1150 |
1612 | 1151 </BODY> |
1152 </HTML> |