mirror of
https://github.com/mpv-player/mpv
synced 2025-02-17 21:27:08 +00:00
675 lines
25 KiB
HTML
675 lines
25 KiB
HTML
|
<HTML>
|
|||
|
|
|||
|
<BODY>
|
|||
|
|
|||
|
<PRE>
|
|||
|
|
|||
|
<A NAME=2.2.1>2.2.1. Video kimeneti eszk<7A>z<EFBFBD>k
|
|||
|
|
|||
|
<20>ltal<61>nos:
|
|||
|
- x11: X11, opcion<6F>lisan az SHM kiterjeszt<7A>ssel
|
|||
|
- xv: X11 az XVideo kiterjeszt<7A>s overlay-eivel (hardware t<>mogat<61>s)
|
|||
|
- gl: OpenGL renderel<65>, egyel<65>re csak ezekkel megy:
|
|||
|
- b<>rmely k<>rty<74>val, Utah-GLX-szel
|
|||
|
- Matrox k<>rty<74>k + X/DRI >=4.0.3
|
|||
|
- Radeon + X/DRI CVS
|
|||
|
- dga: X11 a DGA kiterjeszt<7A>ssel
|
|||
|
- fbdev:Megjelen<65>t<EFBFBD>s <20>ltal<61>nos framebuffereken
|
|||
|
- svga: Megjelen<65>t<EFBFBD>s SVGAlib-bel
|
|||
|
- sdl: 1.1.7 : software scaling
|
|||
|
1.1.8 : t<>mogatja a hardware-es gyors<72>t<EFBFBD>st XVideo-n kereszt<7A>l
|
|||
|
1.2.0 : aalib t<>mogat<61>s (haszn<7A>ld ink<6E>bb a -vo aa opci<63>t!)
|
|||
|
- ggi: SDL-hez hasonl<6E>
|
|||
|
- aa: sz<73>veges m<>d<EFBFBD> megjelen<65>t<EFBFBD>s AAlib-bel
|
|||
|
|
|||
|
K<>rtyaspecifikus:
|
|||
|
- mga: Matrox G200/G400 hardware-es YUV overlay az mga_vid-en kereszt<7A>l
|
|||
|
- xmga: Matrox G200/G400 overlay (mga_vid) X11 ablakban
|
|||
|
(Xv emul<75>ci<63> 3.3.x-es X-szel!)
|
|||
|
- syncfb: Matrox G400 YUV t<>mogat<61>s framebufferen (r<>gi, haszn<7A>lj mga/xmga-t)
|
|||
|
- 3dfx: Voodoo2/3 hardware YUV (/dev/3dfx) t<>mogat<61>s (nincs tesztelve!)
|
|||
|
|
|||
|
Egy<67>b:
|
|||
|
- png: output PNG file-okba (-z kapcsol<6F> a t<>m<EFBFBD>r<EFBFBD>t<EFBFBD>s m<>rt<72>k<EFBFBD>t <20>ll<6C>tja)
|
|||
|
- pgm: output PGM file-okba (tesztel<65>sre, vagy ffmpeg enk<6E>dol<6F>shoz)
|
|||
|
- md5: MD5sum t<>mogat<61>s (MPEG konformancia tesztekhez)
|
|||
|
- odivx:OpenDivX AVI file output (-br a bitrate-et <20>ll<6C>tja)
|
|||
|
- null: output a nagy semmibe (sebess<73>gtesztekhez)
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.1>2.2.1.1. MTRR
|
|||
|
|
|||
|
Nagyon aj<61>nlott az MTRR helyes be<62>ll<6C>t<EFBFBD>sa, mert minden esetben
|
|||
|
sebess<73>gn<67>veked<65>st eredm<64>nyez. El<45>sz<73>r a b<>zisc<73>met kell megkeresni.
|
|||
|
Erre van 3 m<>dszer<65>:
|
|||
|
|
|||
|
- az<61>X11 indul<75> <20>zeneteib<69>l, p<>ld<6C>ul :
|
|||
|
|
|||
|
(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
|
|||
|
(--) SVGA: Linear framebuffer at 0xD8000000
|
|||
|
|
|||
|
- a /proc/pci-b<>l (haszn<7A>ld az lspci -v parancsot):
|
|||
|
|
|||
|
01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
|
|||
|
Memory at d8000000 (32-bit, prefetchable)
|
|||
|
|
|||
|
- az mga_vid kernel meghajt<6A> <20>zeneteib<69>l (dmesg parancs):
|
|||
|
|
|||
|
mga_mem_base = d8000000
|
|||
|
|
|||
|
Ezut<75>n kell a mem<65>ria m<>rete is. Csak <20>t kell konvert<72>lni a video ram
|
|||
|
m<>ret<65>t hexadecim<69>lisba, pl <20>gy :
|
|||
|
|
|||
|
|
|||
|
1 MB 0x100000
|
|||
|
2 MB 0x200000
|
|||
|
4 MB 0x400000
|
|||
|
8 MB 0x800000
|
|||
|
16 MB 0x1000000
|
|||
|
32 MB 0x2000000
|
|||
|
|
|||
|
|
|||
|
M<>r tudjuk a c<>met <20>s a m<>retet, m<>r csak a be<62>ll<6C>t<EFBFBD>s hi<68>nyzik!
|
|||
|
P<>ld<6C>ul a fenti Matrox k<>rty<74>hoz (base=0xd8000000), 32mega mem<65>ri<72>val
|
|||
|
(size=0x2000000) ezt kell be<62>rni:
|
|||
|
|
|||
|
|
|||
|
echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr
|
|||
|
|
|||
|
|
|||
|
Nem minden CPU t<>mogatja az MTRR-eket. P<>ld<6C>ul r<>gebbi K6/2-k (266Mhz
|
|||
|
k<>r<EFBFBD>l, stepping 0) nem, de stepping 12-esek igen (cat /proc/cpuinfo
|
|||
|
megadja a stepping <20>rt<72>k<EFBFBD>t).
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.2>2.2.1.2. Xv
|
|||
|
|
|||
|
XFree86 4.0.2 vagy <20>jabb alatt haszn<7A>lhatod a k<>rty<74>d hardware-es YUV
|
|||
|
rutinjait, az XVideo kiterjeszt<7A>ssel. Ezt haszn<7A>lja a '-vo xv' opci<63>.
|
|||
|
Hogy m<>k<EFBFBD>dj<64>n, a k<>vetkez<65> felt<6C>teleknek kell teljes<65>lni<6E>k :
|
|||
|
- XFree86 4.0.2 vagy <20>jabb kell (el<65>z<EFBFBD> verzi<7A>kban nincs XVideo)
|
|||
|
- A k<>rty<74>dnak tudnia kell hardware-es gyors<72>t<EFBFBD>st (a mai k<>rty<74>k tudj<64>k)
|
|||
|
- Az X-nek be kell t<>ltenie az XVideo kiterjeszt<7A>st, valahogy <20>gy n<>z ki:
|
|||
|
|
|||
|
|
|||
|
(II) Loading extension XVideo
|
|||
|
|
|||
|
|
|||
|
a /var/log/XFree86.0.log file-ban.
|
|||
|
|
|||
|
|
|||
|
MEGJ : ez csak az XFree86 kiterjeszt<7A>s<EFBFBD>t t<>lti be. Egy rendes installban
|
|||
|
ez az alap, <20>s nem azt jelenti, hogy a _k<5F>rty<74>d_ XVideo t<>mogat<61>sa
|
|||
|
t<>lt<6C>d<EFBFBD>tt be!
|
|||
|
|
|||
|
- A k<>rty<74>d Linuxos drivere t<>mogatja-e az Xv-t. Ezt az 'xvinfo'-val lehet
|
|||
|
megnezni, ez pedig az XFree86 disztrib<69>ci<63> r<>sze. Egy hossz<73> sz<73>veget
|
|||
|
kell hogy ki<6B>rjon, hasonl<6E>t ehhez:
|
|||
|
|
|||
|
|
|||
|
X-Video Extension version 2.2
|
|||
|
screen #0
|
|||
|
Adaptor #0: "Savage Streams Engine"
|
|||
|
number of ports: 1
|
|||
|
port base: 43
|
|||
|
operations supported: PutImage
|
|||
|
supported visuals:
|
|||
|
depth 16, visualID 0x22
|
|||
|
depth 16, visualID 0x23
|
|||
|
number of attributes: 5
|
|||
|
(...)
|
|||
|
Number of image formats: 7
|
|||
|
id: 0x32595559 (YUY2)
|
|||
|
guid: 59555932-0000-0010-8000-00aa00389b71
|
|||
|
bits per pixel: 16
|
|||
|
number of planes: 1
|
|||
|
type: YUV (packed)
|
|||
|
id: 0x32315659 (YV12)
|
|||
|
guid: 59563132-0000-0010-8000-00aa00389b71
|
|||
|
bits per pixel: 12
|
|||
|
number of planes: 3
|
|||
|
type: YUV (planar)
|
|||
|
(...etc...)
|
|||
|
|
|||
|
|
|||
|
T<>mogatnia kell a YUY2 packed, YV12 planar pixelform<72>tumokat, hogy
|
|||
|
haszn<7A>lhat<61> legyen az <B>MPlayer</B>-rel.
|
|||
|
|
|||
|
- <20>s v<>g<EFBFBD>l, hogy az <B>MPlayer</B> tartalmazza-e az 'xv' t<>mogat<61>st.
|
|||
|
./configure ki<6B>rja.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.2.1>2.2.1.2.1. 3dfx k<>rty<74>k
|
|||
|
|
|||
|
R<>gebbi 3dfx meghajt<6A>knak probl<62>m<EFBFBD>i vannak az XVideo gyors<72>t<EFBFBD>ssal,
|
|||
|
nem t<>mogatt<74>k a YUY2-t vagy YV12-t, <20>s<EFBFBD>gytov<6F>bb. Ellen<65>rizd hogy az
|
|||
|
XFree86-od verzi<7A>ja 4.1.0 vagy <20>jabb-e, azok m<>r j<>k.
|
|||
|
Ha furcsa effekteket <20>szlelsz -vo xv-vel, pr<70>b<EFBFBD>ld ki az SDL meghajt<6A>t
|
|||
|
(annak is van XVideo t<>mogat<61>sa), az seg<65>thet. N<>zd meg a <A HREF="#2.2.1.4">2.2.1.4-es</A>
|
|||
|
fejezetet a r<>szletekhez.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.2.2>2.2.1.2.2. S3 k<>rty<74>k
|
|||
|
|
|||
|
S3 Savage3D-knek m<>k<EFBFBD>dni<6E>k kell, de Savage4-hez 4.0.3-as de ink<6E>bb <20>jabb
|
|||
|
XFree86 kell. S3<53>Virge-re vonatkoz<6F>lag.. add el.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.2.3>2.2.1.2.3. nVidia k<>rty<74>k
|
|||
|
|
|||
|
nVidia nem t<>l j<> v<>laszt<7A>s Linux al<61>.. A bin<69>ris nVidia meghajt<6A>t kell
|
|||
|
haszn<7A>lnod, ami az nVidia honlapj<70>r<EFBFBD>l t<>lthet<65> le. A szabv<62>ny X
|
|||
|
meghajt<6A> nem tartalmaz XVideo t<>mogat<61>st ezekhez a k<>rty<74>khoz, mivel
|
|||
|
az nVidia nem adja ki a specifik<69>ci<63>ikat.
|
|||
|
|
|||
|
- Riva128-as k<>rty<74>knak m<>g az nVidia meghajt<6A>val se lesz XVideo-juk :(
|
|||
|
Panaszkodj az nVidi<64>nak.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.2.4>2.2.1.2.4. ATI k<>rty<74>k
|
|||
|
|
|||
|
A GATOS meghajt<6A> alap<61>llapotban bekapcsolt VSYNC-et tartalmaz. Ez azt
|
|||
|
jelenti, hogy a dek<65>dol<6F>si sebess<73>g (!) hozz<7A> van szinkroniz<69>lva a monitor
|
|||
|
friss<73>t<EFBFBD>si frekvenci<63>j<EFBFBD>hoz. Ha a lej<65>tsz<73>s lass<73>nak t<>nik, pr<70>b<EFBFBD>ld meg
|
|||
|
valahogy kikapcsolni a VSYNC-et, vagy <20>ll<6C>tsd a k<>pfriss<73>t<EFBFBD>st n*(a film
|
|||
|
fps-e) Hz-re.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3>2.2.1.3. DGA
|
|||
|
|
|||
|
<A NAME=2.2.1.3.1>2.2.1.3.1. El<45>sz<73>
|
|||
|
|
|||
|
Ez a dokumentum n<>h<EFBFBD>ny sz<73>ban elmagyar<61>zza, hogy <20>ltal<61>ban v<>ve mi is az a
|
|||
|
DGA, <20>s mit tud az MPlayerben (<28>s mit nem).
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.2>2.2.1.3.2. Mi az a DGA<47>?
|
|||
|
|
|||
|
A DGA sz<73> a Direct Graphics Access r<>vid<69>t<EFBFBD>se, <20>s egy olyan m<>dszert takar,
|
|||
|
amivel a program az X szerver kiker<65>l<EFBFBD>s<EFBFBD>vel k<>zvetlen<65>l <20>rhat a framebuffer
|
|||
|
mem<65>ri<72>ba. Szaknyelven sz<73>lva ez a framebuffer mem<65>ri<72>nak a processz
|
|||
|
ter<65>let<65>re t<>rt<72>n<EFBFBD> lapoz<6F>s<EFBFBD>val t<>rt<72>nik. Ezt a kernel csak root jogosults<74>ggal
|
|||
|
engedi. Ez t<>rt<72>nhet root-k<>nt t<>rt<72>n<EFBFBD> bejelentkez<65>ssel, vagy a suid bit
|
|||
|
be<62>ll<6C>t<EFBFBD>s<EFBFBD>val az mplayer programon (NEM aj<61>nlott!).
|
|||
|
|
|||
|
A DGA-nak k<>t verzi<7A>ja van: a DGA1-et az XFree 3.X.X haszn<7A>lja, a DGA2
|
|||
|
pedig az XFree 4.0.1 <20>ta l<>tezik.
|
|||
|
|
|||
|
A DGA1 csak a fent le<6C>rt k<>zvetlen hozz<7A>f<EFBFBD>r<EFBFBD>st ny<6E>jtja. A felbont<6E>sv<73>lt<6C>shoz
|
|||
|
itt sz<73>ks<6B>g van az XVidMode kiterjeszt<7A>sre.
|
|||
|
|
|||
|
A DGA2 tartalmazza az XVidMode tud<75>s<EFBFBD>t, tov<6F>bb<62> enged<65>lyezi a sz<73>nm<6E>lys<79>g
|
|||
|
megv<67>ltoztat<61>s<EFBFBD>t. <20>gy lehets<74>ges, hogy egy 32 bites m<>lys<79>g<EFBFBD> X szervert
|
|||
|
<20>tv<74>ltsunk 15 bitesbe, vagy ford<72>tva.
|
|||
|
|
|||
|
A DGA-nak van n<>h<EFBFBD>ny h<>tr<74>nya. Valamelyest f<>gg a grafikus chipt<70>l <20>s ennek
|
|||
|
X-es driver<65>t<EFBFBD>l, ez<65>rt nem minden rendszeren m<>k<EFBFBD>dik ...
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.3>2.2.1.3.3. DGA t<>mogat<61>s telep<65>t<EFBFBD>se <B>MPlayer</B>-be
|
|||
|
|
|||
|
El<45>sz<73>r bizonyosodj meg arr<72>l, hogy az X bet<65>lti-e a DGA kiterjeszt<7A>st, l<>sd
|
|||
|
/var/log/XFree86.0.log :
|
|||
|
|
|||
|
|
|||
|
(II) Loading extension XFree86-DGA
|
|||
|
|
|||
|
|
|||
|
Amint l<>tod, XFree86 4.0.x vagy <20>jabb, NAGYON AJ<41>NLOTT!
|
|||
|
Az <B>MPlayer</B> DGA meghajt<6A>ja ./configure k<>zben automatikusan
|
|||
|
detekt<6B>l<EFBFBD>dik, de az --enable-dga opci<63>val meger<65>s<EFBFBD>theted.
|
|||
|
|
|||
|
Ha a meghajt<6A>
|
|||
|
If the driver couldn't switch to a smaller resolution, experiment with
|
|||
|
switches -vm (only with X 3.3.x), -fs, -bpp, -zoom to find a video mode that
|
|||
|
the movie fits in. There is no converter right now.. :(
|
|||
|
|
|||
|
Become ROOT. DGA needs root access to be able to write directly video memory.
|
|||
|
If you want to run it as user, then install <B>MPlayer</B> SUID root:
|
|||
|
|
|||
|
|
|||
|
chown root /usr/local/bin/mplayer
|
|||
|
chmod 750 /usr/local/bin/mplayer
|
|||
|
chmod +s /usr/local/bin/mplayer
|
|||
|
|
|||
|
|
|||
|
Now it works as a simple user, too.
|
|||
|
|
|||
|
|
|||
|
!!!! BUT STAY TUNED !!!!
|
|||
|
This is a BIG security risk! Never do this on a server or on a computer
|
|||
|
can be accessed by more people than only you because they can gain root
|
|||
|
privilegies through suid root mplayer.
|
|||
|
!!!! SO YOU HAVE BEEN WARNED ... !!!!
|
|||
|
|
|||
|
|
|||
|
Now use '-vo dga' option, and there you go! (hope so:)
|
|||
|
You should also try if the '-vo sdl:dga' option works for you! It's much
|
|||
|
faster!!!
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.4>2.2.1.3.4. Resolution switching
|
|||
|
|
|||
|
The DGA driver allows for switching the resolution of the output signal.
|
|||
|
This avoids the need for doing (slow) software scaling and at the same
|
|||
|
time provides a fullscreen image. Ideally it would switch to the exact
|
|||
|
resolution (except for honouring aspect ratio) of the video data, but the
|
|||
|
XServer only allows switching to resolutions predefined in
|
|||
|
/etc/X11/XF86Config (/etc/X11/XF86Config-4 for XFree 4.0.X respectively).
|
|||
|
Those are defined by so-called modelines and depend on the capabilites
|
|||
|
of your video hardware. The XServer scans this config file on startup and
|
|||
|
disables the modelines not suitable for your hardware. You can find
|
|||
|
out which modes survive with the X11 log file. It can be found at:
|
|||
|
/var/log/XFree86.0.log
|
|||
|
See appendix A for some sample modeline definitions.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.5>2.2.1.3.5. DGA & <B>MPlayer</B>
|
|||
|
|
|||
|
DGA is used in two places with <B>MPlayer</B>: The SDL driver can be made to make
|
|||
|
use of it (-vo sdl:dga) and within the DGA driver (-vo dga).
|
|||
|
The above said is true for both; in the following sections I'll explain
|
|||
|
how the DGA driver for <B>MPlayer</B> works.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.6>2.2.1.3.6. Features of the DGA driver
|
|||
|
|
|||
|
The DGA driver is invoked by specifying -vo dga at the command line.
|
|||
|
The default behaviour is to switch to a resolution matching the original
|
|||
|
resolution of the video as close as possible. It deliberately ignores the
|
|||
|
-vm and -fs switches (enabling of video mode switching and fullscreen) -
|
|||
|
it always tries to cover as much area of your screen as possible by switching
|
|||
|
the video mode, thus refraining to use a single additional cycle of your CPU
|
|||
|
to scale the image.
|
|||
|
If you don't like the mode it chooses you may force it to choose the mode
|
|||
|
matching closest the resolution you specify by -x and -y.
|
|||
|
By providing the -v option, the DGA driver will print, among a lot of other
|
|||
|
things, a list of all resolutions supported by your current XF86-Config
|
|||
|
file.
|
|||
|
Having DGA2 you may also force it to use a certain depth by using the -bpp
|
|||
|
option. Valid depths are 15, 16, 24 and 32. It depends on your hardware
|
|||
|
whether these depths are natively supported or if a (possibly slow)
|
|||
|
conversion has to be done.
|
|||
|
|
|||
|
If you should be lucky enough to have enough offscreen memory left to
|
|||
|
put a whole image there, the DGA driver will use doublebuffering, which
|
|||
|
results in much smoother movie replaying. It will tell you whether double-
|
|||
|
buffering is enabled or not.
|
|||
|
|
|||
|
Doublebuffering means that the next frame of your video is being drawn in
|
|||
|
some offscreen memory while the current frame is being displayed. When the
|
|||
|
next frame is ready, the graphics chip is just told the location in memory
|
|||
|
of the new frame and simply fetches the data to be displayed from there.
|
|||
|
In the meantime the other buffer in memory will be filled again with new
|
|||
|
video data.
|
|||
|
|
|||
|
Doublebuffering may be switched on by using the option -double and may be
|
|||
|
disabled with -nodouble. Current default option is to disable
|
|||
|
doublebuffering. When using the DGA driver, onscreen display (OSD) only
|
|||
|
works with doublebuffering enabled. However, enabling doublebuffering may
|
|||
|
result in a big speed penalty (on my K6-II+ 525 it used an additional 20% of
|
|||
|
CPU time!) depending on the implementation of DGA for your hardware.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.7>2.2.1.3.7. Speed issues
|
|||
|
|
|||
|
Generally spoken, DGA framebuffer access should be at least as fast as using
|
|||
|
the X11 driver with the additional benefit of getting a fullscreen image.
|
|||
|
The percentage speed values printed by mplayer have to be interpreted with
|
|||
|
some care, as for example, with the X11 driver they do not include the time
|
|||
|
used by the X-Server needed for the actual drawing. Hook a terminal to a
|
|||
|
serial line of your box and start top to see what is really going on in your
|
|||
|
box ...
|
|||
|
|
|||
|
Generally spoken, the speedup done by using DGA against 'normal' use of X11
|
|||
|
highly depends on your graphics card and how well the X-Server module for it
|
|||
|
is optimized.
|
|||
|
|
|||
|
If you have a slow system, better use 15 or 16bit depth since they require
|
|||
|
only half the memory bandwidth of a 32 bit display.
|
|||
|
|
|||
|
Using a depth of 24bit is even a good idea if your card natively just supports
|
|||
|
32 bit depth since it transfers 25% less data compared to the 32/32 mode.
|
|||
|
|
|||
|
I've seen some avi files already be replayed on a Pentium MMX 266. AMD K6-2
|
|||
|
CPUs might work at 400 MHZ and above.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.8>2.2.1.3.8. Known bugs
|
|||
|
|
|||
|
Well, according to some developpers of XFree, DGA is quite a beast. They
|
|||
|
tell you better not to use it. Its implementation is not always flawless
|
|||
|
with every chipset driver for XFree out there.
|
|||
|
|
|||
|
o with XFree 4.0.3 and nv.o there is a bug resulting in strange colors
|
|||
|
o ATI driver requires to switch mode back more than once after finishing
|
|||
|
using of DGA
|
|||
|
o some drivers simply fail to switch back to normal resolution (use
|
|||
|
Ctrl-Alt-Keypad +, - to switch back manually)
|
|||
|
o some drivers simply display strange colors
|
|||
|
o some drivers lie about the amount of memory they map into the process's
|
|||
|
address space, thus vo_dga won't use doublebuffering (SIS?)
|
|||
|
o some drivers seem to fail to report even a single valid mode. In this
|
|||
|
case the DGA driver will crash telling you about a nonsense mode of
|
|||
|
100000x100000 or the like ...
|
|||
|
o OSD only works with doublebuffering enabled
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.9>2.2.1.3.9. Future work
|
|||
|
|
|||
|
o use of the new X11 render interface for OSD
|
|||
|
o where is my TODO list ???? :-(((
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.A>2.2.1.3.A. Some modelines
|
|||
|
|
|||
|
Section "Modes"
|
|||
|
Identifier "Modes[0]"
|
|||
|
Modeline "800x600" 40 800 840 968 1056 600 601 605 628
|
|||
|
Modeline "712x600" 35.0 712 740 850 900 400 410 412 425
|
|||
|
Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
|
|||
|
Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan
|
|||
|
Modeline "352x288" 25.10 352 368 416 432 288 296 290 310
|
|||
|
Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan
|
|||
|
Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan
|
|||
|
EndSection
|
|||
|
|
|||
|
|
|||
|
These entries work fine with my Riva128 chip, using nv.o XServer driver
|
|||
|
module.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.3.B>2.2.1.3.B. Bug Reports
|
|||
|
|
|||
|
If you experience troubles with the DGA driver please feel free to file
|
|||
|
a bug report to me (e-mail address below). Please start mplayer with the
|
|||
|
-v option and include all lines in the bug report that start with vo_dga:
|
|||
|
|
|||
|
Please do also include the version of X11 you are using, the graphics card
|
|||
|
and your CPU type. The X11 driver module (defined in XF86-Config) might
|
|||
|
also help. Thanks!
|
|||
|
|
|||
|
|
|||
|
Acki (acki@acki-netz.de, www.acki-netz.de)
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.4>2.2.1.4. SDL
|
|||
|
|
|||
|
Here are some notes about SDL out in <B>MPlayer</B>.
|
|||
|
|
|||
|
There are several commandline switches for SDL:
|
|||
|
|
|||
|
-vo sdl:name specifies sdl video driver to use (ie. aalib,
|
|||
|
dga, x11)
|
|||
|
-ao sdl:name specifies sdl audio driver to use (ie. dsp,
|
|||
|
esd, arts)
|
|||
|
-noxv disables Xvideo hardware acceleration
|
|||
|
-forcexv tries to force Xvideo acceleration
|
|||
|
|
|||
|
SDL Keys:
|
|||
|
|
|||
|
F toggles fullscreen/windowed mode
|
|||
|
C cycles available fullscreen modes
|
|||
|
W/S mappings for * and / (mixer control)
|
|||
|
|
|||
|
KNOWN BUGS:
|
|||
|
- Keys pressed under sdl:aalib console driver repeat forever. (use -vo aa !)
|
|||
|
It's bug in SDL, I can't change it (tested with SDL 1.2.1).
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.5>2.2.1.5. SVGAlib
|
|||
|
|
|||
|
If you don't have X, you can use the SVGAlib target! Be sure not to use the
|
|||
|
-fs switch, since it toggles the usage of the software scaler, and it's
|
|||
|
SLOOOW now, unless you have a real fast CPU (and/or MTRR?). :(
|
|||
|
|
|||
|
Of course you'll have to install svgalib and its development package in
|
|||
|
order for <B>MPlayer</B> build its SVGAlib driver (autodetected, but can be
|
|||
|
forced), and don't forget to edit /etc/vga/libvga.config to suit your
|
|||
|
card & monitor.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.6>2.2.1.6. Framebuffer output (FBdev)
|
|||
|
|
|||
|
Whether to build the FBdev target is autodetected during ./configure .
|
|||
|
Read the framebuffer documentation in the kernel sources
|
|||
|
(Documentation/fb/*) for info on how to enable it, etc.. !
|
|||
|
|
|||
|
If your card doesn't support VBE 2.0 standard (older ISA/PCI
|
|||
|
cards, such as S3 Trio64), only VBE 1.2 (or older?) :
|
|||
|
Well, VESAfb is still available, but you'll have to load SciTech Display
|
|||
|
Doctor (formerly UniVBE) before booting Linux. Use a DOS boot disk or
|
|||
|
whatever. And don't forget to register your UniVBE ;))
|
|||
|
|
|||
|
The FBdev output takes some additional parameters above the others:
|
|||
|
|
|||
|
-fb specify the framebuffer device to use (/dev/fd0)
|
|||
|
-fbmode mode name to use (according to /etc/fb.modes)
|
|||
|
-fbmodeconfig config file of modes (default /etc/fb.modes)
|
|||
|
monitor_hfreq
|
|||
|
monitor_vfreq IMPORTANT values, see example.conf
|
|||
|
monitor_dotclock
|
|||
|
|
|||
|
If you want to change to a specific mode, then use
|
|||
|
|
|||
|
mplayer -vm -fbmode (NameOfMode) filename
|
|||
|
|
|||
|
-vm alone will choose the most suitable mode from /etc/fb.modes . Can be
|
|||
|
used together with -x and -y options too. The -flip option is supported only
|
|||
|
if the movie's pixel format matches the video mode's pixel format.
|
|||
|
Pay attention to the bpp value, fbdev driver tries to use the current,
|
|||
|
or if you specify the -bpp option, then that.
|
|||
|
-zoom option isn't supported (software scaling is slow). -fs option
|
|||
|
isn't supported. You can't use 8bpp (or less) modes.
|
|||
|
|
|||
|
NOTE: FBdev video mode changing _does not work_ with the VESA framebuffer,
|
|||
|
and don't ask for it, since it's not an <B>MPlayer</B> limitation.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.7>2.2.1.7. Matrox framebuffer (mga_vid)
|
|||
|
|
|||
|
This section is about the Matrox G200/G400/G450 BES (Back-End Scaler)
|
|||
|
support, the mga_vid kernel driver. It's active developed by me (A'rpi), and
|
|||
|
it has hardware VSYNC support with triple buffering. It works on both
|
|||
|
framebuffer console and under X.
|
|||
|
|
|||
|
To use it, you first have to compile mga_vid.o :
|
|||
|
|
|||
|
|
|||
|
cd drivers
|
|||
|
make
|
|||
|
|
|||
|
|
|||
|
Then create /dev/mga_vid device :
|
|||
|
|
|||
|
|
|||
|
mknod /dev/mga_vid c 178 0
|
|||
|
|
|||
|
|
|||
|
and load the driver with
|
|||
|
|
|||
|
|
|||
|
insmod mga_vid.o
|
|||
|
|
|||
|
|
|||
|
You should verify the memory size detection using the 'dmesg' command. If
|
|||
|
it's bad, use the mga_ram_size option (rmmod mga_vid first), specify card's
|
|||
|
memory size in MB:
|
|||
|
|
|||
|
|
|||
|
insmod mga_vid.o mga_ram_size=16
|
|||
|
|
|||
|
|
|||
|
To make it load/unload automatically when needed, insert the following line
|
|||
|
at the end of /etc/modules.conf :
|
|||
|
|
|||
|
|
|||
|
alias char-major-178 mga_vid
|
|||
|
|
|||
|
|
|||
|
Then run
|
|||
|
|
|||
|
|
|||
|
depmod -a
|
|||
|
|
|||
|
|
|||
|
Now you have to (re)compile <B>MPlayer</B>, ./configure will detect /dev/mga_vid
|
|||
|
and build the 'mga' driver. Using it from <B>MPlayer</B> goes by '-vo mga' if
|
|||
|
you have matroxfb console, or '-vo xmga' under XFree86 3.x.x or 4.x.x .
|
|||
|
|
|||
|
Note: '-vo xmga' works under XFree86 4.x.x, but it conflicts with the Xv
|
|||
|
driver, so avoid using both. If you messed up Xv with mga, try running
|
|||
|
<B>MPlayer</B> with '-vo mga' . It should fix Xv.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.8>2.2.1.8. SiS 6326 framebuffer (sis_vid)
|
|||
|
|
|||
|
SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver
|
|||
|
|
|||
|
Its interface should be compatible with the mga_vid, but the driver was not
|
|||
|
updated after the mga_vid changes, so it's outdated now. Volunteers
|
|||
|
needed to test it and bring the code up-to-date.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.9>2.2.1.9. 3dfx YUV support
|
|||
|
|
|||
|
3dfx has native YUV+scaler support, using /dev/3dfx (tdfx.o driver?)
|
|||
|
The /dev/3dfx kernel driver exists only for 2.2.x kernels, for use with
|
|||
|
Glide 2.x Linux ports. It's not tested with <B>MPlayer</B>, and so no more
|
|||
|
supported. Volunteers needed to test it and bring the code up-to-date.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.10>2.2.1.10. OpenGL output
|
|||
|
|
|||
|
<B>MPlayer</B> support displaying movies using OpenGL. Unfortunately, not all
|
|||
|
drivers support this ability. For example the Utah-GLX drivers
|
|||
|
(for XFree86 3.3.6) have it, with all cards.
|
|||
|
See <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> for details about how to install it.
|
|||
|
|
|||
|
XFree86(DRI) >= 4.0.3 supports it only with Matrox, and Radeon cards.
|
|||
|
See <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> for download, and installation instructions.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.11>2.2.1.11. AAlib - text mode displaying
|
|||
|
|
|||
|
<B>AAlib</B> is a library for displaying graphics in text mode, using powerful
|
|||
|
ASCII renderer. There are LOTS of programs already supporting it, like Doom,
|
|||
|
Quake, etc. MPlayer contains a very usable driver for it.
|
|||
|
If ./configure detects aalib installed, the aalib libvo driver will be built.
|
|||
|
|
|||
|
You can use some keys in the AA Window to change rendering options:
|
|||
|
1 : decrease contrast
|
|||
|
2 : increase contrast
|
|||
|
3 : decrease brightness
|
|||
|
4 : increase brightness
|
|||
|
5 : switch fast rendering on/off
|
|||
|
6 : set dithering mode (none, error distribution, floyd steinberg)
|
|||
|
7 : invert image
|
|||
|
a : toggles between aa and mplayer control)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The following command line options can be used:
|
|||
|
-aaosdcolor=V : change osd color
|
|||
|
-aasubcolor=V : change subtitle color
|
|||
|
where V can be: (0/normal, 1/dark, 2/bold, 3/boldfont, 4/reverse, 5/special)
|
|||
|
|
|||
|
AAlib itselves provides a large sum of options.
|
|||
|
Here are some important:
|
|||
|
-aadriver : set recommended aa driver (X11, curses, linux)
|
|||
|
-aaextended : use all 256 characters
|
|||
|
-aaeight : use eight bit ascii
|
|||
|
-aahelp : prints out all aalib options
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
NOTE: the rendering is very CPU intensive, especially when using AA-on-X
|
|||
|
(using aalib on X), and it's least CPU intensive on standard,
|
|||
|
non-framebuffer console. Use SVGATextMode to set up a big textmode,
|
|||
|
then enjoy! (secondary head Hercules cards rock :)) (anyone can enhance
|
|||
|
fbdev to do conversion/dithering to hgafb? Would be neat :)
|
|||
|
|
|||
|
Use the -framedrop option if your comp isn't fast enough to render all frames!
|
|||
|
|
|||
|
Playing on terminal you'll get better speed and quality using the linux driver, not
|
|||
|
curses (-aadriver linux). But therefore you need write access on /dev/vcsa<terminal>!
|
|||
|
That isn't autodetected by aalib, bu vo_aa tries to find the best mode.
|
|||
|
See http://aa-project.sourceforge.net/tune/ for further tuning issues.
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.A>2.2.1.A. TV-out support
|
|||
|
|
|||
|
|
|||
|
<A NAME=2.2.1.A.1>2.2.1.A.1. Matrox cards
|
|||
|
|
|||
|
<I> What I'd love to see in mplayer is the the same feature that I see in my
|
|||
|
windows box. When I start a movie in windows (in a window or in full screen)
|
|||
|
the movie is also redirected to the tv-out and I can also see it full screen
|
|||
|
on my tv. I love this feature and was wondering how hard it would be to add
|
|||
|
such a feature to mplayer.</I>
|
|||
|
|
|||
|
It's a driver limitation. BES (Back-End Scaler, it's the overlay generator
|
|||
|
and YUV scaling engine of G200/G400/G450 cards) works only with CRTC1.
|
|||
|
Normally, CRTC1 (textmode, every bpp gfx and BES) is routed to HEAD1,
|
|||
|
and CRTC2 (only 16/32bpp gfx) is routed to HEAD2 (TV-out).
|
|||
|
|
|||
|
Under linux, you have two choices to get TV-out working:
|
|||
|
|
|||
|
1. Using X 4.0.x + the HAL driver from matrox, so you'll get dual-head
|
|||
|
support, and you'll be able to redirect second output to the TV.
|
|||
|
Unfortunately it has Macrovision encryption enabled, so it will
|
|||
|
only work on directly-connected TV, no through VCR.
|
|||
|
Other problem is that Xv doesn't work on the second head.
|
|||
|
(I don't know how Windows solve it, maybe it swaps the CRTCs between
|
|||
|
the heads, or just uses YUV framebuffer of second DAC with some trick)
|
|||
|
|
|||
|
2. Using matroxfb with dual-head support enabled (2.4.x kernels).
|
|||
|
You'll be able to get a framebuffer console (using CRTC2, so it's
|
|||
|
slow), and TV-out (using CRTC1, with BES support).
|
|||
|
You have to forget X while using this kind of TV-out! :(
|
|||
|
|
|||
|
- Compile all the matrox-related things to modules in the kernel.
|
|||
|
(you MUST compile them to modules, at least I couldn't get them
|
|||
|
working built-in yet)
|
|||
|
[reboot to new kernel & install modules, but don't load them yet!]
|
|||
|
|
|||
|
cd TVout
|
|||
|
./compile.sh
|
|||
|
|
|||
|
- Run the 'modules' script from the TV-out directory of mplayer.
|
|||
|
It will switch your console to framebuffer.
|
|||
|
Change to tty1 (ALT+F1)!
|
|||
|
Now run the script 'independent', it will set up your tty's:
|
|||
|
tty 1,2: fb console, CRTC2, head 1 (monitor)
|
|||
|
tty 3,4,5...: framebuffer+BES, CRTC1, head 2 (TV-out)
|
|||
|
You should run the scripts TV-* and Mon-* to set up resolutions:
|
|||
|
change to tty1 (ALT+F1), and run Mon-* (one of them)
|
|||
|
change to tty3 (ALT+F3) and then back to tty1 (ALT+F1)
|
|||
|
(this change will select tty3 on /dev/fb1 - tricky)
|
|||
|
run TV-* (one of them)
|
|||
|
(now you'll get a console on your PAL TV - don't know about NTSC)
|
|||
|
|
|||
|
Now if you start mplayer (on tty1), the picture will show up on
|
|||
|
the tty3, so you'll see it on your TV or second monitor.
|
|||
|
|
|||
|
Yes, it is a bit 'hack' now. But I'm waiting for the marvel
|
|||
|
project to be finished, it will provide real TV-out drivers, I hope.
|
|||
|
|
|||
|
My current problem is that BES is working only with CRTC1. So picture
|
|||
|
will always shown up on head routed to CRTC1 (normaly the monitor),
|
|||
|
so i have to swap CRTC's, but this way your console will framebuffer
|
|||
|
(CRTC2 can't do text-mode) and a bit slow (no acceleration). :(
|
|||
|
|
|||
|
|
|||
|
<I> anyway i also just get monochrome output on the tv ...</I>
|
|||
|
Maybe you have NTSC TV? Or just didn't run one of TV-* scripts.
|
|||
|
|
|||
|
|
|||
|
</PRE>
|
|||
|
|
|||
|
</BODY>
|
|||
|
|
|||
|
</HTML>
|