summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--cerbero/config.py2
-rw-r--r--packages/gstreamer-1.0-codecs.package4
-rw-r--r--recipes/gstreamer-vaapi-1.0.recipe27
4 files changed, 36 insertions, 1 deletions
diff --git a/README.md b/README.md
index c37e51f8..07994a71 100644
--- a/README.md
+++ b/README.md
@@ -218,6 +218,10 @@ On Windows, `INTELMEDIASDKROOT` automatically set by the installer. On Linux,
if you need to set this, you must set it to point to the directory that
contains the mediasdk `include` and `lib64` dirs.
+For VA-API, the [variant to enable](#enabling-optional-features-with-variants)
+is `vaapi` which will build the gstreamer-vaapi plugins with all
+options enabled if possible.
+
### Nvidia Hardware Codecs
For Nvidia, the [variant to enable](#enabling-optional-features-with-variants)
diff --git a/cerbero/config.py b/cerbero/config.py
index c80ab1cd..6ebf9a03 100644
--- a/cerbero/config.py
+++ b/cerbero/config.py
@@ -72,7 +72,7 @@ class Variants(object):
__disabled_variants = ['x11', 'alsa', 'pulse', 'cdparanoia', 'v4l2',
'gi', 'unwind', 'rpi', 'visualstudio', 'qt5',
- 'intelmsdk', 'nvcodec', 'werror']
+ 'intelmsdk', 'nvcodec', 'werror', 'vaapi']
__enabled_variants = ['debug', 'python', 'testspackage']
__all_variants = __enabled_variants + __disabled_variants
diff --git a/packages/gstreamer-1.0-codecs.package b/packages/gstreamer-1.0-codecs.package
index e205d5c9..fe8a5c97 100644
--- a/packages/gstreamer-1.0-codecs.package
+++ b/packages/gstreamer-1.0-codecs.package
@@ -36,3 +36,7 @@ class Package(custom.GStreamer, package.Package):
if not self.config.variants.visualstudio:
self.files += ['taglib:libs']
+
+ if self.config.variants.vaapi:
+ self.files.append('gstreamer-vaapi-1.0:plugins_codecs')
+ self.files_devel.append('gstreamer-vaapi-1.0:plugins_codecs_devel')
diff --git a/recipes/gstreamer-vaapi-1.0.recipe b/recipes/gstreamer-vaapi-1.0.recipe
new file mode 100644
index 00000000..4a6cf590
--- /dev/null
+++ b/recipes/gstreamer-vaapi-1.0.recipe
@@ -0,0 +1,27 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(custom.GStreamer):
+ name = 'gstreamer-vaapi-1.0'
+ btype = BuildType.MESON
+ meson_options = {# auto enable plugins
+ 'with_encoders': 'auto',
+ 'with_drm': 'auto',
+ 'with_wayland': 'auto'}
+
+ deps = ['gst-plugins-bad-1.0']
+ use_system_libs = True
+
+ files_plugins_codecs = [
+ 'lib/gstreamer-1.0/libgstvaapi%(mext)s',
+ ]
+
+ files_plugins_codecs_devel = [
+ 'lib/gstreamer-1.0/libgstvaapi.a',
+ ]
+
+ def prepare(self):
+ if self.config.variants.x11:
+ self.meson_options['with_x11'] = 'yes'
+ else:
+ self.meson_options['with_x11'] = 'auto'