# [ vaapi + xbmc ] Htpc (résolu)

## syphering

Salut,

Je viens de me configurer mon HTPC sous Gentoo  :Smile:  avec une configuration AMD E-350 et une ATI HD 6310.

Mon soucis est que le décodage video via la carte graphique ne semble pas fonctionner  :Sad:  XBMC n'affiche aucune image et freeze, en plus aucune log dans XBMC:(

Les paquets suivants sont installés avec comme use :

```
[ebuild   R    ] x11-libs/libva-1.0.15  USE="opengl" VIDEO_CARDS="fglrx -dummy -intel -nvidia" 0 kB

[ebuild   R    ] x11-libs/xvba-video-0.8.0  0 kB

[ebuild   R   ~] media-tv/xbmc-10.1  USE="sse sse2 vaapi webserver xrandr -alsa (-altivec) -avahi -css -debug -joystick -midi -profile -pulseaudio -rtmp -udev -vdpau" 0 kB

```

vainfo me retourne quelque chose qui me semble correct :

```
vainfo: VA-API version: 0.32 (libva 1.0.15)

vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.8.0

vainfo: Supported profile and entrypoints

      VAProfileH264High               : VAEntrypointVLD

      VAProfileVC1Advanced            : VAEntrypointVLD
```

Dans /usr/lib*/va ça semble correct :

```
/usr/lib/va/drivers:

total 240

-rwxr-xr-x 1 root root 121552 Jan  7 20:57 fglrx_drv_video.so

-rwxr-xr-x 1 root root 121552 Jan  7 20:57 xvba_drv_video.so

/usr/lib64/va/drivers:

total 240

-rwxr-xr-x 1 root root 121552 Jan  7 20:57 fglrx_drv_video.so

-rwxr-xr-x 1 root root 121552 Jan  7 20:57 xvba_drv_video.so
```

Mon make.conf

```
tuxcinema drivers # cat /etc/make.conf

# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-O2 -pipe"

CXXFLAGS="${CFLAGS}"

CFLAGS="-march=amdfam10 -O2 -pipe -mno-3dnow -mcx16 -mpopcnt -mssse3 -msse4a"

MAKEOPTS="-j3"

USE="mmx sse sse2 win32codecs x264 X mp3 xvid -ipv6 -bluetooth -ldap -cups -gnome"

VIDEO_CARDS="radeon"

GENTOO_MIRRORS="ftp://mirror.ovh.net/gentoo-distfiles/ http://mirror.ovh.net/gentoo-distfiles/"

LINGUAS="fr"
```

uname -a

```
Linux tuxcinema 3.0.6-gentoo #1 SMP Thu Dec 29 12:15:58 CET 2011 x86_64 AMD E-350 Processor AuthenticAMD GNU/Linu
```

Le système est très sommaire, pas de desktop, uniquement slim configuré pour démarrer XBMC en standalone

Toutes propositions qui pourraient m'aider sera la bienvenue  :Wink: 

----------

## Napoleon

Sérieusement, pourquoi xbmc et pas tout simplement vlc ?

----------

## syphering

Car pour la famille c'est plus intuitif d'utiliser XBMC que VLC.  Et surtout, les résumés, les BA, les covers, les émulateurs de Roms, la musique, bref un véritable juxbox accessible à tous  :Wink: 

----------

## Fenril

Ca demande confirmation, mais je crois que les drivers proprio, c'est la grosse m*** pour obtenir le décodage hardware. En faisant une recherche, voici ce que dit le site distribuant xvba-video :

 *Quote:*   

> Overview
> 
> XvBA backend for VA API supporting the following codecs:
> 
>     MPEG-4 AVC (H.264)
> ...

 

Si je regarde ce que me donne vainfo :

