annotate DOCS/video.html @ 1624:2eedc348e92a

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