Autour de la compilation d’Enna

Hello,

je tiens juste à donner quelques précisions pour les personnes qui désirent compiler Enna, et donc également les bibliothèques rattachées. Cet article n’est pas un tutoriel. Si vous ne savez pas comment vous y prendre, il vaut mieux rechercher l’information ailleurs.

Faites aussi un tour à ces adresses (en anglais / in english) :
http://enna.geexbox.org/developers.html
http://captainigloo.wordpress.com/2009/12/21/enna-compilation-on-ubuntu-3/

Evas

Comme vous le savez, Enna se base sur les EFL. Je vous conseil fortement d’utiliser les snapshots ne serait-ce au moins pour ne pas que vous reportiez des “bugs” juste parce que les APIs des EFL auraient trop évoluées. En partant du principe que vous savez compiler les EFL, je vous rappel de ne pas oublier le flag ––enable–gl–x11 avec Evas, si vous avez l’accélération 3D avec votre PC. Les performances graphiques d’Enna sont nettement meilleurs. Toujours concernant Evas, il y a une petite modification dans les sources qui vous permettra d’avoir des textures anti-aliasées. Dans le cas contraire, Enna est plus beau (mais plus lent) en X11 Software plutôt qu’en OpenGL. Il faut tout simplement modifier les définitions GL_NEAREST en GL_LINEAR dans toutes les sources.

cd ~/e17_src/evas
sed -i "s/GL_NEAREST/GL_LINEAR/g" \
    `grep -Rl GL_NEAREST . | grep "\.c$"`

Libgeexbox

Libgeexbox est une manière naïve de parler de toutes les bibliothèques que nous développons en parallèle à la distribution et à Enna. Depuis quelques temps, des releases sont apparues pour libnfo, libplayer et libvalhalla. Il faut savoir que se sont les toutes premières releases! Là où je veux en venir c’est qu’il était totalement justifié de toujours se baser sur les versions de développement pour compiler Enna. Par exemple le premier import de libplayer date de 2006 et c’était une habitude que de faire un hg pull -u régulièrement. Mais maintenant que les versions 1.0.0 sont disponibles, veuillez s.v.p. vous baser uniquement sur celles-ci (ou sur n’importe quelles nouvelles releases de ces libs dans le futur).

Il y a deux solutions, en passant sur les sites web respectifs des projets (les liens sont disponibles à droite des articles de ce blog) ou alors avec Mercurial. Mais dans ce cas veuillez préciser la version de la dernière release. Tel que par exemple:

hg clone -r v1.0.0 http://hg.geexbox.org/libvalhalla

Si vous chargez la devel (donc le “tip”) vous ne pourrez pas compiler Enna ou alors vous avez de la chance :-). Depuis qu’il y a les releases je me permets de casser les APIs des bibliothèques parce que je suis un éternel insatisfait (je rigole…) et ça faisait longtemps que je voulais faire un peu de ménage dans certaines en-têtes publiques.

Et après l’installation des libgeexbox, n’oubliez pas de faire un `sudo ldconfig`. Question que le chargeur de programme ait les nouvelles bibliothèques de référencées.

libvalhalla

Quand vous exécutez le configure de libvalhalla, jetez un œil aux informations retournées avant de faire bêtement un `make`. Le configure désactive les éléments en fonction des bibliothèques qu’il ne trouve pas. Par exemple, si vous n’avez pas la libcurl-dev, le support des grabbers est complètement désactivé mais cela n’empêche pas la compilation.

Admettons que vous avez toutes les libs nécessaires et que vous voyez certains grabbers de désactivés. Je pense par exemple à lyricsfly. Ce n’est pas un bug. Lyricsfly n’est pas utilisable car la clef de l’API pour le webservice était provisoire. Ce grabber est donc désactivé par défaut. Si vous utilisez ––enable–grabbers pour être sûr d’activer tous les grabbers vous n’aurez rien à gagner. Vous ferez perdre du temps à libvalhalla sur lyricsfly qui ne retournera jamais rien (je parle de lyricsfly, mais ça peut être d’autres à l’avenir).

A noter également que dès que vous forcez les grabbers ou seulement quelques grabbers, leurs dépendances deviennent obligatoires. Par exemple si vous faites ––enable–grabber–ffmpeg vous forcez la dépendance sur libavcodec. Si vous avez vraiment libavcodec et que ça échoue, c’est simplement que votre version est trop ancienne. Par exemple, le libavcodec que vous trouvez avec Ubuntu Karmic ne supporte pas la fonction av_lockmgr_register() qui garanti l’utilisation des codecs à être multi-thread safe.

libplayer

