[{"id":28426,"web_url":"https://patchwork.libcamera.org/comment/28426/","msgid":"<053acc537bcf21b0042ab2d9ef0f1d35ccf99215.camel@collabora.com>","date":"2024-01-09T14:32:52","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support for pre-1.16\n\tGstEvent","submitter":{"id":31,"url":"https://patchwork.libcamera.org/api/people/31/","name":"Nicolas Dufresne","email":"nicolas.dufresne@collabora.com"},"content":"Hello,\n\nLe mardi 09 janvier 2024 à 16:30 +0200, Laurent Pinchart a écrit :\n> The gst_clear_event() function used by libcamerasrc has been introduced\n> in GStreamer 1.16, while libcamera claims to need 1.14 or newer. This\n> causes a compilation error. Fix it by copying the gst_clear_event()\n> implementation to gstlibcamera-utils.h when compiling with older\n> GStreamer version.\n> \n> The version check makes it clear that the workaround is needed with\n> older versions only, flagging it for removal when the minimum GStreamer\n> version requirement will be bumped.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nThanks for the fix, I like this solution.\n\nReviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n\n> ---\n>  src/gstreamer/gstlibcamera-utils.h | 7 +++++++\n>  1 file changed, 7 insertions(+)\n> \n> diff --git a/src/gstreamer/gstlibcamera-utils.h b/src/gstreamer/gstlibcamera-utils.h\n> index fd304a8bae15..6adeab0eb35a 100644\n> --- a/src/gstreamer/gstlibcamera-utils.h\n> +++ b/src/gstreamer/gstlibcamera-utils.h\n> @@ -25,6 +25,13 @@ void gst_libcamera_clamp_and_set_frameduration(libcamera::ControlList &controls,\n>  \t\t\t\t\t       GstStructure *element_caps);\n>  void gst_libcamera_framerate_to_caps(GstCaps *caps, const GstStructure *element_caps);\n>  \n> +#if !GST_CHECK_VERSION(1, 16, 0)\n> +static inline void gst_clear_event(GstEvent **event_ptr)\n> +{\n> +\tg_clear_pointer(event_ptr, gst_mini_object_unref);\n> +}\n> +#endif\n> +\n>  #if !GST_CHECK_VERSION(1, 17, 1)\n>  gboolean gst_task_resume(GstTask *task);\n>  #endif","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 4C0F0C323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  9 Jan 2024 14:33:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7889462B49;\n\tTue,  9 Jan 2024 15:32:59 +0100 (CET)","from madrid.collaboradmins.com (madrid.collaboradmins.com\n\t[IPv6:2a00:1098:ed:100::25])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 96AED61D7B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  9 Jan 2024 15:32:57 +0100 (CET)","from nicolas-tpx395.localdomain (cola.collaboradmins.com\n\t[195.201.22.229])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (4096 bits)\n\tserver-digest SHA256)\n\t(No client certificate requested) (Authenticated sender: nicolas)\n\tby madrid.collaboradmins.com (Postfix) with ESMTPSA id 649313782007; \n\tTue,  9 Jan 2024 14:32:56 +0000 (UTC)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1704810779;\n\tbh=kNDLaAZBHzG2nehJBjFeYuYHj9WtwFTFr6E+GWmHAn4=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=NyOKNHTnZC90JoWT+AswVBwHDckw/dL/XfSUMqEHtTtOzP4cd0QNPS3vkKHgUcuK5\n\t9CzLIGKlL7sIEvscBQvwmZNfk3KkYmc8r7DVqepE/GifXcUhmVqf7xnpn/wG/VbKyq\n\tRoOAkBXr649Ea2APRiGus4jaZfGFuiteUri2CtTZKsL1glDNm5ZCrW0JXFh8W5fLAT\n\ty2g+oHSfKKD/zk5pIwK7ccLWlKkuka6Yrqjo6rbCTIg5zPY4OyeLaoEw7ZvMoWjOSW\n\tBnIeShFradbcpo3sfmzrcDtJqAyaftNAtcUR9KH1BGhd8owB2mmQJygs74FB27l0KS\n\tL/ZxLdU7U+TzQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com;\n\ts=mail; t=1704810777;\n\tbh=kNDLaAZBHzG2nehJBjFeYuYHj9WtwFTFr6E+GWmHAn4=;\n\th=Subject:From:To:Date:In-Reply-To:References:From;\n\tb=vmBjQGI0KKp3UJme7I8X3oRv2YfxBHbJBj7wKGdu1Nn6/UYGK4QLOXwTguwK9tXFB\n\tuKImBrmHwX1M/lTi73yYA4YOEJUePt5xYBr3otYVT94vEIGx5eiZplR75Blo3sOlF7\n\tgbMlZBtn+wiDiHtTvuUPotnsKNidYYqC1sMxGlOuthTod6Om37hCCvWL9TC7t7Zs9x\n\trL+IaJP+0eeMZToU6La0vshksA6xrNG3KwZlQFcJ4LIi802eTbKs0w4xPNZwh+3+HW\n\tdbhWtu3GIqH7WrATWgq+JVyAa6xMZrBp7sJ9aV+aPDMKJysfEy5m8s6TmsRxf6j9Cc\n\tZ5sQ5ddmqwB/g=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=collabora.com\n\theader.i=@collabora.com\n\theader.b=\"vmBjQGI0\"; dkim-atps=neutral","Message-ID":"<053acc537bcf21b0042ab2d9ef0f1d35ccf99215.camel@collabora.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org","Date":"Tue, 09 Jan 2024 09:32:52 -0500","In-Reply-To":"<20240109143017.21783-1-laurent.pinchart@ideasonboard.com>","References":"<20240109143017.21783-1-laurent.pinchart@ideasonboard.com>","Autocrypt":"addr=nicolas.dufresne@collabora.com; prefer-encrypt=mutual;\n\tkeydata=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","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","User-Agent":"Evolution 3.50.2 (3.50.2-1.fc39) ","MIME-Version":"1.0","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support for pre-1.16\n\tGstEvent","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>","From":"Nicolas Dufresne via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Nicolas Dufresne <nicolas.dufresne@collabora.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28427,"web_url":"https://patchwork.libcamera.org/comment/28427/","msgid":"<170481193772.3044059.12509042566718105451@ping.linuxembedded.co.uk>","date":"2024-01-09T14:52:17","subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support for pre-1.16\n\tGstEvent","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart via libcamera-devel (2024-01-09 14:30:17)\n> The gst_clear_event() function used by libcamerasrc has been introduced\n> in GStreamer 1.16, while libcamera claims to need 1.14 or newer. This\n> causes a compilation error. Fix it by copying the gst_clear_event()\n> implementation to gstlibcamera-utils.h when compiling with older\n> GStreamer version.\n> \n> The version check makes it clear that the workaround is needed with\n> older versions only, flagging it for removal when the minimum GStreamer\n> version requirement will be bumped.\n\nSounds good to me.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/gstreamer/gstlibcamera-utils.h | 7 +++++++\n>  1 file changed, 7 insertions(+)\n> \n> diff --git a/src/gstreamer/gstlibcamera-utils.h b/src/gstreamer/gstlibcamera-utils.h\n> index fd304a8bae15..6adeab0eb35a 100644\n> --- a/src/gstreamer/gstlibcamera-utils.h\n> +++ b/src/gstreamer/gstlibcamera-utils.h\n> @@ -25,6 +25,13 @@ void gst_libcamera_clamp_and_set_frameduration(libcamera::ControlList &controls,\n>                                                GstStructure *element_caps);\n>  void gst_libcamera_framerate_to_caps(GstCaps *caps, const GstStructure *element_caps);\n>  \n> +#if !GST_CHECK_VERSION(1, 16, 0)\n> +static inline void gst_clear_event(GstEvent **event_ptr)\n> +{\n> +       g_clear_pointer(event_ptr, gst_mini_object_unref);\n> +}\n> +#endif\n> +\n>  #if !GST_CHECK_VERSION(1, 17, 1)\n>  gboolean gst_task_resume(GstTask *task);\n>  #endif\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 5228FBEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  9 Jan 2024 14:52:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3B20762B41;\n\tTue,  9 Jan 2024 15:52:22 +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 E6DC361D7B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  9 Jan 2024 15:52:20 +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 A0864552;\n\tTue,  9 Jan 2024 15:51:16 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1704811942;\n\tbh=hsy3MTgzvlX1SUpyiqDmmztlXxkhy46xQVItJHLL1sI=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=Ata9RRohZsUaboMwD5G4dDbO62kH/q50BEAyCFpRLrmt26JkFJgJ7gxGwzNhALndR\n\tNNsDEENTkkk6N6ZOjR//8aYsyyMALEpw9VY26eQ+Fm1PXMBiv1qDSZE4ZHE6TFs4Nr\n\tOBiF2Tu5ofE1Q9O0baCFWYZhikuXDfB3Lb0fOYX4wofo+8hJQ6zNXE5m+RR0RN1kKx\n\tUEpTN4qMD5X6lz/+/mPCmskoHDFvGyaUHiIbk1nLsuDBgnubPBtD287JmtLJT+WI/5\n\t+cvqUuHW626sC14Av+1gKNU+fiIBTieG462prDghx+gPyT90R9w5/YORiperCRK57p\n\t30Y67ymAhKcLg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1704811876;\n\tbh=hsy3MTgzvlX1SUpyiqDmmztlXxkhy46xQVItJHLL1sI=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=ZQATonIoSaazqtB/wNr7ZCRdMhW8NhyHdSPvyGFYn374BSs5ORjSHesGxxxTzUZ9D\n\tiFLdO1E38js5KZNzUGkN8wOui8asEihCk3WxhbWZc+AnsMLx8E90XJ1SSPn72WMjb9\n\t7nx0tw7btM3TZUd/jvT5RTbWVBmyXB5DGygNq/xU="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ZQATonIo\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20240109143017.21783-1-laurent.pinchart@ideasonboard.com>","References":"<20240109143017.21783-1-laurent.pinchart@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Tue, 09 Jan 2024 14:52:17 +0000","Message-ID":"<170481193772.3044059.12509042566718105451@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] gstreamer: Support for pre-1.16\n\tGstEvent","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Nicolas Dufresne <nicolas.dufresne@collabora.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]