mirror of https://github.com/mpv-player/mpv
207 lines
8.0 KiB
Plaintext
207 lines
8.0 KiB
Plaintext
|
|
Hardveres gyorsítás videokártyákhoz:
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* olvasd el a DOCS/MTRR file-t is!
|
|
|
|
A "hardveres gyorsítas" általában hardverileg támogatott YUV konverziót,
|
|
scale-t, bilinear filtering-et jelent. Linux alatt jónéhány módszerrel
|
|
lehet ezeket elérni:
|
|
|
|
I. Az XFree86 4.0.2 Xv (XVideo) kiterjesztése
|
|
II. OpenGL driverek, megfelelő glTexSubImage() támogatással (jelenleg csak
|
|
az Utah-GLX driverek)
|
|
III. Nativ kártyaspecifikus driverek, amik egyes kártyák különleges
|
|
képességeit használják
|
|
IV. DGA - Direct Graphic Access. Nincs YUV, scaling, de még mindig
|
|
gyorsabb, mint X11
|
|
V. Nem igazán gyorsítás, hanem...
|
|
|
|
Nos, lássuk őket részletesen:
|
|
|
|
De mielőtt elolvasnád ezt, olvasd el a DOCS/MTRR-t is, és nézd meg a
|
|
/proc/mtrr-edet. Hidd el, megéri! P3-on több, mint ötszörösére gyorsít!!!
|
|
|
|
I. Az XFree86 4.0.2 Xv (XVideo) kiterjesztése
|
|
Ezt használja a '-vo xv' opció.
|
|
|
|
Ha működésre akarod bírni, a következőket kell figyelembe venned:
|
|
|
|
1. XFree86 4.0.2 szükséges (korábbi verziókban nincs XVideo)
|
|
|
|
2. A kártyádnak támogatnia kell a hardveres gyorsítást (újabb kártyák közül
|
|
mind)
|
|
|
|
3. X-nek be kell töltenie az XVideo kiterjesztést, valahogy így néz ki:
|
|
(II) Loading extension XVideo
|
|
a /var/log/XFree86.0.log file-ban
|
|
MEGJ : ez csak azt jelzi, hogy az _X_ betöltötte. Egy normális rendszernél
|
|
ez alap, és nem jelenti, hogy a _kártyának_ van XVideo
|
|
támogatása!
|
|
|
|
4. A kártyád Linuxos drivere támogatja-e az Xv-t. Ezt az 'xvinfo'-val lehet
|
|
megnezni, ez pedig az XFree86 disztribúció része. Egy hosszú szöveget
|
|
kell hogy kiírjon, hasonló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átumokat, hogy
|
|
használható legyen MPlayer-rel.
|
|
|
|
Ha az xvinfo nem írja ki mindezt, de az XVideo kiterjesztés be van töltve,
|
|
és biztos vagy benne, hogy a kartyád tud YUV konverziót,
|
|
- 3dfx voodoo3/banshee tulajok töltsenek le új DRI-t a
|
|
http://dri.sourceforge.net címről
|
|
- S3 Savage4-esek töltsék le az XFree86 >= 4.0.3-at
|
|
- nVidia felhasználók adják el a kártyájukat... vagy nézzenek el az
|
|
nVidia site-jára
|
|
|
|
5. MPlayer-t 'xv' támogatással kell fordítani. 'configure'-nak ezt kell
|
|
kiírnia:
|
|
Checking for Xv ... yes
|
|
|
|
6. Ha ez mind OK, próbáld ki a '-vo xv' opciót. Működnie kell.
|
|
(ha nem teszi, küldj nekünk egy bugreportot! Lásd DOCS/BUGREPORTS.)
|
|
|
|
|
|
II. OpenGL driverek, megfelelő glTexSubImage() támogatással
|
|
|
|
Jelenleg csak a régebbi Utah-GLX driver (X 3.3.6) támogatja.
|
|
Lásd http://utah-glx.sourceforge.net
|
|
|
|
Az új X 4.x.x/DRI-nek és az nVidia drivereknek nincs használható
|
|
glTexSubImage-ük :(
|
|
|
|
|
|
III. Nativ kártyaspecifikus driverek
|
|
|
|
3 nativ driver van Linuxra:
|
|
1. Matrox G200/G400/G450 BES (Back-End Scaler) (mga_vid kernel driver)
|
|
Jobbára én (A'rpi) fejlesztem. Támogat hardveres VSYNC-et, triple
|
|
bufferinggel. Működik mind framebufferes konzolon, mind X alatt.
|
|
|
|
Fordítsd le a drivers/ könyvtárban lévő mga_vid.o-t (írd be: make)
|
|
hozd létre a /dev/mga_vid-et :
|
|
mknod /dev/mga_vid c 178 0
|
|
és töltsd be a drivert az 'insmod mga_vid.o' paranccsal. Ajánlott
|
|
leellenőrizni, hogy a memória méretét helyesen detektálta-e, a 'dmesg'
|
|
paranccsal. Ha rossz, használd az mga_ram_size opciót (először 'rmmod
|
|
mga_vid'), és add meg a kártyád memóriáját Mb-ban:
|
|
insmod mga_vid.o mga_ram_size=16
|
|
Ha azt akarod, hogy automatikusan töltődjön be, írd be a következő sort az
|
|
/etc/modules.conf végére :
|
|
alias char-major-178 mga_vid
|
|
Aztán futtasd :
|
|
depmod -a
|
|
|
|
Használata MPlayer-ből: (először fordítsd újra mga_vid supporttal...)
|
|
|
|
Használd az 'mga' outputot, ha framebuffer konzolod van (matroxfb): -vo mga
|
|
vagy az 'xmga'-t, ha X 3.3.6-od van: -vo xmga
|
|
|
|
Megj.: működik 4.0.2-es X alatt is, de az Xv driverrel nem szeretik egymást
|
|
ezért jobb kerülni mindkettő használatát. Általában az X újraindítása vagy
|
|
reboot szükséges, hogy az Xv újra működjön :(
|
|
|
|
Ha dual-head G400-ad van, és egy TV vagy második monitor van csatlakoztatva
|
|
a második head-re, akkor azt is használhatod: olvasd el a DOCS/TVout-G400
|
|
file-t. (elég nagy gányolás)
|
|
|
|
2. SiS 6326 YUV Framebuffer driver -> sis_vid kernel driver
|
|
A felülete elvileg kompatibilis az mga_vid-del, de ebbe nem kerültek
|
|
bele az mga_vid-es változtatások, úgyhogy valószínűleg nem működik.
|
|
Jelentkezők kellenek tesztelésre, javításra.
|
|
|
|
3. 3dfx (mely kártyák?) YUV+scaler support, a /dev/3dfx-el (tdfx.o driver?)
|
|
A /dev/3dfx kernel driver csak a 2.2.x kernelekhez létezik, és a Glide-dal
|
|
használatos. Nincs letesztelve MPlayer-rel, ezért nem támogatott.
|
|
Jelentkezők kellenek tesztelésre, javításra.
|
|
|
|
|
|
IV. Ha a kártyádnak nincs hardveres gyorsítása, még mindig meg tudod dobni
|
|
az fps-t a DGA driverrel:
|
|
|
|
1. Bizonyosodj meg, hogy az X betölti a DGA kiterjesztést:
|
|
(II) Loading extension XFree86-DGA
|
|
(amint látod, XFree86 4.0.x vagy újabb NAGYON AJANLOTT!)
|
|
2. MPlayer DGA drivere automatikusan detektálódik ./configure-kor, de ha
|
|
kell, a --enable-dga opcióval kényszerítheted is.
|
|
3. Ha a driver nem tud kisebb felbontásba váltani, játszadozz kicsit a
|
|
-vm (csak 3.3.x X-szel), -fs, -bpp, -zoom opciókkal és hátha találsz egy
|
|
alkalmas módot. Jelenleg nincs konverter.. :(
|
|
4. Legyél ROOT. DGA-nak root jogok kellenek, hogy közvetlen tudjon írni a
|
|
videomemóriába. Ha felhasználóként akarod futtatni, installáld MPlayer-t
|
|
SUID root-ként:
|
|
'chown root /usr/local/bin/mplayer'
|
|
'chmod 750 /usr/local/bin/mplayer'
|
|
'chmod +s /usr/local/bin/mplayer'
|
|
Így most menni fog user-ként is.
|
|
!!!! JÓL FIGYELJ !!!!
|
|
Ez egy ÓRIÁSI biztonsági lyuk! Soha ne csináld ezt egy szerveren, vagy
|
|
egy olyan gépen, amit több ember is elér, mert így root jogokat szerezhetnek
|
|
a suid MPlayer-en keresztül.
|
|
!!!! ÉN FIGYELMEZTETTELEK ... !!!!
|
|
5. Használd a '-vo dga' opciót, és már megy is! (remélhetőleg :)
|
|
6. Próbáld ki, hogy a '-vo sdl -sdl dga' opció működik-e nálad!
|
|
Sokkal gyorsabb!!!
|
|
|
|
Ha gyors géped van (pl. P3 800) próbáld ki az 'fsdga'-t, így teljesképernyős
|
|
mpeg lejátszást kapsz (software-es YUV->RGB scaling használatával):
|
|
mplayer -vo fsdga ...
|
|
|
|
|
|
V. Nem igazán gyorsítás, hanem...
|
|
|
|
a, Ha nincs X-ed...
|
|
...használd az SVGAlib outputot! Bizonyosodj meg róla, hogy nem használod
|
|
a -fs kapcsolót, mert ez itt a software-es scaler-t kapcsolja be, és ez
|
|
LASSÚÚÚÚ egyelőre, hacsak nincs egy igazán gyors procid (és/vagy MTRR?). :(
|
|
|
|
Természetesen fel kell installálnod az svgalib-et, és a fejlesztői
|
|
környezetét, hogy MPlayer le tudja fordítani az SVGAlib outputot
|
|
(automatikusan detektálja, de lehet kényszeríteni is), és ne felejtsd el
|
|
átszerkeszteni az /etc/vga/libvga.config-ot, hogy tükrözze a kártyád és
|
|
a monitorod tulajdonságait.
|
|
|
|
Érdemes továbbá kipróbálni az 'aalib' outputot ('-vo sdl -sdl aalib'),
|
|
igazán nagyszerű! :)
|
|
|
|
b, Framebuffer-t akarsz használni...
|
|
Annak eldöntése, hogy legyen-e framebuffer output, a ./configure alatt
|
|
dől el. Olvasd el a kernelforrásban található framebuffer dokumentációt
|
|
(Documentation/fb/*), ami leírja, hogy hogy kapcsold be stb. !
|
|
|
|
... de a kártyád nem támogatja a VBE 2.0 szabványt (régebbi ISA/PCI
|
|
kártyák, például az S3 Trio64), csak a VBE 1.2-et (vagy régebbit?) :
|
|
Nos, VESAfb még mindig használható, de a Linux bootolása előtt be kell
|
|
töltened a SciTech Display Doctor-t (régebben UniVBE). Használj DOS
|
|
bootlemezt, vagy valami! És ne felejtsd regisztrálni az UniVBE-det ;))
|
|
|
|
Megj.: az FBdev output videomód váltása _nem működik_ a VESA
|
|
framebuffer-rel, és ne is kérd, mivel ez nem az MPlayer korlátja!
|
|
|
|
Gabucino & A'rpi
|
|
|