5.3. Unix Commercial

MPlayer a été porté sur un grand nombre d'Unix commerciaux. Étant donné que les environements de dévelopement sur ces systèmes ont tendances à être différent de ceux trouvé sur les Unix libres, vous devrez peut-être faire quelques ajustements manuels pour que le build fonctionne.

5.3.1. Solaris

MPlayer devrait fonctionner sous Solaris 2.6 ou supérieur. Utilisez le pilote audio de SUN avec l'option -ao sun pour le son.

Sur les UltraSPARCs, MPlayer profite des avantages de leurs extensions VIS (équivalentes au MMX), actuellement uniquement dans libmpeg2, libvo et libavcodec, mais pas dans mp3lib. Vous pouvez regarder un fichier VOB sur un CPU à 400MHz. Vous aurez besoin d'avoir mLib installé.

Attention :

  • mediaLib est actuellement désactivé par défaut dans MPlayer pour cause d'inconsistance. Les utilisateurs SPARC qui ont construit MPlayer avec le support mediaLib ont reporté une forte coloration verte sur les vidéo encodées et décodées avec libavcodec. Si vous le désirez, vous pouvez activer mediaLib avec :

    ./configure --enable-mlib

    Ceci est à vos risques et périls. Les utilisateurs x86 ne doivent jamais utiliser mediaLib, puisque cela déteriorerait les performances de MPlayer de manière importante.

Pour construire ce paquetage vous aurez besoin de GNU make (gmake, /opt/sfw/gmake), le make natif de Solaris ne fonctionnera pas. Message d'erreur typique si vous utilisez le make de Solaris au lieu de celui de GNU :

% /usr/ccs/bin/make
make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen

Sur Solaris SPARC, vous aurez besoin du compilateur C/C++ GNU; cela n'a pas d'importance que le compilateur C/C++ GNU soit configuré avec ou sans l'assembleur GNU.

Sur Solaris x86,vous aurez besoin de l'assembleur GNU et du compilateur C/C++ GNU, configuré pour l'utilisation de l'assembleur GNU ! Le code de MPlayer sur la plateforme x86 fait un usage intensif des instructions MMX, SSE et 3DNOW! qui ne peuvent pas être assemblées en utilisant l'assembleur de Sun /usr/ccs/bin/as.

Le script configure essaie de trouver quel assembleur est utilisé par votre commande "gcc" (au cas ou l'autodétection échoue, utilisez l'option --as=/endroit/ou/vous/avez/installe/gnu-as pour indiquer au script configure où il peut trouver GNU "as" sur votre système).

