[{"id":34422,"web_url":"https://patchwork.libcamera.org/comment/34422/","msgid":"<7klomccijaw35k5fbk7ci2yad52vof643n64sednizoizm5yls@pzmhkuzdtdj7>","date":"2025-06-05T07:24:24","subject":"Re: [PATCH v2 4/6] pipeline: rpi: Remove disable_startup_frame_drops\n\tconfig option","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Naush\n\nOn Thu, May 22, 2025 at 08:48:20AM +0100, Naushir Patuck wrote:\n> With the previous change to not drop frames in the pipeline handler,\n> the \"disable_startup_frame_drops\" pipeline config option is not used.\n> Remove it, and throw a warning if the option is present in the YAML\n> config file.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> ---\n>  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 7 ++++---\n>  src/libcamera/pipeline/rpi/common/pipeline_base.h   | 5 -----\n>  src/libcamera/pipeline/rpi/pisp/data/example.yaml   | 5 -----\n>  src/libcamera/pipeline/rpi/vc4/data/example.yaml    | 5 -----\n>  4 files changed, 4 insertions(+), 18 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> index 3f0b7abdc59a..bef057a70353 100644\n> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> @@ -1078,7 +1078,6 @@ void CameraData::enumerateVideoDevices(MediaLink *link, const std::string &front\n>  int CameraData::loadPipelineConfiguration()\n>  {\n>  \tconfig_ = {\n> -\t\t.disableStartupFrameDrops = false,\n>  \t\t.cameraTimeoutValue = 0,\n>  \t};\n>\n> @@ -1115,8 +1114,10 @@ int CameraData::loadPipelineConfiguration()\n>\n>  \tconst YamlObject &phConfig = (*root)[\"pipeline_handler\"];\n>\n> -\tconfig_.disableStartupFrameDrops =\n> -\t\tphConfig[\"disable_startup_frame_drops\"].get<bool>(config_.disableStartupFrameDrops);\n> +\tif (phConfig.contains(\"disable_startup_frame_drops\"))\n> +\t\tLOG(RPI, Warning)\n> +\t\t\t<< \"The disable_startup_frame_drops key is now deprecated, \"\n> +\t\t\t<< \"please use FrameMetadata::Status::FrameStartup instead.\";\n\nI wonder if the \"please use ..\" might mis-lead people that have to\nupdate their config file. Maybe\n\n\t\t\t<< \"The disable_startup_frame_drops key is now deprecated, \"\n\t\t\t<< \"startup frames are not identified by the FrameMetadata::Status::FrameStartup flag\";\n\nA minor indeed\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nThanks\n  j\n\n>\n>  \tconfig_.cameraTimeoutValue =\n>  \t\tphConfig[\"camera_timeout_value_ms\"].get<unsigned int>(config_.cameraTimeoutValue);\n> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h b/src/libcamera/pipeline/rpi/common/pipeline_base.h\n> index 6023f9f9d6b3..e27c4f860d1a 100644\n> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.h\n> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h\n> @@ -164,11 +164,6 @@ public:\n>  \tbool buffersAllocated_;\n>\n>  \tstruct Config {\n> -\t\t/*\n> -\t\t * Override any request from the IPA to drop a number of startup\n> -\t\t * frames.\n> -\t\t */\n> -\t\tbool disableStartupFrameDrops;\n>  \t\t/*\n>  \t\t * Override the camera timeout value calculated by the IPA based\n>  \t\t * on frame durations.\n> diff --git a/src/libcamera/pipeline/rpi/pisp/data/example.yaml b/src/libcamera/pipeline/rpi/pisp/data/example.yaml\n> index d67e654a8b9e..baf03be79bb3 100644\n> --- a/src/libcamera/pipeline/rpi/pisp/data/example.yaml\n> +++ b/src/libcamera/pipeline/rpi/pisp/data/example.yaml\n> @@ -16,11 +16,6 @@\n>                  #\n>                  # \"num_cfe_config_queue\": 2,\n>\n> -                # Override any request from the IPA to drop a number of startup\n> -                # frames.\n> -                #\n> -                # \"disable_startup_frame_drops\": false,\n> -\n>                  # Custom timeout value (in ms) for camera to use. This overrides\n>                  # the value computed by the pipeline handler based on frame\n>                  # durations.\n> diff --git a/src/libcamera/pipeline/rpi/vc4/data/example.yaml b/src/libcamera/pipeline/rpi/vc4/data/example.yaml\n> index b8e01adeaf40..27e543488d48 100644\n> --- a/src/libcamera/pipeline/rpi/vc4/data/example.yaml\n> +++ b/src/libcamera/pipeline/rpi/vc4/data/example.yaml\n> @@ -29,11 +29,6 @@\n>                  #\n>                  # \"min_total_unicam_buffers\": 4,\n>\n> -                # Override any request from the IPA to drop a number of startup\n> -                # frames.\n> -                #\n> -                # \"disable_startup_frame_drops\": false,\n> -\n>                  # Custom timeout value (in ms) for camera to use. This overrides\n>                  # the value computed by the pipeline handler based on frame\n>                  # durations.\n> --\n> 2.43.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 ADACCC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  5 Jun 2025 07:24:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 74CAA68DBE;\n\tThu,  5 Jun 2025 09:24:29 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4493568DB2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  5 Jun 2025 09:24:28 +0200 (CEST)","from ideasonboard.com (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9634A6AF;\n\tThu,  5 Jun 2025 09:24:24 +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=\"VB7SHzF/\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1749108264;\n\tbh=ivRDye8aZfVmkfVYgtC7FrbsY3iwKogJlAgTACvum7c=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=VB7SHzF/ifmWPnHSkp391AptsS3EnBjjEMIWGJvWsORbfIKr0tw3iAxSchrtY0EOE\n\tKMCuQxni3k2tqIAc3bAKDpKoL5GYXRw1XnIkVUH1ciuv874OrBR8JQZP04edeW9XU4\n\tuKiU0K/MRG8wtsy8eGrcF0pvcIfy5tGE8+mQz6wE=","Date":"Thu, 5 Jun 2025 09:24:24 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org, \n\tDavid Plowman <david.plowman@raspberrypi.com>","Subject":"Re: [PATCH v2 4/6] pipeline: rpi: Remove disable_startup_frame_drops\n\tconfig option","Message-ID":"<7klomccijaw35k5fbk7ci2yad52vof643n64sednizoizm5yls@pzmhkuzdtdj7>","References":"<20250522075244.1198110-1-naush@raspberrypi.com>\n\t<20250522075244.1198110-5-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20250522075244.1198110-5-naush@raspberrypi.com>","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":34428,"web_url":"https://patchwork.libcamera.org/comment/34428/","msgid":"<CAEmqJPorViNti2j9umDdgy8G8ZkpgOa9WtuYinyuZJO5YWWr7g@mail.gmail.com>","date":"2025-06-05T09:33:40","subject":"Re: [PATCH v2 4/6] pipeline: rpi: Remove disable_startup_frame_drops\n\tconfig option","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Jacopo,\n\nThank you for the review for this series!\n\n\nOn Thu, 5 Jun 2025 at 08:24, Jacopo Mondi <jacopo.mondi@ideasonboard.com>\nwrote:\n\n> Hi Naush\n>\n> On Thu, May 22, 2025 at 08:48:20AM +0100, Naushir Patuck wrote:\n> > With the previous change to not drop frames in the pipeline handler,\n> > the \"disable_startup_frame_drops\" pipeline config option is not used.\n> > Remove it, and throw a warning if the option is present in the YAML\n> > config file.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > ---\n> >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 7 ++++---\n> >  src/libcamera/pipeline/rpi/common/pipeline_base.h   | 5 -----\n> >  src/libcamera/pipeline/rpi/pisp/data/example.yaml   | 5 -----\n> >  src/libcamera/pipeline/rpi/vc4/data/example.yaml    | 5 -----\n> >  4 files changed, 4 insertions(+), 18 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > index 3f0b7abdc59a..bef057a70353 100644\n> > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > @@ -1078,7 +1078,6 @@ void CameraData::enumerateVideoDevices(MediaLink\n> *link, const std::string &front\n> >  int CameraData::loadPipelineConfiguration()\n> >  {\n> >       config_ = {\n> > -             .disableStartupFrameDrops = false,\n> >               .cameraTimeoutValue = 0,\n> >       };\n> >\n> > @@ -1115,8 +1114,10 @@ int CameraData::loadPipelineConfiguration()\n> >\n> >       const YamlObject &phConfig = (*root)[\"pipeline_handler\"];\n> >\n> > -     config_.disableStartupFrameDrops =\n> > -\n>  phConfig[\"disable_startup_frame_drops\"].get<bool>(config_.disableStartupFrameDrops);\n> > +     if (phConfig.contains(\"disable_startup_frame_drops\"))\n> > +             LOG(RPI, Warning)\n> > +                     << \"The disable_startup_frame_drops key is now\n> deprecated, \"\n> > +                     << \"please use FrameMetadata::Status::FrameStartup\n> instead.\";\n>\n> I wonder if the \"please use ..\" might mis-lead people that have to\n> update their config file. Maybe\n>\n>                         << \"The disable_startup_frame_drops key is now\n> deprecated, \"\n>                         << \"startup frames are not identified by the\n> FrameMetadata::Status::FrameStartup flag\";\n>\n> A minor indeed\n>\n> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n>\n\nAck, I'll update the message and post a new revision of the series.\n\n\n>\n> Thanks\n>   j\n>\n> >\n> >       config_.cameraTimeoutValue =\n> >               phConfig[\"camera_timeout_value_ms\"].get<unsigned\n> int>(config_.cameraTimeoutValue);\n> > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h\n> b/src/libcamera/pipeline/rpi/common/pipeline_base.h\n> > index 6023f9f9d6b3..e27c4f860d1a 100644\n> > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.h\n> > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h\n> > @@ -164,11 +164,6 @@ public:\n> >       bool buffersAllocated_;\n> >\n> >       struct Config {\n> > -             /*\n> > -              * Override any request from the IPA to drop a number of\n> startup\n> > -              * frames.\n> > -              */\n> > -             bool disableStartupFrameDrops;\n> >               /*\n> >                * Override the camera timeout value calculated by the IPA\n> based\n> >                * on frame durations.\n> > diff --git a/src/libcamera/pipeline/rpi/pisp/data/example.yaml\n> b/src/libcamera/pipeline/rpi/pisp/data/example.yaml\n> > index d67e654a8b9e..baf03be79bb3 100644\n> > --- a/src/libcamera/pipeline/rpi/pisp/data/example.yaml\n> > +++ b/src/libcamera/pipeline/rpi/pisp/data/example.yaml\n> > @@ -16,11 +16,6 @@\n> >                  #\n> >                  # \"num_cfe_config_queue\": 2,\n> >\n> > -                # Override any request from the IPA to drop a number of\n> startup\n> > -                # frames.\n> > -                #\n> > -                # \"disable_startup_frame_drops\": false,\n> > -\n> >                  # Custom timeout value (in ms) for camera to use. This\n> overrides\n> >                  # the value computed by the pipeline handler based on\n> frame\n> >                  # durations.\n> > diff --git a/src/libcamera/pipeline/rpi/vc4/data/example.yaml\n> b/src/libcamera/pipeline/rpi/vc4/data/example.yaml\n> > index b8e01adeaf40..27e543488d48 100644\n> > --- a/src/libcamera/pipeline/rpi/vc4/data/example.yaml\n> > +++ b/src/libcamera/pipeline/rpi/vc4/data/example.yaml\n> > @@ -29,11 +29,6 @@\n> >                  #\n> >                  # \"min_total_unicam_buffers\": 4,\n> >\n> > -                # Override any request from the IPA to drop a number of\n> startup\n> > -                # frames.\n> > -                #\n> > -                # \"disable_startup_frame_drops\": false,\n> > -\n> >                  # Custom timeout value (in ms) for camera to use. This\n> overrides\n> >                  # the value computed by the pipeline handler based on\n> frame\n> >                  # durations.\n> > --\n> > 2.43.0\n> >\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 1AF48C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  5 Jun 2025 09:34:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 00E9768DBD;\n\tThu,  5 Jun 2025 11:34:19 +0200 (CEST)","from mail-vk1-xa29.google.com (mail-vk1-xa29.google.com\n\t[IPv6:2607:f8b0:4864:20::a29])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 77EE968DB2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  5 Jun 2025 11:34:16 +0200 (CEST)","by mail-vk1-xa29.google.com with SMTP id\n\t71dfb90a1353d-52f2ead8757so20437e0c.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 05 Jun 2025 02:34:16 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"J2+YsnQW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1749116055; x=1749720855;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=Pvj+/UC3URxe2/Jg2erh0dVtjOrw51J18z/oC60KqMc=;\n\tb=J2+YsnQWkif8MvFBUCZqEFO3BTnMLPjLgfk5LKXlkA3Kwqkwd8yJ60a/hVP5gCPvty\n\tg0MNlvqyQifcJFrh5P7X19dPE5lc0XLJAu8p/gTqkUbIZDZzYwCCmwuE1rIMDj+2RRH2\n\t73hB882ySFSSTq1PBpAmP43wvMFhldMCPQByDmZnGStZLqhRAR9O5VEJDN+jQ1uu1mxM\n\tGfiS9ZvVlYqSLrn1sdhh1x3Gr5Y1ssVozxNdPJRR3RGl3EHDxgIaxCRRNDrV4nP3iOdB\n\t4IWFea3+nhyo/PMMMqPtzwEyNDO89QpihFraGpD27eKrDBoxIIBvW/qBOB+K3Ja8zdYf\n\tDoog==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1749116055; x=1749720855;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=Pvj+/UC3URxe2/Jg2erh0dVtjOrw51J18z/oC60KqMc=;\n\tb=j46ekqdhbHgl3e6yG5nO/hUuAF83bRf8DB+rL1amjbUPlmL9bty3s57Kv8eTNyrVp3\n\tnhcuRLZrl3ywGcCXUHYxxqTYd8+YCYB92X9FzkSFsaeoH1aQ9ZVJNjuv8QEh5xyogu5C\n\tybIcC//J4tI6jz1Y/7FK7wz0EbIpYfKiDFfQ3XXtIFTVgOxib8vMFyxBVat3ntQ5Osp+\n\tmpBoKG0blDttruPFFAhRF/4TdEXhAqKep8IPy8zsNhyI9VduCAMNvH5Q20zBh66HGbtY\n\tyXZoSjt44HIH5zTEEHjIv5d7iGNX4jtT63w2tsjM/TQyezZJRft1nw/9o5s4XyTdpVY8\n\tHc1w==","X-Gm-Message-State":"AOJu0Yye0WrDJ+X3qD/afGoGScnMTIbmAPmo5tRfp938QikJOhcp4qJv\n\tHKwK7uvja2LogrbPko1tMfBopzo/BIkK8rKqZASxUUUgeVGeZLqrMMwZOf1h0yVXAaL8LSBBzqt\n\tEd7398h9eglo5s0wHIZ9VrXIt2Fo6S9hCu/JvFfRULQ==","X-Gm-Gg":"ASbGncs/m0DCXTk1N1Co5CaHXarY4//99A1Q6dl1CccmxXNtjCeTEta2ghFy/UAJXPk\n\tFxw1/tdaWwrQ1Hy2nXBD7atT1dd0e7VPmJKJNDRW+93ZIzcSgiVxIqtHvbhhlPsoJ3y6aZBqcID\n\tmZkLbIG3QAQv3D3NtjViijKTJPYKlyxqR0","X-Google-Smtp-Source":"AGHT+IF5b4kk7W2XgC5fLA+E967/0tDpV1vRPTGCZEepOjDF2p05Jwc431V2Lm8wHA20zk/qXPBexVP055KT/LHLz34=","X-Received":"by 2002:a05:6122:2b99:b0:530:64bb:a3aa with SMTP id\n\t71dfb90a1353d-530c746b3ffmr1502685e0c.3.1749116055152;\n\tThu, 05 Jun 2025 02:34:15 -0700 (PDT)","MIME-Version":"1.0","References":"<20250522075244.1198110-1-naush@raspberrypi.com>\n\t<20250522075244.1198110-5-naush@raspberrypi.com>\n\t<7klomccijaw35k5fbk7ci2yad52vof643n64sednizoizm5yls@pzmhkuzdtdj7>","In-Reply-To":"<7klomccijaw35k5fbk7ci2yad52vof643n64sednizoizm5yls@pzmhkuzdtdj7>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Thu, 5 Jun 2025 10:33:40 +0100","X-Gm-Features":"AX0GCFv6jUpRso5d_zuQfyWa6gEt21C_pUCgI621WMmn4s_StD2tH_CsaFriRVY","Message-ID":"<CAEmqJPorViNti2j9umDdgy8G8ZkpgOa9WtuYinyuZJO5YWWr7g@mail.gmail.com>","Subject":"Re: [PATCH v2 4/6] pipeline: rpi: Remove disable_startup_frame_drops\n\tconfig option","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, \n\tDavid Plowman <david.plowman@raspberrypi.com>","Content-Type":"multipart/alternative; boundary=\"0000000000002380190636cfd128\"","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>"}}]