How to setup a gst-build environment with Intel's VA-API stack
gst-build
is far superior than gst-uninstalled
scripts for developing
GStreamer, mainly because its
meson and ninja usage.
Nonetheless, to integrate external dependencies it is not as easy as in
gst-uninstalled
.This guide aims to show how to integrate GStreamer-VAAPI dependencies, in this
case with the Intel VA-API
driver.
Dependencies #
For now we will need meson master, since it this patch is required. The pull request is already merged but it is unreleased yet.
Installation #
clone gst-build repository #
git clone git://anongit.freedesktop.org/gstreamer/gst-build
cd gst-build
apply custom patch for gst-build #
The patch will add the repositories for libva
and intel-vaapi-driver
.
wget https://people.igalia.com/vjaquez/gst-build-vaapi/0001-add-libva-and-intel-vaapi-driver-as-subprojects.patch
git am 0001-add-libva-and-intel-vaapi-driver-as-subprojects.patch
0001-add-libva-and-intel-vaapi-driver-as-subprojects.patch
configure #
Running this command, all dependency repositories will be cloned, symbolic links
created, and the build
directory configured.
meson bulid
apply custom patches for libva, intel-vaapi-driver and gstreamer-vaapi #
libva #
This patch is required since the headers files uninstalled paths doesn’t match with the ones in the “include” directives.
cd libva
wget https://people.igalia.com/vjaquez/gst-build-vaapi/0001-build-add-headers-for-uninstalled-setup.patch
git am 0001-build-add-headers-for-uninstalled-setup.patch
cd -
0001-build-add-headers-for-uninstalled-setup.patch
intel-vaapi-driver #
The patch handles libva
dependency as a subproject.
cd intel-vaapi-driver
wget https://people.igalia.com/vjaquez/gst-build-vaapi/0001-meson-support-libva-as-subproject.patch
git am 0001-meson-support-libva-as-subproject.patch
cd -
0001-meson-support-libva-as-subproject.patch
gstreamer-vaapi #
Note to myself: this patch must be split and merged in upstream.
cd gstreamer-vaapi
wget https://people.igalia.com/vjaquez/gst-build-vaapi/0001-build-meson-libva-gst-uninstall-friendly.patch
git am 0001-build-meson-libva-gst-uninstall-friendly.patch
cd -
0001-build-meson-libva-gst-uninstall-friendly.patch updated: 2018/04/24
build #
ninja -C build
And wait a couple minutes.
run uninstalled environment for testing #
$ ninja -C build uninstalled
[gst-master] $ gst-inspect-1.0 vaapi
Plugin Details:
Name vaapi
Description VA-API based elements
Filename /opt/gst/gst-build/build/subprojects/gstreamer-vaapi/gst/vaapi/libgstvaapi.so
Version 1.15.0.1
License LGPL
Source module gstreamer-vaapi
Binary package gstreamer-vaapi
Origin URL http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
vaapih264enc: VA-API H264 encoder
vaapimpeg2enc: VA-API MPEG-2 encoder
vaapisink: VA-API sink
vaapidecodebin: VA-API Decode Bin
vaapipostproc: VA-API video postprocessing
vaapivc1dec: VA-API VC1 decoder
vaapih264dec: VA-API H264 decoder
vaapimpeg2dec: VA-API MPEG2 decoder
vaapijpegdec: VA-API JPEG decoder
9 features:
+-- 9 elements