[{"id":35019,"web_url":"https://patchwork.libcamera.org/comment/35019/","msgid":"<175318462236.50296.10206684325462304267@ping.linuxembedded.co.uk>","date":"2025-07-22T11:43:42","subject":"Re: [PATCH v2 1/3] gstreamer: Fix reconfiguration condition check","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"+Nicolas,\n\nQuoting Jaslo Ziska (2025-07-22 11:39:28)\n> gst_pad_peer_query_accept_caps() might only check if the caps are\n> acceptable with the peer element, but not recursively with all\n> downstream elements. If the reconfigure flag was set because the\n> pipeline downstream changed, gst_pad_peer_query_accept_caps() might still\n> return true, even though downstream can't handle the current caps, which\n> causes a not-negotiated error.\n> \n> This commit fixes this issue by emitting a query event which\n> recursively checks with all downstream elements. Because at this point\n> we are only interested in whether the current caps are still acceptable,\n> use the currently used caps as a filter and then check if the query\n> returned empty caps.\n> \n> Signed-off-by: Jaslo Ziska <jaslo@ziska.de>\n> ---\n>  src/gstreamer/gstlibcamerasrc.cpp | 3 ++-\n>  1 file changed, 2 insertions(+), 1 deletion(-)\n> \n> diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\n> index 3aca4eed..7f4a39ec 100644\n> --- a/src/gstreamer/gstlibcamerasrc.cpp\n> +++ b/src/gstreamer/gstlibcamerasrc.cpp\n> @@ -730,7 +730,8 @@ gst_libcamera_src_task_run(gpointer user_data)\n>                 if (gst_pad_check_reconfigure(srcpad)) {\n>                         /* Check if the caps even need changing. */\n>                         g_autoptr(GstCaps) caps = gst_pad_get_current_caps(srcpad);\n> -                       if (!gst_pad_peer_query_accept_caps(srcpad, caps)) {\n> +                       g_autoptr(GstCaps) peercaps = gst_pad_peer_query_caps(srcpad, caps);\n> +                       if (gst_caps_is_empty(peercaps)) {\n\nThis looks good to me, and tackles Nicolas' previous review comments.\n\nAdding Nicolas for awareness of the updated series.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n>                                 reconfigure = true;\n>                                 break;\n>                         }\n> -- \n> 2.50.0\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 447A5BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Jul 2025 11:43:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EF89569031;\n\tTue, 22 Jul 2025 13:43:45 +0200 (CEST)","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 B3EB568F93\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Jul 2025 13:43:44 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2F87E11E6;\n\tTue, 22 Jul 2025 13:43:07 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"LanRPcJq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1753184587;\n\tbh=NANXr1qKOa9rRAThV+PrmZTPGMbdsUh1bF9doVH4JBQ=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=LanRPcJqpHC6DlolSePbqXFXjtclJ+rtWEjHg9ILwa0JUhs1HZ5oqpqF57uo1zXqp\n\tC+IDysDKhA/dKLHQf9yrDrY4zlOYzvTmdEER/G6/NbR7CYiZtAtK4XTL70D9gE4Dyu\n\tfxVN2lcO5ACuKN6THe+8z+H605vWt8mrqfnlERws=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250722105627.11961-2-jaslo@ziska.de>","References":"<20250722105627.11961-1-jaslo@ziska.de>\n\t<20250722105627.11961-2-jaslo@ziska.de>","Subject":"Re: [PATCH v2 1/3] gstreamer: Fix reconfiguration condition check","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Jaslo Ziska <jaslo@ziska.de>","To":"Jaslo Ziska <jaslo@ziska.de>, libcamera-devel@lists.libcamera.org,\n\tNicolas Dufresne <nicolas@ndufresne.ca>, ","Date":"Tue, 22 Jul 2025 12:43:42 +0100","Message-ID":"<175318462236.50296.10206684325462304267@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":35039,"web_url":"https://patchwork.libcamera.org/comment/35039/","msgid":"<kvphb3kbmyqqehglb4mvcf3j7biucsooknp7nmntgmht4d6ecz@gizm3ga4aszc>","date":"2025-07-23T09:02:03","subject":"Re: [PATCH v2 1/3] gstreamer: Fix reconfiguration condition check","submitter":{"id":232,"url":"https://patchwork.libcamera.org/api/people/232/","name":"Umang Jain","email":"uajain@igalia.com"},"content":"On Tue, Jul 22, 2025 at 12:39:28PM +0200, Jaslo Ziska wrote:\n> gst_pad_peer_query_accept_caps() might only check if the caps are\n> acceptable with the peer element, but not recursively with all\n> downstream elements. If the reconfigure flag was set because the\n> pipeline downstream changed, gst_pad_peer_query_accept_caps() might still\n> return true, even though downstream can't handle the current caps, which\n> causes a not-negotiated error.\n> \n> This commit fixes this issue by emitting a query event which\n> recursively checks with all downstream elements. Because at this point\n> we are only interested in whether the current caps are still acceptable,\n> use the currently used caps as a filter and then check if the query\n> returned empty caps.\n> \n\nnit: Commit message's last line needs to be properly structured.\n\n```\nBecause at this point we are only interested in checking whether the\ncurrent caps are still acceptable for downstream elements hence, use\nthe currently configured caps on the source pad as a filter, to check\nif the gst_pad_peer_query_caps() returned empty caps.\n```\n\n> Signed-off-by: Jaslo Ziska <jaslo@ziska.de>\n\nReviewed-by: Umang Jain <uajain@igalia.com>\n> ---\n>  src/gstreamer/gstlibcamerasrc.cpp | 3 ++-\n>  1 file changed, 2 insertions(+), 1 deletion(-)\n> \n> diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\n> index 3aca4eed..7f4a39ec 100644\n> --- a/src/gstreamer/gstlibcamerasrc.cpp\n> +++ b/src/gstreamer/gstlibcamerasrc.cpp\n> @@ -730,7 +730,8 @@ gst_libcamera_src_task_run(gpointer user_data)\n>  \t\tif (gst_pad_check_reconfigure(srcpad)) {\n>  \t\t\t/* Check if the caps even need changing. */\n>  \t\t\tg_autoptr(GstCaps) caps = gst_pad_get_current_caps(srcpad);\n> -\t\t\tif (!gst_pad_peer_query_accept_caps(srcpad, caps)) {\n> +\t\t\tg_autoptr(GstCaps) peercaps = gst_pad_peer_query_caps(srcpad, caps);\n> +\t\t\tif (gst_caps_is_empty(peercaps)) {\n>  \t\t\t\treconfigure = true;\n>  \t\t\t\tbreak;\n>  \t\t\t}\n> -- \n> 2.50.0\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 A4060C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 23 Jul 2025 09:02:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 62DE66904C;\n\tWed, 23 Jul 2025 11:02:00 +0200 (CEST)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A833A68FB6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Jul 2025 11:01:58 +0200 (CEST)","from [49.36.71.87] (helo=uajain) by fanzine2.igalia.com with\n\tesmtpsa \n\t(Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1ueVML-002Vvp-4X; Wed, 23 Jul 2025 11:01:57 +0200"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=igalia.com header.i=@igalia.com\n\theader.b=\"bU8An4zl\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;\n\ts=20170329;\n\th=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:\n\tSubject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=foJ+5AcDmUhUdmXugViZBaJZIsFrujvg+m7LokZ5nD0=;\n\tb=bU8An4zld2A8vLxayKz59vqQku\n\tYGW7WFZyH6PaEtCPVbDwkAnJ4UQl9S1HFtjvdjozB6bg+cxbOEKXJLwjT3nClP5VToIkzeFyEXScW\n\t9VGoLVUZkqmcZDjv7rrNCtSP+cU9+qA5+CtJTcn10NpgmO5KO0eY2Qlh9EM95sihrlVx1L6OLyzlZ\n\tnXXOKBYEYIb1p0DylJdPJbDJdngjmpvFU+8YToWK4airoaCM8xQJznjM3Un6ug3OoJm91h4AQznYI\n\t+tHOKL/+2K5L5ufnKUW7OmyQJwPD4zvdZ20hCyz/bw1C8M9ShUxsu/wP7epSZ4hExo4/GYKhI0Ydg\n\tlF/uXSlQ==;","Date":"Wed, 23 Jul 2025 14:32:03 +0530","From":"Umang Jain <uajain@igalia.com>","To":"Jaslo Ziska <jaslo@ziska.de>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v2 1/3] gstreamer: Fix reconfiguration condition check","Message-ID":"<kvphb3kbmyqqehglb4mvcf3j7biucsooknp7nmntgmht4d6ecz@gizm3ga4aszc>","References":"<20250722105627.11961-1-jaslo@ziska.de>\n\t<20250722105627.11961-2-jaslo@ziska.de>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20250722105627.11961-2-jaslo@ziska.de>","User-Agent":"NeoMutt/20250510-dirty","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":35200,"web_url":"https://patchwork.libcamera.org/comment/35200/","msgid":"<be78b07f42edb0a492a1982295538e64c0376bbe.camel@collabora.com>","date":"2025-07-28T12:51:38","subject":"Re: [PATCH v2 1/3] gstreamer: Fix reconfiguration condition check","submitter":{"id":31,"url":"https://patchwork.libcamera.org/api/people/31/","name":"Nicolas Dufresne","email":"nicolas.dufresne@collabora.com"},"content":"Le mardi 22 juillet 2025 à 12:43 +0100, Kieran Bingham a écrit :\n> +Nicolas,\n> \n> Quoting Jaslo Ziska (2025-07-22 11:39:28)\n> > gst_pad_peer_query_accept_caps() might only check if the caps are\n> > acceptable with the peer element, but not recursively with all\n> > downstream elements. If the reconfigure flag was set because the\n> > pipeline downstream changed, gst_pad_peer_query_accept_caps() might still\n> > return true, even though downstream can't handle the current caps, which\n> > causes a not-negotiated error.\n> > \n> > This commit fixes this issue by emitting a query event which\n> > recursively checks with all downstream elements. Because at this point\n> > we are only interested in whether the current caps are still acceptable,\n> > use the currently used caps as a filter and then check if the query\n> > returned empty caps.\n> > \n> > Signed-off-by: Jaslo Ziska <jaslo@ziska.de>\n> > ---\n> >  src/gstreamer/gstlibcamerasrc.cpp | 3 ++-\n> >  1 file changed, 2 insertions(+), 1 deletion(-)\n> > \n> > diff --git a/src/gstreamer/gstlibcamerasrc.cpp\n> > b/src/gstreamer/gstlibcamerasrc.cpp\n> > index 3aca4eed..7f4a39ec 100644\n> > --- a/src/gstreamer/gstlibcamerasrc.cpp\n> > +++ b/src/gstreamer/gstlibcamerasrc.cpp\n> > @@ -730,7 +730,8 @@ gst_libcamera_src_task_run(gpointer user_data)\n> >                 if (gst_pad_check_reconfigure(srcpad)) {\n> >                         /* Check if the caps even need changing. */\n> >                         g_autoptr(GstCaps) caps =\n> > gst_pad_get_current_caps(srcpad);\n> > -                       if (!gst_pad_peer_query_accept_caps(srcpad, caps)) {\n> > +                       g_autoptr(GstCaps) peercaps =\n> > gst_pad_peer_query_caps(srcpad, caps);\n> > +                       if (gst_caps_is_empty(peercaps)) {\n> \n> This looks good to me, and tackles Nicolas' previous review comments.\n> \n> Adding Nicolas for awareness of the updated series.\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nLooks good to be, will improve accuracy.\n\nReviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n\n> \n> >                                 reconfigure = true;\n> >                                 break;\n> >                         }\n> > -- \n> > 2.50.0\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 5A8BEC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 28 Jul 2025 12:51:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5365069170;\n\tMon, 28 Jul 2025 14:51:44 +0200 (CEST)","from bali.collaboradmins.com (bali.collaboradmins.com\n\t[IPv6:2a01:4f8:201:9162::2])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5289569158\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 28 Jul 2025 14:51:42 +0200 (CEST)","from [IPv6:2606:6d00:11:5a76::5ac] (unknown\n\t[IPv6:2606:6d00:11:5a76::5ac])\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 bali.collaboradmins.com (Postfix) with ESMTPSA id 5A93A17E100F;\n\tMon, 28 Jul 2025 14:51:41 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=collabora.com header.i=@collabora.com\n\theader.b=\"FN5BIzPC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com;\n\ts=mail; t=1753707101;\n\tbh=JWDtHYWQ2AR0NuFhnZ36zp1I0P5F66/JxJV/5fuE354=;\n\th=Subject:From:To:Date:In-Reply-To:References:From;\n\tb=FN5BIzPC4F386OaZQkIbDEQIwgF0b6VYfhP8DgANxgwDPW8eLCa74XKalnGCBKMso\n\tz2c4fm7G3snLDyz80S+b3dJaLLNfps5pZejFlmogSGhDN/T0u7b54rWNUTEaix+kGP\n\tWhB38ROdpU/ZEf+hL1POkCUZsCdN1IeUV9y8PP5gqTxy1WWALOJM2eZpDU+zpsf2NE\n\tI6jWM96aiF8q1B3XcBTijdw1hj716rBl/iqfG6k7hembabuSEfAevV466LO+H4hOhf\n\tMeAAPFnlPBNYnTUigYp/EfSMA8GTbrviX4wkgsSu1bkpApjhbfcKVZv7TL58cMWjCS\n\tGLLkR9hArfJfQ==","Message-ID":"<be78b07f42edb0a492a1982295538e64c0376bbe.camel@collabora.com>","Subject":"Re: [PATCH v2 1/3] gstreamer: Fix reconfiguration condition check","From":"Nicolas Dufresne <nicolas.dufresne@collabora.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>, Jaslo Ziska\n\t<jaslo@ziska.de>, libcamera-devel@lists.libcamera.org","Date":"Mon, 28 Jul 2025 08:51:38 -0400","In-Reply-To":"<175318462236.50296.10206684325462304267@ping.linuxembedded.co.uk>","References":"<20250722105627.11961-1-jaslo@ziska.de>\n\t<20250722105627.11961-2-jaslo@ziska.de>\n\t<175318462236.50296.10206684325462304267@ping.linuxembedded.co.uk>","Autocrypt":"addr=nicolas.dufresne@collabora.com; prefer-encrypt=mutual;\n\tkeydata=mQGiBEUQN0MRBACQYceNSezSdMjx7sx6gwKkMghrrODgl3B0eXBTgNp6c431IfOOEsdvk\n\toOh1kwoYcQgbg4MXw6beOltysX4e8fFWsiRkc2nvvRW9ir9kHDm49MkBLqaDjTqOkYKNMiurFW+go\n\tzpr/lUW15QqT6v68RYe0zRdtwGZqeLzX2LVuukGwCg4AISzswrrYHNV7vQLcbaUhPgIl0D+gILYT9\n\tTJgAEK4YHW+bFRcY+cgUFoLQqQayECMlctKoLOE69nIYOc/hDr9uih1wxrQ/yL0NJvQCohSPyoyLF\n\t9b2EuIGhQVp05XP7FzlTxhYvGO/DtO08ec85+bTfVBMV6eeY4MS3ZU+1z7ObD7Pf29YjyTehN2Dan\n\t6w1g2rBk5MoA/9nDocSlk4pbFpsYSFmVHsDiAOFje3+iY4ftVDKunKYWMhwRVBjAREOByBagmRau0\n\tcLEcElpf4hX5f978GoxSGIsiKoDAlXX+ICDOWC1/EXhEEmBR1gL0QJgiVviNyLfGJlZWnPjw6xhhm\n\ttHYWTDxBOP5peztyc2PqeKsLsLWzAr7QnTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhc0BuZHVmcmVz\n\tbmUuY2E+iGIEExECACIFAlXA3CACGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHFTAi2sB\n\tqgcJngAnRDBTr8bhzuH0KQwFP1nEYtfgpKdAKCrQ/sJfuG/8zsd7J8wVl7y3e8ARbRDTmljb2xhcy\n\tBEdWZyZXNuZSAoQi4gU2MuIEluZm9ybWF0aXF1ZSkgPG5pY29sYXMuZHVmcmVzbmVAZ21haWwuY29\n\ttPohgBBMRAgAgBQJFlCyOAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQcVMCLawGqBwhLQCg\n\tzYlrLBj6KIAZ4gmsfjXD6ZtddT8AoIeGDicVq5WvMHNWign6ApQcZUihtElOaWNvbGFzIER1ZnJlc\n\t25lIChCLiBTYy4gSW5mb3JtYXRpcXVlKSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udW\n\ts+iGIEExECACIFAkuzca8CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHFTAi2sBqgcQX8\n\tAn2By6LDEeMxi4B9hUbpvRnzaaeNqAJ9Rox8rfqHZnSErw9bCHiBwvwJZ77QxTmljb2xhcyBEdWZy\n\tZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPohiBBMRAgAiBQJNzZzPAhsDBgsJC\n\tAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBxUwItrAaoHLlxAKCYAGf4JL7DYDLs/188CPMGuwLypw\n\tCfWKc9DorA9f5pyYlD5pQo6SgSoiC0R05pY29sYXMgRHVmcmVzbmUgKEIgU2MuIEluZm9ybWF0aXF\n\t1ZSkgPG5pY29sYXMuZHVmcmVzbmVAdXNoZXJicm9va2UuY2E+iGAEExECACAFAkUQN0MCGwMGCwkI\n\tBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBxUwItrAaoHPTnAJ0WGgJJVspoctAvEcI00mtp5WAFGgCgr\n\t+E7ItOqZEHAs+xabBgknYZIFPU=","Organization":"Collabora Canada","Content-Type":"multipart/signed; micalg=\"pgp-sha1\";\n\tprotocol=\"application/pgp-signature\"; \n\tboundary=\"=-7tCopcg13NyuaNCF4bqH\"","User-Agent":"Evolution 3.56.2 (3.56.2-1.fc42) ","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]