[libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv support

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Jan 22 11:52:46 CET 2024


Hi Nicolas,

Thank you for the patch.

On Fri, Jan 19, 2024 at 03:08:47PM -0500, Nicolas Dufresne via libcamera-devel wrote:
> From: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> 
> 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
> pulluting the user registry, the GST_REGISTRY environement is also set.

s/pulluting/polluting/

> 
> Signed-off-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> ---
> Changes in V2:
>   - Use gst_ prefix for the path and env
>   - Don't call fs.parent twice
>   - Set GST_REGISTRY
>   - Update the documentation
> 
>  README.rst                |  7 ++++---
>  src/gstreamer/meson.build | 11 +++++++++++
>  2 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/README.rst b/README.rst
> index 315738ee..a7e0561f 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 GStreamer plugin from source tree, use meson ``devenv`` command.

s/use meson/use the meson/

> +This will create a new shell instance with ``GST_PLUGIN_PATH`` environment set

s/with/with the/

> +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..1536fd23 100644
> --- a/src/gstreamer/meson.build
> +++ b/src/gstreamer/meson.build
> @@ -46,3 +46,14 @@ libcamera_gst = shared_library('gstlibcamera',
>      install : true,
>      install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),
>  )
> +
> +# Makes the plugin visible to GStreamer inside meson devenv

s/Makes/Make/
s/$/./

> +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

s/$/./

I'll fix those when applying. Looking forward to start using meson
devenv :-)

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> +gst_env.set('GST_REGISTRY', gst_plugin_path / 'registry.data')
> +
> +meson.add_devenv(gst_env)

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list