```
# vainfo 

libva: VA-API version 0.32.0

Xlib:  extension "XFree86-DRI" missing on display ":0.0".

libva: va_getDriverName() returns 0

libva: Trying to open /usr/lib64/va/drivers/fglrx_drv_video.so

libva: va_openDriver() returns 0

vainfo: VA-API version: 0.32 (libva 1.0.15)

vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.8.0

vainfo: Supported profile and entrypoints

      VAProfileH264High               :   VAEntrypointVLD

      VAProfileVC1Advanced            :   VAEntrypointVLD
```

Ca décode effectivement que du H.264 en high profile et du VC1. Autant dire que ça décode quasiment rien en hardware (j'ai pas grand chose dans ces formats là).

Et effectivement, quand je dis que c'est la grosse m***, chez moi, avec (gnome-)mplayer, la seule sortie qui fonctionne correctement pour la vidéo, c'est... VDPAU, le truc de nVidia ! A rien comprendre. la sortie xv fait freezer mon serveur X, xvmc et vaapi (pourtant le format ATI du décodage hardware) ne me sortent rien en image. Donc, d'après mes essais, essaie avec le USE vdpau d'activé, et utilise cette sortie. Sait-on jamais.

----------

## El_Goretto

 *Fenril wrote:*   

> 
> 
> Ca décode effectivement que du H.264 en high profile et du VC1. Autant dire que ça décode quasiment rien en hardware (j'ai pas grand chose dans ces formats là).

 

Euh, ça représente 100% des codecs HD actuels, hein, faut pas pousser  :Smile: 

Décoder en hard du mpeg2 en SD, bon, ya quelques années, je dis pas, mais là... franchement...

----------

## Fenril

Pour moi c'est pas grave, avec un core i7, à la limite, je m'en tape. Mais syphering et son AMD E-350, c'est toujours ça de pris  :Wink:  (même si j'en conviens que ça doit passer sans souci même en software).

----------

## syphering

Je décode via le AMD E-350 des 720p sans perte de trame mais dès que je passe à des 1080p j'ai un nombre impressionnant de trames perdues, > 1000 en moins d'une minute.

Si j'active vaapi dans xbmc et que je lis un 720p ou 1080p aucune image et xbmc freeze.

vainfo doit me retourner  quel type d'info précisément ?

----------

## Fenril

Tes infos sont correctes, moi j'incrimine un manque de support des drivers propriétaires. Essaie comme je t'ai dit d'activer le use "vdpau" dans ton make.conf, recompile xbmc, et utilise la sortie vdpau dans xbmc.

----------

## syphering

J'ai installé le driver ati présent dans le dépôt Gentoo, pas ceux du site ati. J'ai fais ce choix car la compilation de xvba-video partait en erreur alors qu'avec les drivers du dépôt tout fonctionnait.

Dois je plutôt les drivers ati du dépôt ou ceux du site ati ?

Ce soir je teste avec vdpau et te dirait ce qu'il en ait  :Wink: 

----------

## El_Goretto

 *syphering wrote:*   

> Dois je plutôt les drivers ati du dépôt ou ceux du site ati ?
> 
> Ce soir je teste avec vdpau et te dirait ce qu'il en ait 

 

Ceux de portage, surtout!

Des pistes de recherche: 

http://phoronix.com/forums/showthread.php?33853-AMD-Zacate-E-350

http://phoronix.com/forums/showthread.php?65688-XBMC-Project-Implements-AMD-XvBA-Interface

----------

## syphering

Ca plantouille pour la compilation xbmc  :Sad: 

```
configure: error: == External ffmpeg doesn't support VDPAU. VDPAU support disabled. ==
```

J'ai trouvé https://forums.gentoo.org/viewtopic-t-843787-start-0.html sur le forum et vais potasser. Quelle différence entre xbmc-9999 (vesion 9.x antérieure) et la version xbmc (actuelle) ?

----------

## Poussin

ben forcément, il faut recompiler ton système (ou en tout cas ffmpeg) avec le flag vdpau  :Smile: 

-> emerge -uavDN @world   avec le nouveau flag

----------

## syphering

 *Poussin wrote:*   

> ben forcément, il faut recompiler ton système (ou en tout cas ffmpeg) avec le flag vdpau 
> 
> -> emerge -uavDN @world   avec le nouveau flag

 

ffmpeg est recompilé avec le flag vdpau sans problème apprant.

----------

## El_Goretto

9999 est la version SVN.

Par contre, franchement, vous m'expliquerez ce que va vous apporter vdpau pour une AMD, hein...

VAAPI et XvBA sont les 2 voies à explorer.

----------

## syphering

vdpau ne donne rien de plus, peut être que vu que c'est pour nvidia...

Sinon, j'ai toujours pas de décodage matériel pour mes mkv  :Sad: 

----------

## peapa

A creuser, mais depuis peu XBMC doit être capable d'utiliser xvba sans passer par vaapi.

Je sais pas si c'est prévu pour la prochaine version ou même intégré à la branche principale cela dit...

A voir ici : http://www.phoronix.com/scan.php?page=news_item&px=MTAyODU

----------

## syphering

Il semblerait... Je vais essayer la version en développement via emerge et celle en pvr de xbmc. En dernier recours je ferais un dual boot avec Debian, mais on va essayer de rester sous Gentoo  :Wink: 

----------

## syphering

Je viens de réaliser un petit test en supprimant "libva" et "xvba-video" tout en gardant l'option "vaapi" dans le make.conf, conclusion : La lecture d'un 1080p via xbmc se fait mais j'ai énormément de drop lors de la lecture.

A l'opposé, si "libva" et "xvba-info" sont installés, la lecture d'un 1080p via xbmv avec l'option "vaapi" le fait freezer sans aucune log  :Sad: 

Pourtant "libva" et "xvba-info" sont tout de même nécessaire pour la décompression vidéo matérielle   :Shocked: 

Ça me fait déjà une piste à explorer...

----------

## takhisis_astrafall

J'ai du préciser que je sortais en VDPAU dans les configuration d'XBMC, il y a peut-être un paramètre similaire pour le vaapi ?

As-tu tenté lire une vidéo avec mplayer en utilisant vaapi aussi ? ça te permettrais peut être d'avoir plus d'info sur le pourquoi du plantage

Si je ne me plante pas : 

```
mplayer -vo vaapi truc.mkv
```

----------

## syphering

L'option VAAPI est active dans xbmc.

mplayer ne dispose pas d'option de compilation vaapi dans l'arbre portage et donc, "mplayer -vo vaapi" n'existe pas chez moi  :Sad: 

```
mplayer -vo help

MPlayer SVN-r33094-4.4.5 (C) 2000-2011 MPlayer Team

Pilotes de sortie vidéo disponibles :

        xv      X11/Xv

        gl_nosw OpenGL no software rendering

        x11     X11 ( XImage/Shm )

        xover   General X11 driver for overlay capable video output drivers

        sdl     SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)

        gl      OpenGL

        gl2     X11 (OpenGL) - multiple textures version

        matrixview      MatrixView (OpenGL)

        null    Null video output

        mpegpes MPEG-PES file

        yuv4mpeg        yuv4mpeg output for mjpegtools

        png     PNG file

        jpeg    JPEG file

        gif89a  animated GIF output
```

Je pense qu'il faut utiliser un overlay pour avoir la version mplayer-vaapi mais layman -L me liste pas mal de dépots, j'ai chosis "x11" mais après je coince. Je crois qu'il faut indiquer le package dans package.keyword et package.unmask, mais emerge ne semble pas le trouver   :Shocked:   Quelqu'un en sait un peu plus   :Laughing: 

Autre question, dans le make.conf il faut video_cards avec "radeon" ou "fglrx" ?

----------

## syphering

Re, quelques news

Après une mise à jour de l'arbre portage, je suis passé sous media-tv/xbmc-11.0_beta3. La lecture de mkv via l'option vaapi plante toujours, écran noir, aucune image, mais j'ai pu activer des options d'affichage pendant la pseudo lecture, touche [o], qui m'affiche dc:ff-h264, mais pas de dc:ff-h264-vaappi à l'hroizon  :Sad: 

Je suppose que xbmc ne voit pas la moindre librairies libva ou xvba-video...sachant qu'elles sont bien installées..

```
htpc ~ # qlist -Iv libva xvab-video

x11-libs/libva-1.0.15

x11-libs/libva-intel-driver-1.0.15
```

Manque t il un lien dans ces répertoires ?

```
htpc ~ # ls -l /usr/lib/dri

total 31528

-rwxr-xr-x 1 root root 32282432 Jan 31 09:56 fglrx_dri.so

lrwxrwxrwx 1 root root       22 Jan 31 09:28 swrast_dri.so -> ../mesa/swrastg_dri.so

lrwxrwxrwx 1 root root       22 Feb  1 08:46 swrastg_dri.so -> ../mesa/swrastg_dri.so
```

```
htpc ~ # ls -l /usr/lib/va/drivers/

total 860

-rwxr-xr-x 1 root root 121552 Jan 31 19:14 fglrx_drv_video.so

-rwxr-xr-x 1 root root 632104 Jan 31 19:14 i965_drv_video.so

-rwxr-xr-x 1 root root 121552 Jan 31 19:14 xvba_drv_video.so
```

Ou me manque t il un paquet ?

----------

## loopx

Yep, 

Je possède une carte HD4550 sur un core i7 ... J'étais sous le driver libre "radeon/Gallium3D" depuis bientôt 2 ans ... et maintenant j'en ai marre des performances pourries et donc, je suis repassé à FGLRX.

J'ai fais une page dans mon wiki, si ça t'intéresse (attention, c'est pas exhaustif ...) : http://pix-mania.dyndns.org/mediawiki/index.php/Gentoo#driver_propri.C3.A9taire_.28Catalyst.2Ffglrx.29 (ce sont mes notes quoi)

J'ai remarqué qu'avec le driver "fglrx" :

- bug dans Xv qui fait freezer le Xorg => j'ai du désactiver le Xv (pour plus faire planter)

- le "vdpau", j'ai aussi testé mais c'est vrai que c'est pour nVidia et ça ne donne rien du tout sur ATI

- "xvmc", c'est aussi très utile ... (ça va pas)

- par contre, le "gl_sohw" à l'air de passer plutôt bien, j'ai fais tourné une vidéo 1080 (10Go) sans la faire ramer, par dessus Kwin avec les effets 3D activés ; je ne sais pas si ça utilise bien le décodage HW, j'ai vu un des cores (hyperthreading activé =>  :Cool:  qui était à 50%, mais ça à l'air de tourner correctement

- je viens de remarquer que les vidéos flash foire totalement en fullscreen (ça devient tellement lent que tu peux même plus quitter le mode plein écran  :Very Happy: )

La, j'active OpenCL pour voir si ça va corriger le flash. Je précise que j'étais en Gentoo instable et que je suis repassé en stable ... bien que j'ai certain paquet toujours en instable (bah, bug dans le paquet opencl => instable => driver ATI aussi, ... Chromium aussi).

Bref, je test et j'espère que ça ira mieux  :Smile: 

EDIT: je confirme, c'est bien de la m**** ce driver fglrx, il a pas bien changé ... :-/ ; le problème du flash est toujours là ; ça allait bien mieux avec le driver "radeon" ...

----------

## loopx

Heu, sans vouloir polluer ce thread .. quelqu'un pourrait-il m'éclairer au sujet des versions du drivers ATI propriétaire ...

http://www.touslesdrivers.com/index.php?v_page=23&v_code=33312 (ça parle de la version 12.1 de Catalyst) ...

Dans le portage, j'ai installé ceci :

```

[ebuild   R   ~] x11-drivers/ati-drivers-12.1-r1  USE="modules (multilib) qt4 -debug -pax_kernel" 0 kB

```

Ok ok .. pourtant, dans le panel de Catalyst, j'ai : 

```

Version Catalyst : 10.12

```

C'est le bordel avec les versions, sans compter que la version FGLRX est encore autre chose, vraiment n'importe quoi  :Sad:  ; est-ce que je suis bien à jour ? C'est que les vidéos flash qui rame à mort (1 image / 10 secondes ...) commence sérieusement à m'énerver ...

 :Rolling Eyes:   (vive le libre .. dommage pour le driver libre, avec 4x moins de performance que le propriétaire ...)

EDIT: alors là! C'est la plus belle de la journée ... Le flash ne passe pas en fullscreen sur ma Gentoo, par contre il va très bien hors fullscreen. Ok tampis, je vais tenter avec un bon vieux gros Seven 64 virtualisés dans VirtualBox ... et là ... bah avec le driver proprio, c'est encore plus fluide ^^ et ... le mieux ... je peux mettre le win en fullscreen et une vidéo flash ... en full screen et ça passe super bien! What the fuck? La bonne blague ...

Je sais pas si je dois frapper le driver fglrx ou l'implémentation d'Adobe flash player dans Gentoo  ... un chose est sûr : ça marche toujours pas comme ça devrait.

----------

## syphering

Après plusieurs tests la solution est apparue comme une évidence :

1. Supprimer libva, xvb-video, ati-drivers et xbmc

2. Récupérer les sources des quatre paquets en question

3. Les compiler

Et là, la décompression des mkv et autres videos passe par le GPU !

C'était simple, mais fallait trouver   :Very Happy: 

@++

----------

## El_Goretto

Tu pourrais détailler un peu STP? Parce que ça n'explique rien, si ce n'est sous-entendre que la partie config de l'emerge n'active pas les bonnes options avant la compilation?

----------

## Fenril

Je suis curieux aussi, je suis en ati-drivers 12.1 et je n'ai toujours pas la possibilité d'avoir une sortie xv.

----------

## RBoudin

J'utilise xbmc avec fglrx sur un e-350 avec VAAPI (presque) sans soucis.

La subtilité c'est que l'utilisation d'une version externe de ffmpeg semble ne pas fonctionner avec VAAPI activé.

De base xbmc utilise une version custom de ffmpeg compilée avec xbmc (et c'est l'option par défaut).

L'ebuild xbmc force l’utilisation d'une version externe de ffmpeg.

Donc pour faire fonctionne VAAPI avec XBMC je modifie l'ebuild :

```

cd /usr/portage/media-tv/xbmc

vi xbmc-11.0_r2.ebuild

```

Puis commenter la ligne suivante

```

 --enable-external-libraries \

```

Ensuite il faut refaire le manifest :

```

ebuild xbmc-11.0_r2.ebuild digest

```

Puis il suffit d'emerger xbmc.

Si quelqu'un a une solution plus propre je suis preneur, mais ça fonctionne ^^

----------

## syphering

Je suppose que le driver ati fourni par Gentoo ne permet pas d'avoir toute les options relatives à accélération matérielle.

Pour ma part, lors de l'utilisation des paquets fournie par Gentoo, je n'avais aucun message d'erreur, que se soit à la compilation ou à l'utilisation.

Je sais aussi, que sur Debian il faut récupérer les sources et les installer sinon ça ne fonctionne pas.

J'avais aussi tester les paquets officiels il y a un an sur mon autre poste (Q9550 + ATI5750) et impossible d'avoir l'accélération matérielle, j'avais les mêmes symptômes.

Bizarre....

----------

## RBoudin

Le driver fglrx (ati-drivers) permet d'utiliser vaapi (de toute façon il n'est pas opensource, donc il ne peut y avoir de modifs propres à une distrib).

J'ai fait toute mon installation a partir des ebuilds de portage et l’accélération matérielle fonctionne très bien (en modifiant l'ebuild d'xbmc comme spécifié ci-dessus)

----------

