MPlayer został przeportowany na wiele komercyjnych wariantów Uniksa. Jako, że środowiska programistyczne przeważnie różnią się od tych znajdowanych w wolnych Uniksach, być może będziesz musiał wprowadzić ręczne poprawki, aby program skompilował się poprawnie.
MPlayer powinien działać na Solarisie 2.6 lub nowszym. Możesz skorzystać ze sterownika dźwięku SUN'a podająć opcję -ao sun.
Na UltraSPARCach,
MPlayer korzysta z rozszerzenia
VIS (odpowiednik MMX), obecnie tylko w
libmpeg2
,
libavo
i
libavcodec
,
ale nie w mp3lib
. Możesz oglądać plik VOB na
procesorze z taktowaniem 400MHz. Będziesz potrzebował do tego biblioteki
mLib
.
Caveat:
mediaLib jest aktualnie wyłączone w domyślnej konfiguracji MPlayera, z powodu błędów. Użytkownicy SPARC-ów, którzy budują MPlayera z obsługą mediaLib informowali o delikatnym, zielonymi miganiu wideo kodowane i dekodowanego przez libavcodec. Możesz włączyć mediaLib, jeżeli chcesz używając:
$ ./configure --enable-mlib
Robisz to na własne ryzyko. Użytkownicy x86 powinni nigdy nie używać mediaLib, ponieważ w efekcie otrzymają kiepską wydajność MPlayera.
Aby zbudować pakiet, będziesz potrzebował GNU make (gmake, /opt/sfw/gmake), rdzenne make Solarisa nie zadziała. Typowy błąd jaki otrzymujesz, budując tym drugim zamiast GNU make, to:
% /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
W Solarisie przeznaczonym dla SPARC, potrzebujesz kompilatora GNU C/C++; nie ma znaczenia, czy jest on skonfigurowany z, czy bez GNU assemblera.
Na Solarisie x86, potrzebujesz GNU assemblera i kompilatora GNU C/C++, skonfigurowanego do używania GNU assemblera! Kod MPlayera, na platformie x86, w znaczący sposób korzysta z instrukcji MMX, SSE i 3DNOW!, które nie mogą być skompilowane przy pomocy assemblera Sun /usr/ccs/bin/as.
Skrypt configure stara się określić, jaki assembler
wywoływany jest przez komendę "gcc" (jeżeli próba zakończy się fiaskiem,
użyj opcji --as=/gdziekolwiek/zainstalowałeś/gnu-as
,
żeby określić gdzie skrypt configure może znaleźć GNU "as" w Twoim
systemie).
Rozwiązania najczęstszych problemów:
Błąd jaki wyświetli configure na Solarisie x86, używającym GCC bez GNU assemblera:
% configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1...
(Rozwiązanie: Zainstaluj i używaj gcc skonfigurowanego z opcją --with-as=gas)
Typowy błąd, jaki otrzymasz przy próbie budowy kompilatorem GNU C, który nie używa GNU as:
% gmake ... gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c Assembler: mplayer.c "(stdin)", line 3567 : Illegal mnemonic "(stdin)", line 3567 : Syntax error ... more "Illegal mnemonic" and "Syntax error" errors ...
MPlayer może się wysypać podczas dekodowania i kodowania wideo używających win32codecs:
... Trying to force audio codec driver family acm... Opening audio decoder: [acm] Win32/ACM decoders sysi86(SI86DSCR): Invalid argument Couldn't install fs segment, expect segfault MPlayer interrupted by signal 11 in module: init_audio_codec ...
Dzieje się tak z powodu zmian w sysi86() w Solaris 10 i wydaniach pre-Solaris Nevada b31. Zostało to naprawione w Solaris Nevada b32; jednak Sun nie przeniósł jeszcze poprawki do Solarisa 10. Projekt MPlayer poinformował o tym problemie Sun i łatka jest aktualnie wprowadzana do Solarisa 10. Więcej informacji o tym błędzie może zostać znaleziona na stronie: http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413.
Ze względu na błędy występujące w Solarisie 8, możesz nie być w stanie odtwarzać płyt DVD o pojemności większej niż 4 GB:
Sterownik sd(7D) dla Solarisa 8 x86 ma błąd ujawniający się przy próbie dostępu do bloku dyskowego >4GB urządzenia korzystającego z logicznego rozmiaru bloku !=DEV_BSIZE (np. nośnik CD-ROM i DVD). Ze względu na przepełnienie 32bitowych liczb całkowitych, odczytywany jest adres dysku modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22516). Ten problem nie występuje na Solarisie 8 przeznaczonym dla procesorów SPARC.
Podobny błąd występuje w kodzie systemu plików hsfs(7FS) (znanym jako ISO9660), hsfs może nie obsługiwać partycji/dysków większych niż 4GB, wszystkie dane są odczytywane z bloku modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22592). Problem może być rozwiązany przy pomocy łatki 109764-04 (sparc) / 109765-04 (x86).
Joe Page umieścił na swojej stronie domowej dokument HOWTO stworzony przez Martina Gansser'a dotyczący MPlayera na HP-UX. Korzystając z zawartych tam intrukcji program powinien się skompilować bez najmniejszych problemów. Poniższe informacje są zaczerpnięte z tego opracowania.
Do budowy będziesz potrzebował GCC 3.4.0, GNU make 3.80, i SDL 1.2.7 lub ich nowszych wersji. Kompilator HP cc nie wyprodukuje działającego programu, a wcześniejsze wersje GCC są pełne błędów. Aby moć skorzystać z OpenGL, musisz zainstalować biblioteki Mesa, wtedy sterowniki wyjścia video gl i gl2 powinny działać. Ich wydajność może być tragiczna, jednak zależne jest to od mocy obliczeniowej procesora. Dobrym zamiennikiem, raczej kiepskiego, systemu dźwiękowego HP-UX jest GNU esound.
Stwórz urządzenie DVD, przeskanuj magistralę SCSI komendą:
# ioscan -fn Class I H/W Path Driver S/W State H/W Type Description ... ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI target 3 8/16/5.2 tgt CLAIMED DEVICE disk 4 8/16/5.2.0 sdisk CLAIMED DEVICE PIONEER DVD-ROM DVD-305 /dev/dsk/c1t2d0 /dev/rdsk/c1t2d0 target 4 8/16/5.7 tgt CLAIMED DEVICE ctl 1 8/16/5.7.0 sctl CLAIMED DEVICE Initiator /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0 ...
Z rezultatów działania komendy możemy odczytać, że na adresie 2 SCSI znajduje się Pioneer DVD-ROM. Instancja karty dla ścieżki sprzętowej 8/16 to 1.
Stwórz dowiązanie surowego urządzenia do urządzenia DVD.
# ln -s /dev/rdsk/c<instancja magistrali SCSI>
t<ID docelowego SCSI>
d<LUN>
/dev/<urządzenie>
Przykład:
# ln -s /dev/rdsk/c1t2d0 /dev/dvd
Poniżej znajdują się rozwiązania kilku najczęstszych problemów:
Wysypanie się programu przy uruchamianiu z komunikatem błędu:
/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
Oznacza to, że funkcja .finite().
jest niedostępna
w standardowej bibliotece math HP-UX.
Zamiast niej dostępna jest .isfinite().
.
Rozwiązanie: Skorzystaj z najnowszego pliku składowego Mesa.
Wysypanie się programu przy odtwarzaniu z komunikatem:
/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
Rozwiązanie: Skorzystaj z opcji extralibdir skryptu configure --extra-ldflags="/usr/lib -lrt"
MPlayer powoduje błąd naruszenia ochrony pamięci (segfault) z komunikatem:
Pid 10166 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. Segmentation fault
Rozwiazanie:
Jądro HP-UX ma domyślnie zdefiniowany rozmiar stosu przeznaczonego na każdy
proces i jest to 8MB(?).(11.0 i nowsze łatki 10.20 pozwalają Ci zwiększyć
parametr maxssiz
do 350MB dla 32-bitowych programów).
Musisz rozszerzyć maxssiz
i przekompilować jądro
(i uruchomić ponownie komputer). Możesz wykorzystać do tego celu SAM. (Kiedy
w nim będziesz, sprawdź wartość maxdsiz
. Określa ona
maksymalny rozmiar danych, jaką program może użyć. To czy domyślne 64MB wystarczy
czy nie, zależy wyłącznie od wymagań Twoich aplikacji.)
MPlayer kompiluje się z powodzenie na AIX 5.1, 5.2 i 5.3, korzystając z GCC 3.3 lub wyższego. Budowanie MPlayer na AIX 4.3.3 i niższych nie było sprawdzane. Zaleca się, abyś budowal MPlayera używając GCC 3.4 lub wyższego lub jeżeli kompilujesz na POWER5 - GCC 4.0.
Upenij się, że używasz GNU make (/opt/freeware/bin/gmake), aby kompilować MPlayera, jako że możesz napotkać na problemy przy korzystaniu z /usr/ccs/bin/make.
Wykrywanie CPU jest ciągle dopracowywane. Poniższe architektury zostały przetestowane:
604e
POWER3
POWER4
Poniższe architektury nie były testowane, ale i tak powinny działać:
POWER
POWER2
POWER5
Dźwięk przez Ultimedia Services nie jest obsługiwany, jako że ta technologia została porzucona w AIX 5.1; dlatego też, jedynym wyjściem jest korzystanie ze sterowników AIX Open Sound System (OSS) tworzonych przez 4Front Technologies, znajdziesz je na http://www.opensound.com/aix.html . 4Front Technologies udostępnia swoje sterowniki OSS za darmo do niekomercyjnego zastosowania; jednakże, nie ma aktualnie sterowników wyjścia audio dla AIX 5.2 lub 5.3. Oznacza to, że AIX 5.2 i 5.3 nie potrafią aktualnie używać wyjścia audio MPlayera.
Rozwiązania częstych problemów:
Jeżeli otrzymujesz od configure taki komunikat błędu:
$ ./configure ... Checking for iconv program ... no No working iconv program found, use --charset=US-ASCII to continue anyway. Messages in the GTK-2 interface will be broken then.
To dzieje się tak dlatego, że AIX używa nie standardowych zestawów nazw znaków; dlatego też, konwersja wyjścia MPlayera do innego zestawu znaków (kodowania) nie jest aktualnie obsługiwana. Rozwiązaniem jest użycie:
$ ./configure --charset=noconv