web-dev-qa-db-fra.com

gstreamer1.0-vaapi ne trouve pas de pilote

Sur Ubuntu 16.04.3 Server, lorsque je tente de lancer une vidéo dans une application graphique basée sur Qt Quick (eglfs backend (plein écran EGL)), la vidéo commence à Twitch (est devenue saccadée, ne sait pas quel mot utiliser). Sur la vidéo d'installation précédente joué en douceur. Je fais un diff d'une arborescence de *.so chargé lors de la lecture d'une vidéo pour une ancienne et une nouvelle installation. Il n'y a pas de différence. J'ai fait l'hypothèse que le problème pourrait être lié à l'accélération matérielle.

Après avoir installé le paquet gstreamer1.0-vaapi et relancé l'application, il se bloque si j'appuie sur le bouton "play". Le journal contient les messages suivants:

error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
libva info: va_openDriver() returns -1
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
debug qml: Error: 1 (Could not initialize supporting library.) (qrc:///qml/imports/FileManager/components/VideoPlayer.qml:41)
warning default: Error: "Could not initialize supporting library." (unknown:0)
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium

error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
libva info: va_openDriver() returns -1
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
debug qml: Error: 1 (Could not initialize supporting library.) (qrc:///qml/imports/FileManager/components/VideoPlayer.qml:41)
warning default: Error: "Could not initialize supporting library." (unknown:0)
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 1
libva error: va_getDriverName() failed with operation failed,driver_name=gallium

Puis je tape:

# apt-file search /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
mesa-va-drivers: /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
# apt install mesa-va-drivers
# ls /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
ls: cannot access '/usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so': No such file or directory

Comment est-ce possible? Il est prouvé que le package mesa-va-drivers devrait contenir ce fichier *.so. Aucun autre paquet n'a fait. Devrais-je construire des drivers mesa va par moi-même?

Les anciens et les nouveaux systèmes ont la configuration suivante: AMD A10-7800 Radeon R7, 12 cœurs de calcul 4C + 8G.

vainfo:

error: can't connect to X server!
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/gallium_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
1
Orient

En fait, je viens d'avoir exactement la même chose. Oui, @RobertRiedl commenter où le gallium_drv_video.so est correct. Cependant, il n'est pas répertorié en tant que tel car il ne s'agit que d'un lien vers un autre fichier.

Pour y remédier j'ai fait ce qui suit:

cd /usr/lib/x86_64-linux-gnu/dri/
Sudo rm gallium_drv_video.so
Sudo apt install mesa_va_drivers
Sudo ln -s radeonsi_drv_video.so gallium_drv_video.so

Après avoir exécuté ce qui précède, vérifiez ensuite le vainfo:

Pour corriger la connexion impossible au serveur X, exécutez:

export DISPLAY=:0
xhost +

Lancer vainfo pour s’assurer que cela fonctionne:

:~$ vainfo
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.1)
vainfo: Driver version: Mesa Gallium driver 18.1.0-devel for AMD RS880 (DRM 2.50.0 / 4.13.0-36-generic, LLVM 6.0.0)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

J'espère que cela t'aides!

1
Terrance