gstreamer1.0-vaapi non riesce a trovare il driver

Su Ubuntu 16.04.3 Server quando provo a lanciare il video in un’applicazione grafica basata su Qt Quick (backend eglfs (EGL full screen)) il video inizia a contrarsi (diventa instabile, a scatti, non si conosce la parola giusta). Su video di installazione precedenti riprodotti senza intoppi. Faccio un diff di un albero di *.so caricato durante la riproduzione di video per vecchie e nuove installazioni. Non c’è differenza. Ho fatto una congettura, che il problema forse nell’accelerazione hardware.

Dopo aver installato il pacchetto gstreamer1.0-vaapi e aver riavviato l’applicazione, si blocca se gstreamer1.0-vaapi il pulsante “play”. Il registro contiene i seguenti messaggi:

 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 

Quindi scrivo:

 # 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 

Come è ansible? C’è evidenza che il pacchetto mesa-va-drivers dovrebbe contenere quel file *.so . Nessun altro pacchetto ha fatto. Devo build i driver mesa va da solo?

Sia i vecchi che i nuovi sistemi hanno la seguente configurazione: AMD A10-7800 Radeon R7, 12 Compute Core 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 

In realtà ho appena avuto la stessa identica cosa. Sì, commento di @RobertRiedl su dove gallium_drv_video.so è corretto. Tuttavia, non è elencato in quanto è solo un collegamento a un altro file.

Per risolvere il problema ho fatto quanto segue:

 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 

Dopo aver eseguito quanto sopra, quindi controllare il vainfo ha funzionato bene:

Per correggere il non può connettersi al server X eseguire:

 export DISPLAY=:0 xhost + 

Esecuzione di vainfo per assicurarsi che funzioni:

 :~$ 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 

Spero che questo ti aiuti!