summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2024-01-19 15:08:47 -0500
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-01-23 02:21:39 +0200
commitebc396fc7aef5a3a07a0ec2c32ab5ae72d31c513 (patch)
tree1f176a7f86f83393e595bce9cc625aa51cc74ece
parent81791d2cac70a3f549db85fb2e40e385b24e76fc (diff)
gstreamer: Add meson devenv support
This change to the build system will prepend the plugin build directory to GST_PLUGIN_PATH environment. This makes the built plugin visible to GStreamer inside meson devenv enabling uninstalled testing. In order to avoid polluting the user registry, the GST_REGISTRY environment is also set. Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--README.rst7
-rw-r--r--src/gstreamer/meson.build12
2 files changed, 16 insertions, 3 deletions
diff --git a/README.rst b/README.rst
index 315738ee..6b764fb7 100644
--- a/README.rst
+++ b/README.rst
@@ -120,12 +120,13 @@ setting the ``LIBCAMERA_LOG_LEVELS`` environment variable:
Using GStreamer plugin
~~~~~~~~~~~~~~~~~~~~~~
-To use GStreamer plugin from source tree, set the following environment so that
-GStreamer can find it. This isn't necessary when libcamera is installed.
+To use the GStreamer plugin from the source tree, use the meson ``devenv``
+command. This will create a new shell instance with the ``GST_PLUGIN_PATH``
+environment set accordingly.
.. code::
- export GST_PLUGIN_PATH=$(pwd)/build/src/gstreamer
+ meson devenv -C build
The debugging tool ``gst-launch-1.0`` can be used to construct a pipeline and
test it. The following pipeline will stream from the camera named "Camera 1"
diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build
index 20784b71..c2a01e7b 100644
--- a/src/gstreamer/meson.build
+++ b/src/gstreamer/meson.build
@@ -46,3 +46,15 @@ libcamera_gst = shared_library('gstlibcamera',
install : true,
install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),
)
+
+# Make the plugin visible to GStreamer inside meson devenv.
+fs = import('fs')
+gst_plugin_path = fs.parent(libcamera_gst.full_path())
+
+gst_env = environment()
+gst_env.prepend('GST_PLUGIN_PATH', gst_plugin_path)
+
+# Avoid polluting the system registry.
+gst_env.set('GST_REGISTRY', gst_plugin_path / 'registry.data')
+
+meson.add_devenv(gst_env)