mpv/DOCS/Hungarian/DGA

168 lines
6.5 KiB
Plaintext

Tartalom
~~~~~~~~
1. Előszó
2. Mi az a DGA
3. Felbontásváltás
4. DGA és MPlayer
5. A DGA driver képességei
6. Sebesség
7. Ismert hibák
8. Beepítendő dolgok
A. Néhány modeline
1. Előszó
~~~~~~~~~
Ez a dokumentum néhány szóban elmagyarázza, hogy általában véve mi is az a
DGA, és mit tud az MPlayerben (és mit nem).
2. Mi a DGA?
~~~~~~~~~~~~
A DGA szó a Direct Graphics Access rövidítése, és egy olyan módszert takar,
amivel a program az X szerver kikerülésével közvetlenül írhat a framebuffer
memóriába. Szaknyelven szólva ez a framebuffer memóriának a processz
területére történő lapozásával történik. Ezt a kernel csak root jogosultsággal
engedi. Ez történhet root-ként történő bejelentkezéssel, vagy a suid bit
beállításával az mplayer programon (NEM ajánlott!).
A DGA-nak két verziója van: a DGA1-et az XFree 3.X.X használja, a DGA2
pedig az XFree 4.0.1 óta létezik.
A DGA1 csak a fent leírt közvetlen hozzáférést nyújtja. A felbontásváltáshoz
itt szükség van az XVidMode kiterjesztésre.
A DGA2 tartalmazza az XVidMode tudását, továbbá engedélyezi a színmélység
megváltoztatását. Így lehetséges, hogy egy 32 bites mélységű X szervert
átváltsunk 15 bitesbe, vagy fordítva.
A DGA-nak van néhány hátránya. Valamelyest függ a grafikus chiptől és ennek
X-es driverétől, ezért nem minden rendszeren működik ...
3. Felbontásváltás
~~~~~~~~~~~~~~~~~~
A DGA driver képes felbontásváltásra. Ezzel kikerülhető a (lassú) szoftveres
scale, ugyanakkor teljesképernyős lesz a lejátszás. Ideális esetben pontosan
egyező felbontást választ, de csak azon videomódok közül tud választani,
ami az /etc/X11/XF86Config fileban szerepel. Ezeket úgynevezett modeline-okkal
definiáljuk, és a videokártya képességeitől függenek. Az X szerver ezt
a config file-t nézi át induláskor, és kikapcsolja mindazokat, amiket a
kártya nem tud. A fennmaradó módok az X11 log-jában találhatóak:
/var/log/XFree86.0.log
Az A függelékben néhány modeline példa található.
4. DGA és MPlayer
~~~~~~~~~~~~~~~~
Az MPlayer-ben két helyen lehet DGA-t használni: az SDL driverben
(-vo sdl -sdl dga), valamint a DGA driverben (-vo dga). A fentiek mindkettőre
igazak; a következő néhány részben elmagyarazom, hogy is működik az MPlayer
DGA drivere.
5. A DGA driver képességei
~~~~~~~~~~~~~~~~~~~~~~~~~~
A DGA driver meghívása a -vo dga parancssori opció megadásával történik.
Az alapértelmezett magatartás szerint a video méretéhez legközelebb eső
felbontásba vált. Figyelmen kívul hagyja a -vm es -fs kapcsolókat
(felbontásváltás és teljesképernyő) - mindig az adott felbontás lehető legjobb
kihasználására törekszik, így egy árva CPU ciklusnak sem kell fordítódnia a
kép nagyítására.
Ha nem tetszik a mód amit kiválasztott, megadhatod hogy az -x es -y által
kijelölt mérethez válasszon felbontást.
A -v opció megadásaval a DGA driver többek között kiírja az XF86Config
file-d által elérhető felbontásokat.
DGA2-vel megadhatod a használandó színmélységet is, a -bpp opcióval.
Használható: 15, 16, 24 es 32. A hardware-edtől függ, hogy ezek közül melyeket
használhatod, valamint hogy (lassú) konverzió lehetséges-e.
Ha szerencséd van és van még elég memóriád hogy a kép mégegyszer elférjen,
akkor a DGA driver doublebuffering-et fog alkalmazni, ami sokkal folyamatosabb
lejátszást eredményez.
A doublebuffering azt jelenti, hogy a video következő képkockájának kirajzolása
a videomemórián kívül történik, amíg az előző képkocka kirajzolódik. Amint elkészül,
a grafikus kártya megkapja ennek a memóriaterületnek a címét, és azt jeleníti meg ami
ott van. Mindeközben a másik memóriaterület újra feltöltődik.
A doublebuffering a -double opcióval kapcsolható be, és a -nodouble opcióval ki.
Jelenleg alapállapotban ki van kapcsolva. Ha a DGA drivert használod, csak
doublebuffering esetén lesz OSD-d. Viszont, ha bekapcsolod az nagy teljesítménycsökkenéssel
járhat (a K6-II+ 525 gépemen plusz 20% CPU idő!), függően a videokártyád DGA driverértől.
6. Sebesség
~~~~~~~~~~~
A DGA framebuffer használatával legalább olyan gyors képet kapunk mint X11-el,
plusz teljeskepérnyős mód. A százalékos CPU használati értekeket amiket
MPlayer kiír óvatosan kezeljuk, mert pl az X11 drivernél nem tartalmazzák
az X szerver által a megjelenítéshez használt időt. Kapcsolj egy terminalt
a soros portodra es indíts egy top-ot hogy lásd valójában mi történik.
Általánosan szólva a DGA sebességnövekedése az X11-hez képest erősen függ
a videokártyádtól, és annak driverétől.
Ha lassú a rendszered, jobb ha 15 vagy 16bpp-s színmélységet használsz,
mivel ezek a 32bites mód memóriaigényének csak a felét követelik.
A 24bites mélység használata akkor jó, ha a kártyád csak 32bites módot
támogat, mivel így 25%-al kevesebb adatnak kell átjutnia, a 32/32bites
módhoz képest.
Már láttam AVI fileokat lejátszódni Pentium MMX 266-on. AMD K6/2 CPU-k
400Mhz-en vagy afölött már jók.
7. Ismert hibák
~~~~~~~~~~~~~~~
Nos, néhány XFree fejlesztő szerint a DGA nagy szörnyűség. Szerintük nem
érdemes használni. Az implementációja nem minden driverben tökeletes.
o XFree 4.0.3-mal es nv.o driverrel van egy bug ami furcsa szineket eredményez
o az ATI driverrel egynél többször kell módot váltani miután a DGA használat
befejeződott
o némely driverek egyszerűen nem tudnak visszaváltani a normális felbontásba
(használd a Ctrl-Alt-Keypad +, - billentyűket)
o néhány driver furcsa szineket jelenít meg
o mások hazudnak arról hogy mennyi memoriát map-elnek be, így vo_dga
nem fog doublebuffering-et használni (SIS?)
o megint mások nem adnak vissza egyetlen videomódot se. Ebben az esetben
a DGA driver leáll, valami nonszensz üzenettel mint pl 100000x100000 vagy
ilyesmi ...
o az OSD csak doublebuffering-el működik
8. Beépítendő dolgok
~~~~~~~~~~~~~~~~~~~~
o az új X11 render interface használata OSD-hez
o hol van a TODO listám ???? :-((((
A. Néhány modeline
~~~~~~~~~~~~~~~~~~
Section "Modes"
Identifier "Modes[0]"
# 800x600 @ 60 Hz, 37.8 kHz hsync
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
Ezek a bejegyzések működnek az én Riva128-asomon, az nv.o driverrel.
Acki (acki@acki-netz.de, www.acki-netz.de) 17.5.2001