MPlayer has been ported to a number of commercial Unix variants. Since the development environments on these systems tend to be different from those found on free Unixes, you may have to make some manual adjustments to make the build work.
MPlayer should work on Solaris 2.6 or newer. Use the SUN audio driver with the -ao sun option for sound.
MPlayer takes advantage of their
(equivalent to MMX), currently only in
libavcodec, but not in
mp3lib. You can watch a VOB file
on a 400MHz CPU. You'll need
mediaLib is currently disabled by default in MPlayer because of brokenness. SPARC users who build MPlayer with mediaLib support have reported a thick, green-tint on video encoded and decoded with libavcodec. You may enable it if you wish with:
You do this at your own risk. x86 users should never use mediaLib, as this will result in very poor MPlayer performance.
To build the package you will need GNU make (gmake, /opt/sfw/gmake), native Solaris make will not work. Typical error you get when building with Solaris' make instead of GNU make:
% /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter if GNU C/C++ compiler is configured with or without the GNU assembler.
On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler, configured to use the GNU assembler! The MPlayer code on the x86 platform makes heavy use of MMX, SSE and 3DNOW! instructions that cannot be compiled using Sun's assembler /usr/ccs/bin/as.
The configure script tries to find out, which assembler
program is used by your "gcc" command (in case the autodetection
fails, use the
option to tell the configure script where it can find GNU
"as" on your system).
Solutions to common problems:
Error message from configure on a Solaris x86 system using GCC without GNU assembler:
% configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1...
(Solution: Install and use a gcc configured with --with-as=gas)
Typical error you get when building with a GNU C compiler that does not use 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 may segfault when decoding and encoding video that uses the 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 ...
This is because of a change to sysi86() in Solaris 10 and pre-Solaris Nevada b31 releases. This has been fixed in Solaris Nevada b32; however, Sun has yet to backport the fix to Solaris 10. The MPlayer Project has made Sun aware of the problem and a patch is currently in progress for Solaris 10. More information about this bug can be found at: http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413.
Due to bugs in Solaris 8, you may not be able to play DVD discs larger than 4 GB:
The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk block >4GB on a device using a logical blocksize != DEV_BSIZE (i.e. CD-ROM and DVD media). Due to a 32Bit int overflow, a disk address modulo 4GB is accessed (http://groups.yahoo.com/group/solarisonintel/message/22516). This problem does not exist in the SPARC version of Solaris 8.
A similar bug is present in the hsfs(7FS) filesystem code (AKA ISO9660), hsfs may not not support partitions/disks larger than 4GB, all data is accessed modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22592). The hsfs problem can be fixed by installing patch 109764-04 (sparc) / 109765-04 (x86).
You can either try to install the GNU install program, and (if you did not put it in your global path) then point to the location with:
Or you can use the default install delivered with IRIX 6.5 in which case you will have to edit the Makefile by hand a little bit. Change the line:
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1
$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/
and then go on with building and installing.
Joe Page hosts a detailed HP-UX MPlayer HOWTO by Martin Gansser on his homepage. With these instructions the build should work out of the box. The following information is taken from this HOWTO.
You need GCC 3.4.0 or later, GNU make 3.80 or later and SDL 1.2.7 or later. HP cc will not produce a working program, prior GCC versions are buggy. For OpenGL functionality you need to install Mesa and the gl and gl2 video output drivers should work, speed may be very bad, depending on the CPU speed, though. A good replacement for the rather poor native HP-UX sound system is GNU esound.
Create the DVD device scan the SCSI bus with:
# 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 ...
The screen output shows a Pioneer DVD-ROM at SCSI address 2. The card instance for hardware path 8/16 is 1.
Create a link from the raw device to the DVD device.
ln -s /dev/rdsk/c
<SCSI bus instance>t
<SCSI target ID>d
ln -s /dev/rdsk/c1t2d0 /dev/dvd
Below are solutions for some common problems:
Crash at Start with the following error message:
/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
This means that the function
.finite(). is not
available in the standard HP-UX math library.
Instead there is
Solution: Use the latest Mesa depot file.
Crash at playback with the following error message:
/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
Solution: Use the extralibdir option of configure --with-extralibdir="/usr/lib -lrt"
MPlayer segfaults with a message like this:
Pid 10166 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. Segmentation fault
The HP-UX kernel has a default stack size of 8MB(?) per process.(11.0 and
newer 10.20 patches let you increase
maxssiz up to
350MB for 32-bit programs). You need to extend
maxssiz and recompile the kernel (and reboot).
You can use SAM to do this.
(While at it, check out the
maxdsiz parameter for
the maximum amount of data a program can use.
It depends on your applications, if the default of 64MB is enough or not.)
MPlayer builds successfully on AIX 5.1, 5.2, and 5.3, using GCC 3.3 or greater. Building MPlayer on AIX 4.3.3 and below is untested. It is highly recommended that you build MPlayer using GCC 3.4 or greater, or if you are building on POWER5, GCC 4.0 is required.
Ensure that you are using GNU make (/opt/freeware/bin/gmake) to build MPlayer, as you will encounter problems if you use /usr/ccs/bin/make.
CPU detection is still a work in progress. The following architectures have been tested:
The following architectures are untested, but should still work:
Sound via the Ultimedia Services is not supported, as Ultimedia was dropped in AIX 5.1; therefore, the only option is to use the AIX Open Sound System (OSS) drivers from 4Front Technologies at http://www.opensound.com/aix.html. 4Front Technologies freely provides OSS drivers for AIX 5.1 for non-commercial use; however, there are currently no sound output drivers for AIX 5.2 or 5.3. This means AIX 5.2 and 5.3 are not capable of MPlayer audio output, presently.
Solutions to common problems:
If you encounter this error message from ./configure:
$ ./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.
This is because AIX uses non-standard character set names; therefore, converting MPlayer output to another character set is currently not supported. The solution is to use:
$ ./configure --charset=noconv