From ebc396fc7aef5a3a07a0ec2c32ab5ae72d31c513 Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Fri, 19 Jan 2024 15:08:47 -0500 Subject: 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 Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham --- README.rst | 7 ++++--- src/gstreamer/meson.build | 12 ++++++++++++ 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) -- cgit v1.2.1