MPlayer - Odtwarzacz filmów: http://www.mplayerhq.hu | ||
---|---|---|
Poprzedni | Rozdział 2. Mo¿liwo¶ci |
Jest WYSOCE wskazane, aby sprawdzić, czy rejestry MTRR są ustawione prawidłowo, ponieważ mogą dać duży wzrost wydajności.
Wykonaj cat /proc/mtrr:
--($:~)-- cat /proc/mtrr reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9 reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1
Widać mojego Matroksa G400 z 16MB pamięci. Wydałem tę komendę z XFree 4.x.x, które ustawiają MTRR automatycznie
Jeżeli nie zadziałało, trzeba to ustawić ręcznie. Przede wszystkim, musisz znaleźć adres bazowy. Możesz to zrobić na 3 sposoby:
z komunikatów startowych X11, na przykład:
(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 (--) SVGA: Linear framebuffer at 0xD8000000
z /proc/pci (użyj polecenia lspci -v ):
01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 Memory at d8000000 (32-bit, prefetchable)
z komunikatów sterownika mga_vid w jądrze (użyj dmesg):
mga_mem_base = d8000000
Znajdźmy teraz rozmiar pamięci. Jest to bardzo łatwe, po prostu zamień rozmiar RAMu na karcie graficznej na system szestnastkowy, lub użyj tej tabelki:
Znasz już adres bazowy i rozmiar pamięci. Ustawmy więc rejestry MTRR! Na przykład dla powyższej karty Matrox (base=0xd8000000) z 32MB RAMu (size=0x2000000) po prostu wykonaj:
echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr
Nie wszystkie procesory obsługują MTRR. Na przykład starsze K6-2 (jakieś 266MHz, stepping 0) nie obsługują MTRR, ale już stepping 12 tak. (cat /proc/cpuinfo aby sprawdzić).
W XFree86 4.0.2 lub nowszym możesz używać sprzętowego YUV poprzez
rozszerzenie XVideo. To tego używa opcja -vo xv
.
Ten sterownik obsługuje także regulację jasności/kontrastu/nasycenia/itp.
(chyba, że używasz starego, powolnego kodeka DirectShow DivX,
który to obsługuje wszędzie). Spójrz na stronę man.
Aby to zadziałało upewnij się, że:
Masz XFree86 4.0.2 lub nowsze (starsze nie majÄ… XVideo)
Twoja karta obsługuje przyśpieszanie sprzętowe (współczesne karty to mają)
X ładuje rozszerzenie XVideo, zwykle wygląda to tak:
(II) Loading extension XVideow logu /var/log/XFree86.0.log
Notatka: To ładuje tylko rozszerzenie XFree86. W dobrej instalacji jest to zawsze włączone i nie oznacza to że obsługa XVideo w karcie jest załadowana.
Twoja karta obsługuje Xv pod Linuksem. Aby sprawdzić, spróbuj xvinfo, wchodzące w skład dystrybucji XFree86. Powinno wyświetlić długi tekst podobny do tego:
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...)Karta musi obsługiwać formaty "YUY2 packed" i "YV12 planar", aby mogła być używana z MPlayerem.
I na koniec sprawdź, czy MPlayer został skompilowany z obsługą Xv. Wykonaj mplayer -vo help | grep xv . Jeżeli została zbudowana obsługa Xv to powinna się pojawić podobna linia:
xv X11/Xv
Starsze sterowniki 3dfx znane były z tego, że miały problemy z akceleracją XVideo.
Nie obsługiwały ani YUY2, ani YV12. Sprawdź czy masz XFree86 w wersji 4.2.0
lub nowszej. Działają one dobrze z YV12 i YUY2. Poprzednie wersje z 4.1.0
włącznie wywalały się na YV12.
Jeżeli napotkasz na dziwne działanie używając -vo xv
,
spróbuj SDL (także ma XVideo) i zobacz, czy to pomaga.
Dokładniejsze instrukcje są w sekcji SDL.
LUB, spróbuj NOWEGO sterownika -vo tdfxfb
! Zajrzyj do sekcji tdfxfb
S3 Savage3D powinny działać. Jeżeli masz Savage4 używaj XFree86 4.0.3 lub nowszego (gdyby występowały problemy z obrazem, spróbuj ustawić głębię kolorów na 16bpp). Jeżeli chodzi o S3 Virge: obsługuje ona Xv, ale jest bardzo wolna, więc najlepiej ją sprzedaj.
Notatka: Obecnie niejasne jest, które modele kart Savage nie mają sprzętowej obsługi YV12 i robią to programowo (co jest wolne). Jeżeli podejrzewasz o to swoją kartę, zdobądź nowsze sterowniki, lub grzecznie poproś o sterownik z obsługą MMX/3DNow! na grupie dyskusyjnej mplayer-users
nVidia nie zawsze jest dobrym wyborem dla Linuksa (wg nVidii to nieprawda)... Sterownik XFree86 o otwartych źródłach obsługuje większość tych kart, lecz w niektórych wypadkach będziesz zmuszony używać binarnych sterowników o zamkniętych źródłach (do pobrania ze strony nVidii). Jeżeli chcesz uzyskać przyspieszenie 3D to zawsze będziesz potrzebować tych sterowników.
karty Riva 128 nie obsługują XVideo nawet ze sterownikami nVidii :( Zażalenia składaj do nVidii.
Jednakże MPlayer zawiera sterownik VIDIX obsługujący większość kart nVidia. Obecnie znajduje się w stadium beta i ma pewne ograniczenia. Więcej informacji znajdziesz w sekcji nVidia.
Sterowniki GATOS (których powinieneś używać, chyba że masz Rage128 lub Radeon) mają standardowo włączone VSYNC. Znaczy to, że szybkość dekodowania (!) jest zsynchronizowana z (pionową) częstotliwością odświeżania obrazu. Jeżeli odtwarzanie wydaje Ci się powolne, spróbuj w jakiś sposób wyłączyć VSYNC, lub ustaw częstotliwość odświeżania na n*(fps filmu) Hz.
Radeon VE - jeżeli potrzebujesz X, używaj XFree86 4.2.0 lub nowszego. Brak obsługi wyjścia TV. Oczywiście w MPlayerze możesz uzyskać przyśpieszane wyświetlanie, z lub bez wyjścia TV. Żadne biblioteki czy X nie są do tego potrzebne. Poczytaj sekcję o VIDIX.
Te karty można znaleźć w wielu laptopach. Musisz używać XFree86 4.3.0 lub nowszych, lub sterowników Stefana Seyfried'a obsługujących Xv. Po prostu wybierz ten, który pasuje do Twojej wersji XFree86.
XFree86 4.3.0 zawierają obsługę Xv, lecz Bohdan Horst wysłał małą łatkę na źródła XFree86, która przyśpiesza operacje na buforze ramki (framebuffer) nawet czterokrotnie. Ta łatka została uwzględniona w XFree86 CVS i powinna znaleźć się w następnej wersji po 4.3.0
Aby umożliwić odtwarzanie zawartości o rozmiarach DVD zmodyfikuj swój XF86Config w następujący sposób:
Section "Device"
[...]
Driver "neomagic"
Option "OverlayMem" "829440"
[...]
EndSection
Jeżeli chcesz używać Xv z kartą trident (zakładając, że nie działa z 4.1.0), zainstaluj XFree 4.2.0. 4.2.0 obsługuje pełnoekranowe Xv w karcie Cyberblade XP.
AlternatywÄ… jest sterownik VIDIX dla karty Cyberblade/i1.
Jeżeli chcesz używać Xv z kartÄ
Poprzedni | Spis treści | |
Obs³ugiwane kodeki | Początek rozdziału |