[{"id":28516,"web_url":"https://patchwork.libcamera.org/comment/28516/","msgid":"<20240122105246.GA26784@pendragon.ideasonboard.com>","date":"2024-01-22T10:52:46","subject":"Re: [libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv\n\tsupport","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Nicolas,\n\nThank you for the patch.\n\nOn Fri, Jan 19, 2024 at 03:08:47PM -0500, Nicolas Dufresne via libcamera-devel wrote:\n> From: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> \n> This change to the build system will prepend the plugin build directory\n> to GST_PLUGIN_PATH environment. This makes the built plugin visible to\n> GStreamer inside meson devenv enabling uninstalled testing. In order to avoid\n> pulluting the user registry, the GST_REGISTRY environement is also set.\n\ns/pulluting/polluting/\n\n> \n> Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> ---\n> Changes in V2:\n>   - Use gst_ prefix for the path and env\n>   - Don't call fs.parent twice\n>   - Set GST_REGISTRY\n>   - Update the documentation\n> \n>  README.rst                |  7 ++++---\n>  src/gstreamer/meson.build | 11 +++++++++++\n>  2 files changed, 15 insertions(+), 3 deletions(-)\n> \n> diff --git a/README.rst b/README.rst\n> index 315738ee..a7e0561f 100644\n> --- a/README.rst\n> +++ b/README.rst\n> @@ -120,12 +120,13 @@ setting the ``LIBCAMERA_LOG_LEVELS`` environment variable:\n>  Using GStreamer plugin\n>  ~~~~~~~~~~~~~~~~~~~~~~\n>  \n> -To use GStreamer plugin from source tree, set the following environment so that\n> -GStreamer can find it. This isn't necessary when libcamera is installed.\n> +To use GStreamer plugin from source tree, use meson ``devenv`` command.\n\ns/use meson/use the meson/\n\n> +This will create a new shell instance with ``GST_PLUGIN_PATH`` environment set\n\ns/with/with the/\n\n> +accordingly.\n>  \n>  .. code::\n>  \n> -  export GST_PLUGIN_PATH=$(pwd)/build/src/gstreamer\n> +  meson devenv -C build\n>  \n>  The debugging tool ``gst-launch-1.0`` can be used to construct a pipeline and\n>  test it. The following pipeline will stream from the camera named \"Camera 1\"\n> diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> index 20784b71..1536fd23 100644\n> --- a/src/gstreamer/meson.build\n> +++ b/src/gstreamer/meson.build\n> @@ -46,3 +46,14 @@ libcamera_gst = shared_library('gstlibcamera',\n>      install : true,\n>      install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),\n>  )\n> +\n> +# Makes the plugin visible to GStreamer inside meson devenv\n\ns/Makes/Make/\ns/$/./\n\n> +fs = import('fs')\n> +gst_plugin_path = fs.parent(libcamera_gst.full_path())\n> +\n> +gst_env = environment()\n> +gst_env.prepend('GST_PLUGIN_PATH', gst_plugin_path)\n> +# Avoid polluting the system registry\n\ns/$/./\n\nI'll fix those when applying. Looking forward to start using meson\ndevenv :-)\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> +gst_env.set('GST_REGISTRY', gst_plugin_path / 'registry.data')\n> +\n> +meson.add_devenv(gst_env)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 1266FC323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 22 Jan 2024 10:52:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B9FA762931;\n\tMon, 22 Jan 2024 11:52:44 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B1AD3628AD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 22 Jan 2024 11:52:42 +0100 (CET)","from pendragon.ideasonboard.com (89-27-53-110.bb.dnainternet.fi\n\t[89.27.53.110])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C62F074A;\n\tMon, 22 Jan 2024 11:51:29 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"wJ9JArT3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1705920690;\n\tbh=GLR6PKEQwKbu4lGV8+dVIQnOLbJcpLRJFHlIeL/lmh4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=wJ9JArT3BtRnmA0fEl52Mtqhp2n1+mRy2oW2T/3hcg9pUWA6keKDrd+6qfr52p1JF\n\tteURQa5/NLXW3X/Pkp2ZHKz4ZQ6IowprLGW6rIUijmODtyyDokcFOw/SPqb2xA2sSX\n\tpRJJEqG3AnDYIoXSr3jkc5LJa+r87VthPA2mxh1Q=","Date":"Mon, 22 Jan 2024 12:52:46 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Nicolas Dufresne <nicolas@ndufresne.ca>","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv\n\tsupport","Message-ID":"<20240122105246.GA26784@pendragon.ideasonboard.com>","References":"<20240119200848.358298-1-nicolas@ndufresne.ca>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240119200848.358298-1-nicolas@ndufresne.ca>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28538,"web_url":"https://patchwork.libcamera.org/comment/28538/","msgid":"<170593893012.1011926.15271395787908698019@ping.linuxembedded.co.uk>","date":"2024-01-22T15:55:30","subject":"Re: [libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv\n\tsupport","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2024-01-22 10:52:46)\n> Hi Nicolas,\n> \n> Thank you for the patch.\n> \n> On Fri, Jan 19, 2024 at 03:08:47PM -0500, Nicolas Dufresne via libcamera-devel wrote:\n> > From: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> > \n> > This change to the build system will prepend the plugin build directory\n> > to GST_PLUGIN_PATH environment. This makes the built plugin visible to\n> > GStreamer inside meson devenv enabling uninstalled testing. In order to avoid\n> > pulluting the user registry, the GST_REGISTRY environement is also set.\n> \n> s/pulluting/polluting/\n> \n\ns/environement/envronment/ too if you're fixing up while applying.\n\n\n> > \n> > Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> > ---\n> > Changes in V2:\n> >   - Use gst_ prefix for the path and env\n> >   - Don't call fs.parent twice\n> >   - Set GST_REGISTRY\n> >   - Update the documentation\n> > \n> >  README.rst                |  7 ++++---\n> >  src/gstreamer/meson.build | 11 +++++++++++\n> >  2 files changed, 15 insertions(+), 3 deletions(-)\n> > \n> > diff --git a/README.rst b/README.rst\n> > index 315738ee..a7e0561f 100644\n> > --- a/README.rst\n> > +++ b/README.rst\n> > @@ -120,12 +120,13 @@ setting the ``LIBCAMERA_LOG_LEVELS`` environment variable:\n> >  Using GStreamer plugin\n> >  ~~~~~~~~~~~~~~~~~~~~~~\n> >  \n> > -To use GStreamer plugin from source tree, set the following environment so that\n> > -GStreamer can find it. This isn't necessary when libcamera is installed.\n> > +To use GStreamer plugin from source tree, use meson ``devenv`` command.\n> \n\ns/from source tree/from the source tree/\n\n> s/use meson/use the meson/\n> \n> > +This will create a new shell instance with ``GST_PLUGIN_PATH`` environment set\n> \n> s/with/with the/\n> \n> > +accordingly.\n> >  \n> >  .. code::\n> >  \n> > -  export GST_PLUGIN_PATH=$(pwd)/build/src/gstreamer\n> > +  meson devenv -C build\n> >  \n> >  The debugging tool ``gst-launch-1.0`` can be used to construct a pipeline and\n> >  test it. The following pipeline will stream from the camera named \"Camera 1\"\n> > diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> > index 20784b71..1536fd23 100644\n> > --- a/src/gstreamer/meson.build\n> > +++ b/src/gstreamer/meson.build\n> > @@ -46,3 +46,14 @@ libcamera_gst = shared_library('gstlibcamera',\n> >      install : true,\n> >      install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),\n> >  )\n> > +\n> > +# Makes the plugin visible to GStreamer inside meson devenv\n> \n> s/Makes/Make/\n> s/$/./\n> \n> > +fs = import('fs')\n> > +gst_plugin_path = fs.parent(libcamera_gst.full_path())\n> > +\n> > +gst_env = environment()\n> > +gst_env.prepend('GST_PLUGIN_PATH', gst_plugin_path)\n\nI'd add a blank line here, but I don't care ;D We've nitpicked the rest\nof the patch!\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> > +# Avoid polluting the system registry\n> \n> s/$/./\n> \n> I'll fix those when applying. Looking forward to start using meson\n> devenv :-)\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> > +gst_env.set('GST_REGISTRY', gst_plugin_path / 'registry.data')\n> > +\n> > +meson.add_devenv(gst_env)\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id CCC14BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 22 Jan 2024 15:55:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0B63662916;\n\tMon, 22 Jan 2024 16:55:34 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 02B6E61D30\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 22 Jan 2024 16:55:32 +0100 (CET)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D35CC221;\n\tMon, 22 Jan 2024 16:54:19 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"MobNgzy+\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1705938859;\n\tbh=t9bMGfUCUfGn2tzUAk7FSTuZl2Isa5oPo6hn9eaKbEY=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=MobNgzy+EaY8tVhEROAi+jeTwFHD/fYoVHF/MZic4wJI443VwavxB3krCCu8CnLbD\n\tD4DMR9fwons+Lt+e7X998G8PUpfjgxI7x+YrYnYYbL8jOOhNPTjk8aHK64mQlsWbEO\n\t2UiX90J0u5R62UJcWwDS+q7w37nHAFBKj4i2B6kg=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20240122105246.GA26784@pendragon.ideasonboard.com>","References":"<20240119200848.358298-1-nicolas@ndufresne.ca>\n\t<20240122105246.GA26784@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv\n\tsupport","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tNicolas Dufresne <nicolas@ndufresne.ca>","Date":"Mon, 22 Jan 2024 15:55:30 +0000","Message-ID":"<170593893012.1011926.15271395787908698019@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org,\n\tNicolas Dufresne <nicolas.dufresne@collabora.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28546,"web_url":"https://patchwork.libcamera.org/comment/28546/","msgid":"<e867ec8aac634aa30664babac7428c06ad798283.camel@ndufresne.ca>","date":"2024-01-22T16:37:56","subject":"Re: [libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv\n\tsupport","submitter":{"id":30,"url":"https://patchwork.libcamera.org/api/people/30/","name":"Nicolas Dufresne","email":"nicolas@ndufresne.ca"},"content":"Le lundi 22 janvier 2024 à 15:55 +0000, Kieran Bingham a écrit :\n> Quoting Laurent Pinchart (2024-01-22 10:52:46)\n> > Hi Nicolas,\n> > \n> > Thank you for the patch.\n> > \n> > On Fri, Jan 19, 2024 at 03:08:47PM -0500, Nicolas Dufresne via libcamera-devel wrote:\n> > > From: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> > > \n> > > This change to the build system will prepend the plugin build directory\n> > > to GST_PLUGIN_PATH environment. This makes the built plugin visible to\n> > > GStreamer inside meson devenv enabling uninstalled testing. In order to avoid\n> > > pulluting the user registry, the GST_REGISTRY environement is also set.\n> > \n> > s/pulluting/polluting/\n> > \n> \n> s/environement/envronment/ too if you're fixing up while applying.\n                 environment\n\nDifficult to type word clearly,\nNicolas\n> \n> \n> > > \n> > > Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> > > ---\n> > > Changes in V2:\n> > >   - Use gst_ prefix for the path and env\n> > >   - Don't call fs.parent twice\n> > >   - Set GST_REGISTRY\n> > >   - Update the documentation\n> > > \n> > >  README.rst                |  7 ++++---\n> > >  src/gstreamer/meson.build | 11 +++++++++++\n> > >  2 files changed, 15 insertions(+), 3 deletions(-)\n> > > \n> > > diff --git a/README.rst b/README.rst\n> > > index 315738ee..a7e0561f 100644\n> > > --- a/README.rst\n> > > +++ b/README.rst\n> > > @@ -120,12 +120,13 @@ setting the ``LIBCAMERA_LOG_LEVELS`` environment variable:\n> > >  Using GStreamer plugin\n> > >  ~~~~~~~~~~~~~~~~~~~~~~\n> > >  \n> > > -To use GStreamer plugin from source tree, set the following environment so that\n> > > -GStreamer can find it. This isn't necessary when libcamera is installed.\n> > > +To use GStreamer plugin from source tree, use meson ``devenv`` command.\n> > \n> \n> s/from source tree/from the source tree/\n> \n> > s/use meson/use the meson/\n> > \n> > > +This will create a new shell instance with ``GST_PLUGIN_PATH`` environment set\n> > \n> > s/with/with the/\n> > \n> > > +accordingly.\n> > >  \n> > >  .. code::\n> > >  \n> > > -  export GST_PLUGIN_PATH=$(pwd)/build/src/gstreamer\n> > > +  meson devenv -C build\n> > >  \n> > >  The debugging tool ``gst-launch-1.0`` can be used to construct a pipeline and\n> > >  test it. The following pipeline will stream from the camera named \"Camera 1\"\n> > > diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> > > index 20784b71..1536fd23 100644\n> > > --- a/src/gstreamer/meson.build\n> > > +++ b/src/gstreamer/meson.build\n> > > @@ -46,3 +46,14 @@ libcamera_gst = shared_library('gstlibcamera',\n> > >      install : true,\n> > >      install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),\n> > >  )\n> > > +\n> > > +# Makes the plugin visible to GStreamer inside meson devenv\n> > \n> > s/Makes/Make/\n> > s/$/./\n> > \n> > > +fs = import('fs')\n> > > +gst_plugin_path = fs.parent(libcamera_gst.full_path())\n> > > +\n> > > +gst_env = environment()\n> > > +gst_env.prepend('GST_PLUGIN_PATH', gst_plugin_path)\n> \n> I'd add a blank line here, but I don't care ;D We've nitpicked the rest\n> of the patch!\n> \n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > > +# Avoid polluting the system registry\n> > \n> > s/$/./\n> > \n> > I'll fix those when applying. Looking forward to start using meson\n> > devenv :-)\n> > \n> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > \n> > > +gst_env.set('GST_REGISTRY', gst_plugin_path / 'registry.data')\n> > > +\n> > > +meson.add_devenv(gst_env)\n> > \n> > -- \n> > Regards,\n> > \n> > Laurent Pinchart","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 6AF9CBDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 22 Jan 2024 16:38:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7410862948;\n\tMon, 22 Jan 2024 17:37:59 +0100 (CET)","from mail-oo1-xc34.google.com (mail-oo1-xc34.google.com\n\t[IPv6:2607:f8b0:4864:20::c34])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7349B628B7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 22 Jan 2024 17:37:58 +0100 (CET)","by mail-oo1-xc34.google.com with SMTP id\n\t006d021491bc7-5986cb7bb61so1893622eaf.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 22 Jan 2024 08:37:58 -0800 (PST)","from nicolas-tpx395.localdomain ([2606:6d00:11:3354::580])\n\tby smtp.gmail.com with ESMTPSA id\n\ti8-20020a0cfcc8000000b006819aeb62d6sm2529836qvq.136.2024.01.22.08.37.56\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 22 Jan 2024 08:37:56 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=ndufresne-ca.20230601.gappssmtp.com\n\theader.i=@ndufresne-ca.20230601.gappssmtp.com\n\theader.b=\"s2OXzuPb\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ndufresne-ca.20230601.gappssmtp.com; s=20230601; t=1705941477;\n\tx=1706546277; darn=lists.libcamera.org; \n\th=mime-version:user-agent:content-transfer-encoding:autocrypt\n\t:references:in-reply-to:date:cc:to:from:subject:message-id:from:to\n\t:cc:subject:date:message-id:reply-to;\n\tbh=mmdTBLQoJAQPPWfid3It8JobioYLXBFm6S+0XYiVWKg=;\n\tb=s2OXzuPbQi+CeqatS64Hzz+TIF1hmGSSE46a0vnLry5tBwP6nCtVS55RQNyDmDsITj\n\tShBasb3Bd/YMpRm1xMkUA0te6QepiizMvT5ZhWjyREexTduRDh25bRNM4jq7FsaYdnOt\n\tH0ouKbP8P9QRvPMteu+CoQwUDo8R8xPAag+lWkHZxJ+lBpFY3lTH9B/VA/lkmNbhMP9G\n\t/d0/VbipnJS8UCy26CrsUDp4EncAOFDvEFNDr4izfno7CPW11kWRrgFCij6D4ndBkjV5\n\tkbi9tagFCN8sIcyV6NKoEVLqq2ZrqQOlRe90FdVIKXmawTucp6I0/jHGM+mqKjTJh3nY\n\tSrXQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1705941477; x=1706546277;\n\th=mime-version:user-agent:content-transfer-encoding:autocrypt\n\t:references:in-reply-to:date:cc:to:from:subject:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=mmdTBLQoJAQPPWfid3It8JobioYLXBFm6S+0XYiVWKg=;\n\tb=DLNP0aVy+9/8pe0JS+zYVDzXSKXb0lG+hooK9FR6H+p7L59P1Rmi2PNMmcbgxUsNGQ\n\tKtNzC6n8AxS1LKmhb5VaUgbV3N7/HdU21BwAqZWKkEi5KkZkH3t01AsxT8vVu20CsZNw\n\tDQjzl53zJomERgIgl5bkjda6xifwUMt+EI8CGIhM7fNdz7a6tRtd+dmKSs1ymTuLWtij\n\tyHMx5Y5jQzBi5oaahWhBY/Vn2cL0sVs07egn/NbyViV/4EglrDCCCZDhQJ9M/qkuIeLF\n\t+GYZUIV//Ab6QqmdL3sQbV6Vo5Ol7iWfguhX49wij002M3hGxiUKg4b4wVI6mUP0VocZ\n\thGbA==","X-Gm-Message-State":"AOJu0YwqdDn9gz1zOidrrEZFWMk6UpBSAXoUGtiSKGCNHzq3jliiP+o0\n\tUYorHIlXCSUYTF3wfHPH3N8CXNw/4Tpb7CW3zq2n+JzDASwr/tOuMUzvqu66lY0=","X-Google-Smtp-Source":"AGHT+IFs7FSFyKKTAAaP8AdGnXup96NO5TaAtRcsNMbQIiBr8BbD8SVL5Ki1+NcFIjHuvSZyNOR3jQ==","X-Received":"by 2002:a05:6358:24a3:b0:175:7014:8ece with SMTP id\n\tm35-20020a05635824a300b0017570148ecemr2606230rwc.33.1705941477017; \n\tMon, 22 Jan 2024 08:37:57 -0800 (PST)","Message-ID":"<e867ec8aac634aa30664babac7428c06ad798283.camel@ndufresne.ca>","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv\n\tsupport","From":"Nicolas Dufresne <nicolas@ndufresne.ca>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>","Date":"Mon, 22 Jan 2024 11:37:56 -0500","In-Reply-To":"<170593893012.1011926.15271395787908698019@ping.linuxembedded.co.uk>","References":"<20240119200848.358298-1-nicolas@ndufresne.ca>\n\t<20240122105246.GA26784@pendragon.ideasonboard.com>\n\t<170593893012.1011926.15271395787908698019@ping.linuxembedded.co.uk>","Autocrypt":"addr=nicolas@ndufresne.ca; prefer-encrypt=mutual;\n\tkeydata=mQGiBEUQN0MRBACQYceNSezSdMjx7sx6gwKkMghrrODgl3B0eXBTgNp6c431IfOOEsdvkoOh1kwoYcQgbg4MXw6beOltysX4e8fFWsiRkc2nvvRW9ir9kHDm49MkBLqaDjTqOkYKNMiurFW+gozpr/lUW15QqT6v68RYe0zRdtwGZqeLzX2LVuukGwCg4AISzswrrYHNV7vQLcbaUhPgIl0D+gILYT9TJgAEK4YHW+bFRcY+cgUFoLQqQayECMlctKoLOE69nIYOc/hDr9uih1wxrQ/yL0NJvQCohSPyoyLF9b2EuIGhQVp05XP7FzlTxhYvGO/DtO08ec85+bTfVBMV6eeY4MS3ZU+1z7ObD7Pf29YjyTehN2Dan6w1g2rBk5MoA/9nDocSlk4pbFpsYSFmVHsDiAOFje3+iY4ftVDKunKYWMhwRVBjAREOByBagmRau0cLEcElpf4hX5f978GoxSGIsiKoDAlXX+ICDOWC1/EXhEEmBR1gL0QJgiVviNyLfGJlZWnPjw6xhhmtHYWTDxBOP5peztyc2PqeKsLsLWzAr7RDTmljb2xhcyBEdWZyZXNuZSAoQi4gU2MuIEluZm9ybWF0aXF1ZSkgPG5pY29sYXMuZHVmcmVzbmVAZ21haWwuY29tPohgBBMRAgAgBQJFlCyOAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQcVMCLawGqBwhLQCgzYlrLBj6KIAZ4gmsfjXD6ZtddT8AoIeGDicVq5WvMHNWign6ApQcZUihtElOaWNvbGFzIER1ZnJlc25lIChCLiBTYy4gSW5mb3JtYXRpcXVlKSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+iGIEExECACIFAkuzca8CGwMGCwkIBwMCBhUIAgkKCwQWA\n\tgMBAh4BAheAAAoJEHFTAi2sBqgcQX8An2By6LDEeMxi4B9hUbpvRnzaaeNqA\n\tJ9Rox8rfqHZnSErw9bCHiBwvwJZ77QxTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPohiBBMRAgAiBQJNzZzPAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBxUwItrAaoHLlxAKCYAGf4JL7DYDLs/188CPMGuwLypwCfWKc9DorA9f5pyYlD5pQo6SgSoiC0J05pY29sYXMgRHVmcmVzbmUgPG5pY29sYXNAbmR1ZnJlc25lLmNhPohiBBMRAgAiBQJVwNwgAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBxUwItrAaoHCZ4AJ0QwU6/G4c7h9CkMBT9ZxGLX4KSnQCgq0P7CX7hv/M7HeyfMFZe8t3vAEW0RE5pY29sYXMgRHVmcmVzbmUgKEIuIFNjLiBJbmZvcm1hdGlxdWUpIDxuaWNvbGFzZEBibHVlc3RyZWFrdGVjaC5jb20+iGAEExECACAFAkZjGzoCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBxUwItrAaoHBl7AJ0d2lrzshMmJaik/EaDEakzEwqgxQCg0JVZMZm9gRfEou1FvinuZxwf/mu0R05pY29sYXMgRHVmcmVzbmUgKEIgU2MuIEluZm9ybWF0aXF1ZSkgPG5pY29sYXMuZHVmcmVzbmVAdXNoZXJicm9va2UuY2E+iGAEExECACAFAkUQN0MCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBxUwItrAaoHPTnAJ0WGgJJVspoctAvEcI00mtp5WAFGgCgr+E7ItOqZEHAs+xabBgknYZIFPW5Ag0ERRA3UhAIAJ0rxl2HsVg/nSOAUt7U/T/W+RKzVAlD9orCB0pRVvyWNxSr8MHcH\n\tmWCxykLuB34ouM4GuDVRKfGnqLzJRBfjs7Ax9K2FI3Odund9xpviLCt1jFC0K\n\tXL04RebrFT7xjDfocDaSLFvgxMVs/Jr2/ckKPId1oKvgYgt/o+MzUabKyFB8wIvq4GMtj3LoBKLCie2nCaSt7uVUt6q2t5bNWrd3lO6/mWn7YMc5Hsn33H9pS0+9szw6m3dG08eMKNueDlt72QxiYl2rhjzkT4ltKEkFgYBdyrtIj1UO6eX+YXb4E1rCMJrdjBSgqDPK1sWHC7gliy+izr+XTHuFwlfy8gBpsAAwUIAJJNus64gri4HAL632eqVpza83EphX1IuHzLi1LlMnQ9Tm7XKag46NhmJbOByMG33LwBsBdLjjHQSVkYZFWUifq+NWSFC/kqlb72vW8rBAv64+i3QdfxK9FWbweiRsPpvuHjJQuecbPDJpubLaxKbu2aqLCN5LuHXvdQr6KiXwabT+OJ9AJAqHG7q4IEzg4RNUVn9AS6L8bxqMSocjqpWNBCY2efCVd/c6k4Acv6jXu+wDAZEbWXK+71uaUHExhigBYBpiHGrobe32YlTVE/XEIzKKywhm/Hkn5YKWzumLte6xiD9JhKabmD7uqIvLt2twUpz4BdPzj0dvGlSmvFcaaISQQYEQIACQUCRRA3UgIbDAAKCRBxUwItrAaoHJLyAKDeS3AFowM3f1Y3OFU6XRCTKK2ZhwCfT/7P9WDjkkmiq5AfeOiwVlpuHtM=","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","User-Agent":"Evolution 3.50.3 (3.50.3-1.fc39) ","MIME-Version":"1.0","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28547,"web_url":"https://patchwork.libcamera.org/comment/28547/","msgid":"<170594731366.3044059.12583887117737480060@ping.linuxembedded.co.uk>","date":"2024-01-22T18:15:13","subject":"Re: [libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv\n\tsupport","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Nicolas Dufresne (2024-01-22 16:37:56)\n> Le lundi 22 janvier 2024 à 15:55 +0000, Kieran Bingham a écrit :\n> > Quoting Laurent Pinchart (2024-01-22 10:52:46)\n> > > Hi Nicolas,\n> > > \n> > > Thank you for the patch.\n> > > \n> > > On Fri, Jan 19, 2024 at 03:08:47PM -0500, Nicolas Dufresne via libcamera-devel wrote:\n> > > > From: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> > > > \n> > > > This change to the build system will prepend the plugin build directory\n> > > > to GST_PLUGIN_PATH environment. This makes the built plugin visible to\n> > > > GStreamer inside meson devenv enabling uninstalled testing. In order to avoid\n> > > > pulluting the user registry, the GST_REGISTRY environement is also set.\n> > > \n> > > s/pulluting/polluting/\n> > > \n> > \n> > s/environement/envronment/ too if you're fixing up while applying.\n>                  environment\n> \n> Difficult to type word clearly,\n\nAbsuluuutaly. ;-)\n\nThanks\n--\nKieran\n\n> Nicolas\n> > \n> > \n> > > > \n> > > > Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n> > > > ---\n> > > > Changes in V2:\n> > > >   - Use gst_ prefix for the path and env\n> > > >   - Don't call fs.parent twice\n> > > >   - Set GST_REGISTRY\n> > > >   - Update the documentation\n> > > > \n> > > >  README.rst                |  7 ++++---\n> > > >  src/gstreamer/meson.build | 11 +++++++++++\n> > > >  2 files changed, 15 insertions(+), 3 deletions(-)\n> > > > \n> > > > diff --git a/README.rst b/README.rst\n> > > > index 315738ee..a7e0561f 100644\n> > > > --- a/README.rst\n> > > > +++ b/README.rst\n> > > > @@ -120,12 +120,13 @@ setting the ``LIBCAMERA_LOG_LEVELS`` environment variable:\n> > > >  Using GStreamer plugin\n> > > >  ~~~~~~~~~~~~~~~~~~~~~~\n> > > >  \n> > > > -To use GStreamer plugin from source tree, set the following environment so that\n> > > > -GStreamer can find it. This isn't necessary when libcamera is installed.\n> > > > +To use GStreamer plugin from source tree, use meson ``devenv`` command.\n> > > \n> > \n> > s/from source tree/from the source tree/\n> > \n> > > s/use meson/use the meson/\n> > > \n> > > > +This will create a new shell instance with ``GST_PLUGIN_PATH`` environment set\n> > > \n> > > s/with/with the/\n> > > \n> > > > +accordingly.\n> > > >  \n> > > >  .. code::\n> > > >  \n> > > > -  export GST_PLUGIN_PATH=$(pwd)/build/src/gstreamer\n> > > > +  meson devenv -C build\n> > > >  \n> > > >  The debugging tool ``gst-launch-1.0`` can be used to construct a pipeline and\n> > > >  test it. The following pipeline will stream from the camera named \"Camera 1\"\n> > > > diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build\n> > > > index 20784b71..1536fd23 100644\n> > > > --- a/src/gstreamer/meson.build\n> > > > +++ b/src/gstreamer/meson.build\n> > > > @@ -46,3 +46,14 @@ libcamera_gst = shared_library('gstlibcamera',\n> > > >      install : true,\n> > > >      install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),\n> > > >  )\n> > > > +\n> > > > +# Makes the plugin visible to GStreamer inside meson devenv\n> > > \n> > > s/Makes/Make/\n> > > s/$/./\n> > > \n> > > > +fs = import('fs')\n> > > > +gst_plugin_path = fs.parent(libcamera_gst.full_path())\n> > > > +\n> > > > +gst_env = environment()\n> > > > +gst_env.prepend('GST_PLUGIN_PATH', gst_plugin_path)\n> > \n> > I'd add a blank line here, but I don't care ;D We've nitpicked the rest\n> > of the patch!\n> > \n> > \n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > \n> > > > +# Avoid polluting the system registry\n> > > \n> > > s/$/./\n> > > \n> > > I'll fix those when applying. Looking forward to start using meson\n> > > devenv :-)\n> > > \n> > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > \n> > > > +gst_env.set('GST_REGISTRY', gst_plugin_path / 'registry.data')\n> > > > +\n> > > > +meson.add_devenv(gst_env)\n> > > \n> > > -- \n> > > Regards,\n> > > \n> > > Laurent Pinchart\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B826AC323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 22 Jan 2024 18:15:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E188661D30;\n\tMon, 22 Jan 2024 19:15:18 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4974661D30\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 22 Jan 2024 19:15:17 +0100 (CET)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 08C40C67;\n\tMon, 22 Jan 2024 19:14:04 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"uuIYjHEh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1705947244;\n\tbh=7o/Id3loqE8g2kuHhUfa2q4VCO2Cb9UpwJjJw2niWgc=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=uuIYjHEhXGwzEDcUUua0H4t/HGvmIWnKsuwsh6cLrgYlheH4wMApbjSrH8Vve9SyF\n\tFBLLIXlDLZrDehkCqW7WdPfBoVKXEoYciDnkRE7ZcD75SHMHxhxeWtCk7cN4vrF3f+\n\tXTJIvhhbKb3X31+LvuZiAkqnbRWgldXoVc+uuNQ4=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<e867ec8aac634aa30664babac7428c06ad798283.camel@ndufresne.ca>","References":"<20240119200848.358298-1-nicolas@ndufresne.ca>\n\t<20240122105246.GA26784@pendragon.ideasonboard.com>\n\t<170593893012.1011926.15271395787908698019@ping.linuxembedded.co.uk>\n\t<e867ec8aac634aa30664babac7428c06ad798283.camel@ndufresne.ca>","Subject":"Re: [libcamera-devel] [PATCH v2 1/2] gstreamer: Add meson devenv\n\tsupport","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tNicolas Dufresne <nicolas@ndufresne.ca>","Date":"Mon, 22 Jan 2024 18:15:13 +0000","Message-ID":"<170594731366.3044059.12583887117737480060@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]