[{"id":21550,"web_url":"https://patchwork.libcamera.org/comment/21550/","msgid":"<163845591828.2211244.15377602963323384363@Monstersaurus>","date":"2021-12-02T14:38:38","subject":"Re: [libcamera-devel] [PATCH v7 4/5] libcamera: camera_lens: add\n\tCameraLens as a member of CameraSensor","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Han-Lin,\n\nThanks, I think this is a better place/way to model the Lens.\n\nQuoting Han-Lin Chen (2021-12-02 14:03:16)\n> Add CameraLens as a member of CameraSenosr. The patch does not implement how\n\n/CameraSenosr/CameraSensor/\n\n> to link the lens to the specific sensor yet. Only to provide an interface for\n> pipeline handler's usage.\n\nAnd I think that's fine while we wait for the links to land. It means\nthe plumbing is in place, and a CameraSensor just needs to\nconstruct/initialise a CameraLens when it is constructed based on its\nlinks.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> \n> Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org>\n> ---\n>  include/libcamera/internal/camera_sensor.h | 5 +++++\n>  src/libcamera/camera_sensor.cpp            | 8 ++++++++\n>  2 files changed, 13 insertions(+)\n> \n> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h\n> index d25a1165..8e97a80e 100644\n> --- a/include/libcamera/internal/camera_sensor.h\n> +++ b/include/libcamera/internal/camera_sensor.h\n> @@ -24,6 +24,7 @@\n>  namespace libcamera {\n>  \n>  class BayerFormat;\n> +class CameraLens;\n>  class MediaEntity;\n>  \n>  class CameraSensor : protected Loggable\n> @@ -60,6 +61,8 @@ public:\n>  \n>         void updateControlInfo();\n>  \n> +       CameraLens *lens() { return lens_.get(); }\n> +\n>  protected:\n>         std::string logPrefix() const override;\n>  \n> @@ -91,6 +94,8 @@ private:\n>         const BayerFormat *bayerFormat_;\n>  \n>         ControlList properties_;\n> +\n> +       std::unique_ptr<CameraLens> lens_;\n>  };\n>  \n>  } /* namespace libcamera */\n> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\n> index 6151b32e..b386e7b0 100644\n> --- a/src/libcamera/camera_sensor.cpp\n> +++ b/src/libcamera/camera_sensor.cpp\n> @@ -20,6 +20,7 @@\n>  #include <libcamera/base/utils.h>\n>  \n>  #include \"libcamera/internal/bayer_format.h\"\n> +#include \"libcamera/internal/camera_lens.h\"\n>  #include \"libcamera/internal/camera_sensor_properties.h\"\n>  #include \"libcamera/internal/formats.h\"\n>  #include \"libcamera/internal/sysfs.h\"\n> @@ -787,6 +788,13 @@ void CameraSensor::updateControlInfo()\n>         subdev_->updateControlInfo();\n>  }\n>  \n> +/**\n> + * \\fn CameraSensor::lens()\n> + * \\brief Retrieve the lens controller\n> + *\n> + * \\return The lens controller. nullptr if no lens is connected to the sensor\n> + */\n> +\n>  std::string CameraSensor::logPrefix() const\n>  {\n>         return \"'\" + entity_->name() + \"'\";\n> -- \n> 2.34.1.400.ga245620fadb-goog\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 752A5BDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 Dec 2021 14:38:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D55F96082A;\n\tThu,  2 Dec 2021 15:38:41 +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 C046E6011A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 Dec 2021 15:38:40 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 63A25D8C;\n\tThu,  2 Dec 2021 15:38:40 +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=\"H0IjkPoB\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1638455920;\n\tbh=JuWaZzDxkubJwbE6UD5dQmx3W8cWrcCwd/p6h5Bltkg=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=H0IjkPoB2uo+ViEAS2N9SehzUiyACn9Z6xnWOljKUJkQtGhiUPEKb2mJgRHZf59+D\n\tX783BblJ5bXzsT/q3P9j8WoattvWCu2tMWDM4ejG43YxpAqToxIjzLg+XiZuM3xxIk\n\t2WwjZkyoj9vG0dyjNBfy3X37aR7WdKKV1yej+rZg=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20211202140317.3118364-5-hanlinchen@chromium.org>","References":"<20211202140317.3118364-1-hanlinchen@chromium.org>\n\t<20211202140317.3118364-5-hanlinchen@chromium.org>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Han-Lin Chen <hanlinchen@chromium.org>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 02 Dec 2021 14:38:38 +0000","Message-ID":"<163845591828.2211244.15377602963323384363@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v7 4/5] libcamera: camera_lens: add\n\tCameraLens as a member of CameraSensor","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":21554,"web_url":"https://patchwork.libcamera.org/comment/21554/","msgid":"<c91f95b9-e2fd-29f2-e18b-2193f11e4b38@ideasonboard.com>","date":"2021-12-02T17:17:14","subject":"Re: [libcamera-devel] [PATCH v7 4/5] libcamera: camera_lens: add\n\tCameraLens as a member of CameraSensor","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hello,\n\nOn 12/2/21 8:08 PM, Kieran Bingham wrote:\n> Hi Han-Lin,\n>\n> Thanks, I think this is a better place/way to model the Lens.\n\n\nYeah, I was thinking of Pipeline-handlers but this seems okay to me as well,\n\nunless some pipeline-handler wants to manage it on its own (quirks).\n\n>\n> Quoting Han-Lin Chen (2021-12-02 14:03:16)\n>> Add CameraLens as a member of CameraSenosr. The patch does not implement how\n> /CameraSenosr/CameraSensor/\n>\n>> to link the lens to the specific sensor yet. Only to provide an interface for\n>> pipeline handler's usage.\n> And I think that's fine while we wait for the links to land. It means\n> the plumbing is in place, and a CameraSensor just needs to\n> construct/initialise a CameraLens when it is constructed based on its\n> links.\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n>\n>> Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org>\n>> ---\n>>   include/libcamera/internal/camera_sensor.h | 5 +++++\n>>   src/libcamera/camera_sensor.cpp            | 8 ++++++++\n>>   2 files changed, 13 insertions(+)\n>>\n>> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h\n>> index d25a1165..8e97a80e 100644\n>> --- a/include/libcamera/internal/camera_sensor.h\n>> +++ b/include/libcamera/internal/camera_sensor.h\n>> @@ -24,6 +24,7 @@\n>>   namespace libcamera {\n>>   \n>>   class BayerFormat;\n>> +class CameraLens;\n>>   class MediaEntity;\n>>   \n>>   class CameraSensor : protected Loggable\n>> @@ -60,6 +61,8 @@ public:\n>>   \n>>          void updateControlInfo();\n>>   \n>> +       CameraLens *lens() { return lens_.get(); }\n>> +\n>>   protected:\n>>          std::string logPrefix() const override;\n>>   \n>> @@ -91,6 +94,8 @@ private:\n>>          const BayerFormat *bayerFormat_;\n>>   \n>>          ControlList properties_;\n>> +\n>> +       std::unique_ptr<CameraLens> lens_;\n>>   };\n>>   \n>>   } /* namespace libcamera */\n>> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\n>> index 6151b32e..b386e7b0 100644\n>> --- a/src/libcamera/camera_sensor.cpp\n>> +++ b/src/libcamera/camera_sensor.cpp\n>> @@ -20,6 +20,7 @@\n>>   #include <libcamera/base/utils.h>\n>>   \n>>   #include \"libcamera/internal/bayer_format.h\"\n>> +#include \"libcamera/internal/camera_lens.h\"\n>>   #include \"libcamera/internal/camera_sensor_properties.h\"\n>>   #include \"libcamera/internal/formats.h\"\n>>   #include \"libcamera/internal/sysfs.h\"\n>> @@ -787,6 +788,13 @@ void CameraSensor::updateControlInfo()\n>>          subdev_->updateControlInfo();\n>>   }\n>>   \n>> +/**\n>> + * \\fn CameraSensor::lens()\n>> + * \\brief Retrieve the lens controller\n>> + *\n>> + * \\return The lens controller. nullptr if no lens is connected to the sensor\n>> + */\n>> +\n>>   std::string CameraSensor::logPrefix() const\n>>   {\n>>          return \"'\" + entity_->name() + \"'\";\n>> -- \n>> 2.34.1.400.ga245620fadb-goog\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 DEC1EBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 Dec 2021 17:17:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 52B9C6082A;\n\tThu,  2 Dec 2021 18:17:22 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DACCB6011A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 Dec 2021 18:17:20 +0100 (CET)","from [192.168.1.106] (unknown [103.251.226.170])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 51E4F2A5;\n\tThu,  2 Dec 2021 18:17: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=\"S8izlj5K\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1638465440;\n\tbh=efYGDvnE+mZegKseAtRCEJmrIw60G6ejBZAlzwtPqyw=;\n\th=Subject:To:References:From:Date:In-Reply-To:From;\n\tb=S8izlj5Kc09gzHdsPMbGOnMb905VChIGckz+MlWSXIKJjCNYRJXJIwvf8ZA74lrus\n\tdkWe7/DgVWvuAW9nN5/aghikCl7wx8Q6DpfvWTGLvRlA3NeB31WBIk1i2kzDWgzTmk\n\tmVSCbrvdfK0zxAdv62nccEG+KLMgUW74We7rDe9U=","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tHan-Lin Chen <hanlinchen@chromium.org>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20211202140317.3118364-1-hanlinchen@chromium.org>\n\t<20211202140317.3118364-5-hanlinchen@chromium.org>\n\t<163845591828.2211244.15377602963323384363@Monstersaurus>","From":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<c91f95b9-e2fd-29f2-e18b-2193f11e4b38@ideasonboard.com>","Date":"Thu, 2 Dec 2021 22:47:14 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.10.2","MIME-Version":"1.0","In-Reply-To":"<163845591828.2211244.15377602963323384363@Monstersaurus>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Transfer-Encoding":"7bit","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v7 4/5] libcamera: camera_lens: add\n\tCameraLens as a member of CameraSensor","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":21558,"web_url":"https://patchwork.libcamera.org/comment/21558/","msgid":"<YalqoXzuKpvj/gcg@pendragon.ideasonboard.com>","date":"2021-12-03T00:53:53","subject":"Re: [libcamera-devel] [PATCH v7 4/5] libcamera: camera_lens: add\n\tCameraLens as a member of CameraSensor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Han-lin,\n\nThank you for the patch.\n\nOn Thu, Dec 02, 2021 at 10:03:16PM +0800, Han-Lin Chen wrote:\n> Add CameraLens as a member of CameraSenosr. The patch does not implement how\n\ns/CameraSenosr/CameraSensor/\n\n> to link the lens to the specific sensor yet. Only to provide an interface for\n> pipeline handler's usage.\n\nIt's a good idea, it can be merged right away, and allows rebasing\nongoing developments on top.\n\n> Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org>\n> ---\n>  include/libcamera/internal/camera_sensor.h | 5 +++++\n>  src/libcamera/camera_sensor.cpp            | 8 ++++++++\n>  2 files changed, 13 insertions(+)\n> \n> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h\n> index d25a1165..8e97a80e 100644\n> --- a/include/libcamera/internal/camera_sensor.h\n> +++ b/include/libcamera/internal/camera_sensor.h\n> @@ -24,6 +24,7 @@\n>  namespace libcamera {\n>  \n>  class BayerFormat;\n> +class CameraLens;\n>  class MediaEntity;\n>  \n>  class CameraSensor : protected Loggable\n> @@ -60,6 +61,8 @@ public:\n>  \n>  \tvoid updateControlInfo();\n>  \n> +\tCameraLens *lens() { return lens_.get(); }\n> +\n>  protected:\n>  \tstd::string logPrefix() const override;\n>  \n> @@ -91,6 +94,8 @@ private:\n>  \tconst BayerFormat *bayerFormat_;\n>  \n>  \tControlList properties_;\n> +\n> +\tstd::unique_ptr<CameraLens> lens_;\n>  };\n>  \n>  } /* namespace libcamera */\n> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp\n> index 6151b32e..b386e7b0 100644\n> --- a/src/libcamera/camera_sensor.cpp\n> +++ b/src/libcamera/camera_sensor.cpp\n> @@ -20,6 +20,7 @@\n>  #include <libcamera/base/utils.h>\n>  \n>  #include \"libcamera/internal/bayer_format.h\"\n> +#include \"libcamera/internal/camera_lens.h\"\n>  #include \"libcamera/internal/camera_sensor_properties.h\"\n>  #include \"libcamera/internal/formats.h\"\n>  #include \"libcamera/internal/sysfs.h\"\n> @@ -787,6 +788,13 @@ void CameraSensor::updateControlInfo()\n>  \tsubdev_->updateControlInfo();\n>  }\n>  \n> +/**\n> + * \\fn CameraSensor::lens()\n\nI wonder if we should call this focusLens() (and focusLens_, as well as\ns/lens/focus lens/ in the rest of this comment block) as zoom lenses are\nin scope too.\n\n> + * \\brief Retrieve the lens controller\n> + *\n> + * \\return The lens controller. nullptr if no lens is connected to the sensor\n\ns/no lens/no lens controller/\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> + */\n> +\n>  std::string CameraSensor::logPrefix() const\n>  {\n>  \treturn \"'\" + entity_->name() + \"'\";","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 4E422BDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  3 Dec 2021 00:54:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ACA6E60592;\n\tFri,  3 Dec 2021 01:54:21 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DBE7760118\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  3 Dec 2021 01:54:19 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3B99FA59;\n\tFri,  3 Dec 2021 01: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=\"o91GsrBi\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1638492859;\n\tbh=elMWECYUY3RFzvJFUd+iPnCHIQv3pWA6ju7V1+aswIU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=o91GsrBim5J8PpKrP+jjJNiFgyrNVS+Oc6258V48awYawpb3kwziwSHlh+tTHaq/+\n\tz5D9yMVwpXl5wcixSznlRYOGORLT0Fn79lSbz4tjmYn2CS9jwQHeBOZONVJu+J78wX\n\tHraT3vY8IJFpiCNdiRQl+BCvhdiiKCMClphW6WyM=","Date":"Fri, 3 Dec 2021 02:53:53 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Han-Lin Chen <hanlinchen@chromium.org>","Message-ID":"<YalqoXzuKpvj/gcg@pendragon.ideasonboard.com>","References":"<20211202140317.3118364-1-hanlinchen@chromium.org>\n\t<20211202140317.3118364-5-hanlinchen@chromium.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20211202140317.3118364-5-hanlinchen@chromium.org>","Subject":"Re: [libcamera-devel] [PATCH v7 4/5] libcamera: camera_lens: add\n\tCameraLens as a member of CameraSensor","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>"}}]