Concernant libplayer, c’est la dépendance indirecte avec MPlayer qui est la plus importante. Assurez-vous que votre MPlayer est en anglais uniquement. Libplayer peut détecter les MPlayer incompatibles jusqu’à un certain point. En fonction de la manière dont MPlayer a été compilé, libplayer ne peut pas savoir s’il est en anglais ou non et va donc l’utiliser (pour les curieux, je parle de la variable d’environnement LINGUAS à la compilation d’MPlayer; libplayer ne détecte la langue que si celle-ci est passée avec ––language–msg= ou ––language=).

Démarrer Enna

Contrairement à certains tutoriels sur Enna, il n’est pas nécessaire de copier le fichier d’exemple enna.cfg qui se trouve à la racine des sources, dans le dossier ~/.enna. Parce que ce fichier est automatiquement créé au premier démarrage de l’interface. Et allez jeter un œil au contenu. Si vous voulez que libvalhalla puisse faire son travail, vaut mieux lui dire où il doit scanner. Dans le cas contraire 100% des fichiers seront traités en ondemand (je vous laisser chercher dans ce blog si vous ne comprenez pas).

Et maintenant que vous avez l’OpenGL, vous remarquerez assez vite qu’en le spécifiant dans ~/.enna/enna.cfg ça ne change pas grand chose. Pire que cela, ça ne change absolument rien ;-).

Pour l’instant il faudra le faire à la main depuis un terminal, avec:

ELM_ENGINE=gl enna

A bientôt,

Mathieu SCHROETER

Advertisements

9 thoughts on “Autour de la compilation d’Enna

  1. Bonjour,

    comment gerez-vous le rendu de la video dans Enna ? Utilisez-vous Emotion ? Si oui, avez-vous des lenteurs ou des frames dropped sur des films en HD ? Si non, faites-vous le rendu dans une texture ou creez-vous une fenetre enfant dans laquelle le player utilise va faire le rendu de la video ?

    D’avance merci.

    1. Il n’est donc pas possible d’appliquer d’effet de reflection de la video pendant la lecture ?

      Comment est gerer le mode fullscreen ? Je veux dire au niveau des informations affichable, des boutons pour play/pause etc … ?

    2. Forcément, ce n’est pas possible d’appliquer des effets mais ce n’est pas important. Mieux vaut privilégier les performances. Je pense surtout à tout ceux qui ne peuvent pas profiter de cartes graphiques supportant par exemple VDPAU.

      La fenêtre enfant (vidéo) peut être redimensionnée pour permettre l’affichage de contrôles. Une barre apparait ainsi en-dessous de la vidéo (actuellement). Cette fonctionnalité est bien sûr perdue si on utilise Enna en framebuffer.

  2. Bonjour,
    J’ai bien installé Enna, j’arrive à écouter ou visualiser le contenu de fichiers, j’ai même le temps qu’il fait chez moi sans avoir à regarder par la fenre :)
    Cependant je n’arrive pas à gérer correctement mes fichiers: par exemple, pour la musique j’ai un premier affichage qui me donne:
    — “Bibliotheque Multimédia” avec une esthétique icone dorée dont l’appui me mène à un menu: Artistes , Albums, Genres, Non Classé et ceci me permet de naviger et tout fonctionne.
    — “Parcourir les disques locaux” avec une icone grise de disque dur, et dont l’appui m’affiche à son tour un ensemble vertical d’icones: “Music” et “Server” permettant de naviquer d’une autre manière, mais aussi, malheureusement, l’icone de ma home directory et celle de mes disques physiques, ce qui permet de naviguer dans toute l’arborescence ! pourtant à tout hasard j’ai rajouté un display_home=false mais cela n’a eu aucun effet.

    En ce qui concerne les menus Photos et Videos je n’ai même plus droit à une icone particulière mais simplement à l’icone grise de disque intitulée “Parcourir les disques locaux” dont l’appui me conduit à un autre menu, identique en tous points à celui vu pour la musique (si ce n’est que pour le choix Photos, je n’ai pas d’image à gauche ce qui fait qu’il est horizontal et non vertical…)

    Ce qui m’ennuie, en dehors du mini bug de l’affichage de l’illustration de Photo à gauche, qui n’est que du design, c’est le fait qu’on puisse parcourir tous les fichiers du système et non seulement les multimédiqs indiqués.

    Il doit y avoir un problème de config, mais je n’ai pas la syntaxe des options de enna.cfg; où pourrais je les trouver ?

    Tout ceci dit, je pense qu’Enna est très très prometteur et je vais suivre ce projet à mon niveau :)

    1. Hello,
      Si tu as compilé Enna du dépot Mercurial, il y a de nombreux éléments qui ne sont plus fonctionnels à cause d’un changement important qui a été réalisé il y a peu de temps. Et tout n’a de loin pas encore été corrigé.

      Mais tu n’as pas précisé de quel Enna tu parles.

  3. Ah, c’est vrai, pardon. En fait non, je suis sous ubuntu Lucid et j’ai donc installé bêtement, par apt-get, la version 0.40

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s