MPlayer wurde auf einige kommerzielle Unix-Varianten portiert. Seit die Entwicklungsumgebungen auf diesen Systemen dahin tendieren, verschieden von denen freier Unixes zu sein, musst du möglicherweise einige manuelle Anpassungen vornehmen, um das Build lauffähig zu bekommen.
MPlayer sollte auf Solaris 2.6 oder neuer funktionieren. Verwende den Audio-Treiber von SUN mit der Option -ao sun für den Sound.
Auf UltraSPARCs, profitiert
MPlayer von deren
VIS-Erweiterungen (äquivalent zu MMX), zur Zeit
nur in
libmpeg2
,
libvo
und libavcodec
, jedoch nicht in
mp3lib
. Du kannst dir eine VOB-Datei
auf einer 400MHz CPU ansehen. Dazu muss
mLib
installiert sein.
Vorbehalt:
mediaLib wird in MPlayer momentan aufgrund Fehlerhaftigkeit per Voreinstellung deaktiviert. SPARC-Benutzer, die MPlayer mit mediaLib-Unterstützung bauen, haben große grüne Farbstiche gemeldet bei Video, das mit libavcodec en- und decodiert wurde. Du kannst es, wenn du möchtest, aktivieren mit:
$ ./configure --enable-mlib
Du tust dies auf eigenes Risiko. x86-Benutzer sollten mediaLib niemals benutzen, da dies zu sehr schlechter Performance von MPlayer führt.
Um das Package zu erstellen, brauchst du GNU make (gmake, /opt/sfw/gmake), das native Solaris make wird nicht funktionieren. Ein typischer Fehler, den du bekommst, wenn du mit einem make von Solaris arbeitest statt mit einem GNU make:
% /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
Auf Solaris SPARC, brauchst du den GNU C/C++ Compiler; es spielt keine Rolle, ob der GNU C/C++ Compiler mit oder ohne dem GNU Assembler compiliert ist.
Auf Solaris x86 brauchst du den GNU Assembler und den GNU C/C++ Compiler so konfiguriert, dass er den GNU Assembler verwendet! Der MPlayer-Code auf der x86-Plattform macht starken Gebrauch von MMX-, SSE- und 3DNOW!-Instruktionen, die nicht compiliert werden können, wenn man den Assembler von Sun /usr/ccs/bin/as verwendet.
Das configure-Script versucht herauszufinden, welches
Assembler-Programm von deinem "gcc"-Befehl genutzt wird (falls die
automatische Erkennung fehlschlägt, nimm die Option
--as=/pfad/zum/installierten/gnu-as
,
um dem configure-Script zu zeigen, wo es GNU "as" auf
deinem System finden kann).
Lösung für gebräuchliche Probleme:
Fehlermeldung von configure auf einem Solaris x86 System, wenn man GCC ohne GNU Assembler anwendet:
% configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1...
(Lösung: Installiere und verwende einen gcc, konfiguriert mit --with-as=gas)
Ein typischer Fehler, den du bekommst, wenn du mit einem GNU C Compiler arbeitest, der GNU "as" nicht verwendet:
% 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 kann eine Schutzverletzung auslösen, wenn mit win32codecs decodiert und encodiert wird:
... 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 ...
Das liegt an einer Änderung an sysi86() in Solaris 10 und prä-Solaris Nevada b31-Releases. Bei Solaris Nevada b32 wurde dieser Fehler behoben; trotzdem, Sun muss diese Lösung noch immer nach Solaris 10 rückportieren. Das MPlayer-Projekt hat Sun auf das Problem hingewiesen, und ein Patch für Solaris 10 ist gerade in Vorbereitung. Weitere Informationen über diesen Fehler können hier gefunden werden: http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413.
Aufgrund von Bugs in Solaris 8 kann es dazu kommen, dass du keine DVD-Disks größer 4 GB abspielen kannst:
Der sd(7D)-Treiber auf Solaris 8 x86 hat einen Bug, wenn er auf einen Diskblock >4GB auf einem Gerät zugreift, das eine logische blocksize != DEV_BSIZE verwendet (z.B. CD-ROM- und DVD-Medien). Wegen eines 32Bit int Overflows wird auf eine Disk-Adresse modulo 4GB zugegriffen (http://groups.yahoo.com/group/solarisonintel/message/22516). Dieses Problem existiert nicht in der SPARC-Version von Solaris 8.
Ein ähnlicher Bug is präsent im Dateisystem-Code (AKA ISO9660) von hsfs(7FS), hsfs unterstützt keine Partitionen/Disks größer als 4GB, auf alle Daten wird modulo 4GB zugegriffen (http://groups.yahoo.com/group/solarisonintel/message/22592). Dieses hsfs-Problem kann durch die Installation von Patch 109764-04 (sparc) / 109765-04 (x86) gefixt werden.
Du kannst entweder versuchen, das GNU-Installationsprogramm zu installieren und dann (falls du es nicht in deinen globalen Path gelegt hast) auf den Standort zeigen mit:
./configure --with-install=/path/and/name/of/install
Oder du kannst die mit IRIX 6.5 gelieferte Standard-Installation verwenden, falls du das Makefile ein bisschen von Hand editieren willst. Ändere die folgende Zeile von:
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1
zu:
$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/
und fahre dann fort mit Compilierung und Installation.
Joe Page unterhält ein detailliertes HP-UX MPlayer-HOWTO von Martin Gansser auf seiner Homepage. Mit diesen Instruktionen sollte das bauen hervorragend funktionieren. Die folgende Information wurde aus diesem HOWTO übernommen.
Du benötigst GCC 3.4.0 oder neuer, GNU make 3.80 oder neuer und SDL 1.2.7 oder neuer. HP cc wird kein lauffähiges Programm produzieren, frühere GCC-Versionen sind fehlerhaft. Für OpenGL-Funktionalität musst du Mesa installieren, und die gl- und gl2-Video-Ausgabetreiber sollten funktionieren, wenngleich die Geschwindigkeit sehr mies sein kann, abhängig von der CPU-Geschwindigkeit. Ein guter Ersatz für das eher armselige, native HP-UX-Soundsystem ist GNU esound.
Erzeuge das DVD-Gerät, scanne den SCSI-Bus mit:
# 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 ...
Die Bildschirmausgabe zeigt ein Pioneer DVD-ROM an SCSI-Adresse 2. Die Karteninstanz für den Hardwarepfad 8/16 ist 1.
Erstelle einen Link von deinem Originalgerät zum DVD-Gerät.
# ln -s /dev/rdsk/c<SCSI-Bus-Instanz>
t<SCSI Ziel-ID>
d<LUN>
/dev/<geraet>
Beispiel:
# ln -s /dev/rdsk/c1t2d0 /dev/dvd
Unten stehen lösungen für einige verbreitete Probleme:
Absturz beim Start mit folgender Fehlermeldung:
/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
Dies bedeutet, dass die Funktion .finite().
nicht
in der Standard-Bibliothek HP-UX math zur Verfügung steht.
Statt dessen gibt es .isfinite().
.
Lösung: Benutze die neueste Mesa-Depotdatei.
Absturz beim Playback mit folgender Fehlermeldung:
/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
Lösung: Benutze die Option extralibdir von configure --with-extralibdir="/usr/lib -lrt"
MPlayer produziert eine Schutzverletzung (segfault) mit einer Meldung wie dieser:
Pid 10166 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. Segmentation fault
Lösung:
Der HP-UX-Kernel hat eine Standard-Stackgröße von 8MB(?) pro Prozess. (11.0- und
neuere 10.20-Patches lassen dich maxssiz
bis auf
350MB für 32bit-Programme erhöhen). Du musst maxssiz
erweitern und den Kernel recompilieren (und neu starten). Dazu kannst du SAM
verwenden. (Überprüfe während des Neustarts den
maxdsiz
-Parameter für die maximale Anzahl Daten,
die ein Programm nutzen darf. Er hängt von deiner Anwendung ab, ob der
Standard von 64MB ausreicht oder nicht.)
MPlayer wird erfolgreich auf AIX 5.1, 5.2 und 5.3 erzeugt, verwendet man GCC 3.3 oder höher. Das Erzeugen von MPlayer auf AIX 4.3.3 und darunter wurde nicht getestet. Es wird dringend empfohlen, MPlayer mit GCC 3.4 oder höher zu erzeugen, oder es wird, falls du auf POWER5 arbeitest, GCC 4.0 benötigt.
Stelle sicher, dass du GNU make (/opt/freeware/bin/gmake) zum bauen von MPlayer nutzt, da du auf Probleme stossen wirst, wenn du /usr/ccs/bin/make anwendest.
Die CPU-Erkennung ist noch in Arbeit. Die folgenden Architekturen wurden getestet:
604e
POWER3
POWER4
Folgende Architekturen wurden nicht getestet, sollten jedoch trotzdem funktionieren:
POWER
POWER2
POWER5
Sound über die Ultimedia Services wird nicht unterstützt, da Ultimedia in AIX 5.1 weggelassen wurde; deshalb ist die einzige Option, die Treiber des AIX Open Sound System (OSS) von 4Front Technologies auf http://www.opensound.com/aix.html zu verwenden. 4Front Technologies stellt die OSS-Treiber für AIX 5.1 für den nicht-kommerziellen Gebrauch frei zur Verfügung; wie auch immer, momentan gibt es keine Soundausgabetreiber für AIX 5.2 oder 5.3. Dies bedeutet, dass AIX 5.2 und 5.3 momentan keine MPlayer-Tonausgabe beherrschen.
Lösung für gebräuchliche Probleme:
Wenn du folgende Fehlermeldung von configure erhältst:
$ ./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.
Das liegt daran, dass AIX Namen für Zeichensätze benutzt, die nicht dem Standard entsprechen; daher wird die Konvertierung von MPlayer-Ausgaben zu anderen Zeichensätzen momentan nicht unterstützt. Die Lösung besteht darin, folgendes zu tun:
$ ./configure --charset=noconv