Solutions aux problèmes courants :

  • Message d'erreur de configure sur un système Solaris x86 en utilisant GCC sans assembleur GNU :

       % configure
       ...
       Checking assembler (/usr/ccs/bin/as) ... , failed
       Please upgrade(downgrade) binutils to 2.10.1...
    

    (Solution : Installez et utilisez un gcc configuré avec --with-as=gas)

    Erreur typique obtenue en construisant avec un compilateur C GNU qui n'utilise pas 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 est susceptible de renvoyer une erreur de segmentation (segfault) à l'encodage ou au décodage de vidéos utilisant 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
    ...
    

    Ceci est du à une modification de sysi86() dans Solaris 10 et dans les versions antérieures à Solaris Nevada b31. Ceci a été réparé par Sun pour Solaris Nevada b32 mais pas encore pour Solaris 10. Le Projet MPlayer a averti Sun de ce problème. Un patch pour Solaris 10 est actuellement en développement. Plus d'information sont disponibles à l'adresse suivante : http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413.

  • A cause de bogues dans Solaris 8, il se peut que vous ne puissiez pas lire de disques DVD plus gros que 4 Go :

    • Le pilote sd(7D) de Solaris 8 x86 a un bogue quand on accède à un bloc disque >4Go sur un périphérique en utilisant une taille de bloc logique != DEV_BSIZE (c-a-d. CD-ROM et DVD). A cause d'un dépassement des entiers 32Bit, on accède à une adresse disque modulo 4 Go. (http://groups.yahoo.com/group/solarisonintel/message/22516). Ce problème n'existe pas sur la version SPARC de Solaris 8.

    • Un bogue similaire est présent dans le code du système de fichier hsfs(7FS) (alias ISO9660), il se peut que hsfs ne supporte pas les partitions/disques plus gros(ses) que 4GB, toutes les données sont accédées modulo 4Go. (http://groups.yahoo.com/group/solarisonintel/message/22592). Le problème hsfs peut être résolu en installant le patch 109764-04 (sparc) / 109765-04 (x86).

5.3.2. HP-UX

Joe Page héberge un HOWTO MPlayer sous HP-UX écrit par Martin Gansser sur sa page web. Avec ses instructions la compilation devrait fonctionner sans modifications. L'information qui suit a été récupéré depuis ce HOWTO.

Vous avez besoin de GCC 3.4.0 ou supérieur, GNU make 3.80 ou supérieur et SDL 1.2.7 ou supérieur. HP cc ne fournira pas un programme qui marche, les versions précedentes de GCC sont boguées. Pour la fonctionnalité OpenGL vous aurez besoin d'installer Mesa et les pilotes de sortie vidéo gl et gl2 devraient marcher, la vitesse pouvant en être très affecté, dépendamment de la vitesse du CPU. Une bonne alternative au pauvre système son natif de HP-UX est GNU esound.

Créer le périphérique DVD scanne le bus SCSI avec :

# 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
...

La sortie d'écran montre un lecteur DVD-ROM Pioneer à l'adresse SCSI 2. L'instance de la carte pour le chemin hardware 8/16 est 1.

Créer un lien depuis le prériphérique brut vers le périphérique DVD.

ln -s /dev/rdsk/c<SCSI bus instance>t<SCSI target ID>d<LUN> /dev/<device>

Exemple :

ln -s /dev/rdsk/c1t2d0 /dev/dvd

Ci-dessous sont exposées les solutions pour certains problèmes communs :

  • Plante au démarrage avec le message d'erreur suivant :

    /usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
    

    Cela signifie que la fonction .finite(). n'est pas disponible dans la librairie standard math de HP-UX. A la place, il y a .isfinite().. Solution : Utiliser le dernier fichier dépôt Mesa.

  • Plante à la lecture avec le message d'erreur suivant :

    /usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
    

    Solution : Utiliser l'option extralibdir lors de configure --extra-ldflags="/usr/lib -lrt"

  • MPlayer segfaults avec un message comme celui-ci :

    Pid 10166 received a SIGSEGV for stack growth failure.
    Possible causes : insufficient memory or swap space, or stack size exceeded maxssiz.
    Segmentation fault
    

    Solution : Le noyau HP-UX a une taille de pile par défaut de 8MO(?) par processus. (des patches 11.0 et de plus récent 10.20 vous permettront d'augmenter maxssiz jusqu'à 350MB pour les programmes 32-bit). Vous aurez besoin d'étendre maxssiz et de recompiler le noyau (et redémarrer). Vous pouvez utiliser SAM pour ce faire. (Pendant ce temps, aller voir le paramètre maxdsiz pour le montant maximum de données qu'un programme peut utiliser. Cela dépend de vos applications, si la valeur par défaut de 64MO est suffisante ou non.)

5.3.3. AIX

MPlayer se compile parfaitement sous AIX 5.1, 5.2 et 5.3, en utilisant GCC 3.3 ou plus. La compilation de MPlayer sous AIX 4.3.3 et inférieur n'a pas été testé. Il est hautement recommandé que vous compiliez MPlayer en utilisant GCC 3.4 ou plus, ou si vous êtes sous POWERS, GCC 4.0 est requis.

Assurez vous d'utiliser GNU make (/opt/freeware/bin/gmake) pour construire MPlayer, autrement vous rencontreriez des problèmes si vous utilisez /usr/ccs/bin/make.

La détection CPU est toujours un travail en cours. Les architectures suivantes ont été testé :

  • 604e

  • POWER3

  • POWER4

Les architectures suivantes n'ont pas été testé, mais devraient quand même marcher :

  • POWER

  • POWER2

  • POWER5

Le son à travers les Services Ultimedia n'est pas supporté, comme Ultimedia a été abondonné dans AIX 5.1; , la seule option est d'utiliser les pilotes AIX OSS de 4Front Technologies depuis http://www/opensound.com/aix/html. 4Front Technologies fourni librement les pilotes OSS pour AIX 5.1 pour un usage personnel et non-commercial. Cependant, il n'y a actuellement pas de pilote de son pour AIX 5.2 ou 5.3. Cela signifie qu'à l'heure actuelle MPlayer ne produit pas de son sous AIX 5.2 et 5.3.

Solutions aux problèmes courants :

  • Si vous rencontrez ce message d'erreur de 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.
    

    Ceci est du au fait que AIX utilise un jeu de caractère (charset) non standards. En conséquence, la conversion d'une sortie MPlayer en un autre character set et n'est pas suporté pour l'instant. La solution est d'utiliser :

    $ ./configure --charset=noconv
    

5.3.4. QNX

Vous aurez besoin de télécharger et installer SDL pour QNX. Puis de lancer MPlayer avec les options -vo sdl:driver=photon et -ao sdl:nto, cela devrait être rapide.

La sortie de -vo x11 sera encore plus lente que sous Linux, étant donné que QNX n'a qu'une émulation X, qui est très lente.