[{"id":38648,"web_url":"https://patchwork.libcamera.org/comment/38648/","msgid":"<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>","date":"2026-04-24T16:55:38","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> missed awb_nn.cpp. Fix it.\n> \n> Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n\n$ rg YamlObject | wc -l\n4\n\n\nLooks ok to me.\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n>   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n>   1 file changed, 4 insertions(+), 4 deletions(-)\n> \n> diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> index c382f63d5f21..6543d8cb9b69 100644\n> --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> @@ -47,7 +47,7 @@ namespace RPiController {\n>   \n>   struct AwbNNConfig {\n>   \tAwbNNConfig() = default;\n> -\tint read(const libcamera::YamlObject &params, AwbConfig &config);\n> +\tint read(const libcamera::ValueNode &params, AwbConfig &config);\n>   \n>   \t/* An empty model will check default locations for model.tflite */\n>   \tstd::string model;\n> @@ -67,7 +67,7 @@ public:\n>   \t~AwbNN();\n>   \tchar const *name() const override;\n>   \tvoid initialise() override;\n> -\tint read(const libcamera::YamlObject &params) override;\n> +\tint read(const libcamera::ValueNode &params) override;\n>   \n>   protected:\n>   \tvoid doAwb() override;\n> @@ -86,7 +86,7 @@ private:\n>   \tstd::unique_ptr<tflite::Interpreter> interpreter_;\n>   };\n>   \n> -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n>   {\n>   \tmodel = params[\"model\"].get<std::string>(\"\");\n>   \tminTemp = params[\"min_temp\"].get<float>(2800.0);\n> @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n>   \treturn NAME;\n>   }\n>   \n> -int AwbNN::read(const libcamera::YamlObject &params)\n> +int AwbNN::read(const libcamera::ValueNode &params)\n>   {\n>   \tint ret;\n>   \n> \n> base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384","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 94C20BDCB5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 24 Apr 2026 16:55:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CA51562E6A;\n\tFri, 24 Apr 2026 18:55:48 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 48A1462E6A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 24 Apr 2026 18:55:47 +0200 (CEST)","from [192.168.33.62] (185.221.140.120.nat.pool.zt.hu\n\t[185.221.140.120])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2D1DF227;\n\tFri, 24 Apr 2026 18:54: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=\"h78ko4zR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1777049647;\n\tbh=w2DBYAoxbiQYNYWfx6X7TbdMUePm6qC9MmZRRLlzpa4=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=h78ko4zRc0088lgPPw05wxfphs9HUzCDGpuDqKgaQ8FfRJkOfmikfHy4M5LGvXZmM\n\t76xPaTmZQHVc3eyAaC2opY5A+viIr8vjER1+6Tik8yS9S6dgMRddrcb7gMNx12PLZH\n\tK0sigB0iVLg4gFgd2bvJIhBox129k3xAafEGOBX8=","Message-ID":"<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>","Date":"Fri, 24 Apr 2026 18:55:38 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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":38649,"web_url":"https://patchwork.libcamera.org/comment/38649/","msgid":"<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>","date":"2026-04-24T17:36:14","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Barnabás Pőcze (2026-04-24 17:55:38)\n> 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> > The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> > missed awb_nn.cpp. Fix it.\n> > \n> > Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> \n> $ rg YamlObject | wc -l\n> 4\n\ngg YamlObject\nsrc/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params, AwbConfig &config);\nsrc/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params) override;\nsrc/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\nsrc/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject &params)\n\nAha I see, yes and indeed these match this patch so:\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> \n> \n> Looks ok to me.\n> \n> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> \n> \n> >   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n> >   1 file changed, 4 insertions(+), 4 deletions(-)\n> > \n> > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > index c382f63d5f21..6543d8cb9b69 100644\n> > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > @@ -47,7 +47,7 @@ namespace RPiController {\n> >   \n> >   struct AwbNNConfig {\n> >       AwbNNConfig() = default;\n> > -     int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > +     int read(const libcamera::ValueNode &params, AwbConfig &config);\n> >   \n> >       /* An empty model will check default locations for model.tflite */\n> >       std::string model;\n> > @@ -67,7 +67,7 @@ public:\n> >       ~AwbNN();\n> >       char const *name() const override;\n> >       void initialise() override;\n> > -     int read(const libcamera::YamlObject &params) override;\n> > +     int read(const libcamera::ValueNode &params) override;\n> >   \n> >   protected:\n> >       void doAwb() override;\n> > @@ -86,7 +86,7 @@ private:\n> >       std::unique_ptr<tflite::Interpreter> interpreter_;\n> >   };\n> >   \n> > -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n> >   {\n> >       model = params[\"model\"].get<std::string>(\"\");\n> >       minTemp = params[\"min_temp\"].get<float>(2800.0);\n> > @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n> >       return NAME;\n> >   }\n> >   \n> > -int AwbNN::read(const libcamera::YamlObject &params)\n> > +int AwbNN::read(const libcamera::ValueNode &params)\n> >   {\n> >       int ret;\n> >   \n> > \n> > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384\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 59C98BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 24 Apr 2026 17:36:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 83F6562F74;\n\tFri, 24 Apr 2026 19:36:19 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2950B62E6A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 24 Apr 2026 19:36:18 +0200 (CEST)","from monstersaurus.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 EB595103F;\n\tFri, 24 Apr 2026 19:34:37 +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=\"D/bd1YCh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1777052078;\n\tbh=THsPSWuLZJGv9V9XxGWHmTN2wr8l5+/bX9cjoqd3RiM=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=D/bd1YChz0ByzZzyA5+IuH5H/MT+6+k5ZFxInc40NMztctAYjhZQpribD7R9m6RsZ\n\tUDLT9XqzdpMEfIXFWodsN7j7TJQRPAmMILPJAJRBBttTFHL7cTmEwgU8WbGsiOkYyR\n\tDpxAuTtVKc/ltLO+idivGqEcp7gQwN6v5f/Fyuq0=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>\n\t<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 24 Apr 2026 18:36:14 +0100","Message-ID":"<177705217485.45302.3172647598518859706@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":38650,"web_url":"https://patchwork.libcamera.org/comment/38650/","msgid":"<20260424194018.GA2964234@killaraus.ideasonboard.com>","date":"2026-04-24T19:40:18","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote:\n> Quoting Barnabás Pőcze (2026-04-24 17:55:38)\n> > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> > > missed awb_nn.cpp. Fix it.\n> > > \n> > > Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > ---\n> > \n> > $ rg YamlObject | wc -l\n> > 4\n> \n> gg YamlObject\n> src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params, AwbConfig &config);\n> src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params) override;\n> src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject &params)\n> \n> Aha I see, yes and indeed these match this patch so:\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nI have merged the fix.\n\nThe breakage went unnoticed because we don't compile awb_nn.cpp in CI.\nFixing this is not straightforward as it depends on tensorflow-lite,\nwhich is not packaged for Debian yet (there's an ongoing attempt to\npackage it for the next version, see\nhttps://tracker.debian.org/pkg/tensorflow).\n\nNaush, I'd like to extend CI coverage to avoid similar breakages in the\nfuture. I assume Raspberry Pi has a tensorflow Debian package, how\ndifficult would it be to build and install it as part of the container\nbuild step in the libcamera CI ?\n\n> > Looks ok to me.\n> > \n> > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > \n> > >   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n> > >   1 file changed, 4 insertions(+), 4 deletions(-)\n> > > \n> > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > index c382f63d5f21..6543d8cb9b69 100644\n> > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > @@ -47,7 +47,7 @@ namespace RPiController {\n> > >   \n> > >   struct AwbNNConfig {\n> > >       AwbNNConfig() = default;\n> > > -     int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > +     int read(const libcamera::ValueNode &params, AwbConfig &config);\n> > >   \n> > >       /* An empty model will check default locations for model.tflite */\n> > >       std::string model;\n> > > @@ -67,7 +67,7 @@ public:\n> > >       ~AwbNN();\n> > >       char const *name() const override;\n> > >       void initialise() override;\n> > > -     int read(const libcamera::YamlObject &params) override;\n> > > +     int read(const libcamera::ValueNode &params) override;\n> > >   \n> > >   protected:\n> > >       void doAwb() override;\n> > > @@ -86,7 +86,7 @@ private:\n> > >       std::unique_ptr<tflite::Interpreter> interpreter_;\n> > >   };\n> > >   \n> > > -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n> > >   {\n> > >       model = params[\"model\"].get<std::string>(\"\");\n> > >       minTemp = params[\"min_temp\"].get<float>(2800.0);\n> > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n> > >       return NAME;\n> > >   }\n> > >   \n> > > -int AwbNN::read(const libcamera::YamlObject &params)\n> > > +int AwbNN::read(const libcamera::ValueNode &params)\n> > >   {\n> > >       int ret;\n> > >   \n> > > \n> > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384","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 902C7BDCB5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 24 Apr 2026 19:40:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8D1CB62F94;\n\tFri, 24 Apr 2026 21:40:21 +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 48CED62E6A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 24 Apr 2026 21:40:20 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-703d-e500--2a1.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::2a1])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D0ACF1283;\n\tFri, 24 Apr 2026 21:38:39 +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=\"CQyuvA6n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1777059520;\n\tbh=drbhEVxrIbZ5hniDLKJsZGvbsX5tIWvFGNE3qwoe01Y=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=CQyuvA6nAtqb36SU18fADV1TJnkYGKwzbDGIRF2AU49jr/TLv8UkGOq1bbFw3Wdnu\n\tWMdBmkJ8Bb4SeX3vBa5zjqDPmB7wuuQmdMFqxjoJSE+AmVIyxWu1uVbR+BVy8zVDTo\n\tTPGoo0aa3KEOpHtQiZnEu6jKjlAWkCQTYJJHSuUo=","Date":"Fri, 24 Apr 2026 22:40:18 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,\n\tNaushir Patuck <naush@raspberrypi.com>","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","Message-ID":"<20260424194018.GA2964234@killaraus.ideasonboard.com>","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>\n\t<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>\n\t<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>","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":38655,"web_url":"https://patchwork.libcamera.org/comment/38655/","msgid":"<CAEmqJPqtAnF8=8eeMbbCej2BfCSJiKPyokrOqmADcL2=Tsb7fA@mail.gmail.com>","date":"2026-04-27T07:31:07","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi all,\n\nOn Fri, 24 Apr 2026 at 20:40, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote:\n> > Quoting Barnabás Pőcze (2026-04-24 17:55:38)\n> > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> > > > missed awb_nn.cpp. Fix it.\n> > > >\n> > > > Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > ---\n> > >\n> > > $ rg YamlObject | wc -l\n> > > 4\n> >\n> > gg YamlObject\n> > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params) override;\n> > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject &params)\n> >\n> > Aha I see, yes and indeed these match this patch so:\n> >\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> I have merged the fix.\n>\n> The breakage went unnoticed because we don't compile awb_nn.cpp in CI.\n> Fixing this is not straightforward as it depends on tensorflow-lite,\n> which is not packaged for Debian yet (there's an ongoing attempt to\n> package it for the next version, see\n> https://tracker.debian.org/pkg/tensorflow).\n>\n> Naush, I'd like to extend CI coverage to avoid similar breakages in the\n> future. I assume Raspberry Pi has a tensorflow Debian package, how\n> difficult would it be to build and install it as part of the container\n> build step in the libcamera CI ?\n\nYes, we package our own deb for tflite.  Happy to share the\ncontrol/rules file + patches needed for this.  Equally I can perhaps\ncreate a x64 deb file for you to use in the CI builds?\n\nNaush\n\n\n>\n> > > Looks ok to me.\n> > >\n> > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > >\n> > > >   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n> > > >   1 file changed, 4 insertions(+), 4 deletions(-)\n> > > >\n> > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > index c382f63d5f21..6543d8cb9b69 100644\n> > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > @@ -47,7 +47,7 @@ namespace RPiController {\n> > > >\n> > > >   struct AwbNNConfig {\n> > > >       AwbNNConfig() = default;\n> > > > -     int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > +     int read(const libcamera::ValueNode &params, AwbConfig &config);\n> > > >\n> > > >       /* An empty model will check default locations for model.tflite */\n> > > >       std::string model;\n> > > > @@ -67,7 +67,7 @@ public:\n> > > >       ~AwbNN();\n> > > >       char const *name() const override;\n> > > >       void initialise() override;\n> > > > -     int read(const libcamera::YamlObject &params) override;\n> > > > +     int read(const libcamera::ValueNode &params) override;\n> > > >\n> > > >   protected:\n> > > >       void doAwb() override;\n> > > > @@ -86,7 +86,7 @@ private:\n> > > >       std::unique_ptr<tflite::Interpreter> interpreter_;\n> > > >   };\n> > > >\n> > > > -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n> > > >   {\n> > > >       model = params[\"model\"].get<std::string>(\"\");\n> > > >       minTemp = params[\"min_temp\"].get<float>(2800.0);\n> > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n> > > >       return NAME;\n> > > >   }\n> > > >\n> > > > -int AwbNN::read(const libcamera::YamlObject &params)\n> > > > +int AwbNN::read(const libcamera::ValueNode &params)\n> > > >   {\n> > > >       int ret;\n> > > >\n> > > >\n> > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384\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 18CB8BDCB5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Apr 2026 07:31:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B811862FB6;\n\tMon, 27 Apr 2026 09:31:45 +0200 (CEST)","from mail-ua1-x932.google.com (mail-ua1-x932.google.com\n\t[IPv6:2607:f8b0:4864:20::932])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3A96062010\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 09:31:44 +0200 (CEST)","by mail-ua1-x932.google.com with SMTP id\n\ta1e0cc1a2514c-953b54dba25so229996241.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 00:31:44 -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=\"MIIZ+EPv\"; dkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1777275103; cv=none;\n\td=google.com; s=arc-20240605;\n\tb=i3QuR0DCIPxKY2wjUMD9oevv014nF9BIAh6QvmEdoovwY/uFvvtoN3GbTU477MpHT6\n\tsGpimXyRKPAwB29UYHLQWNAyOlOT03Db/NXwJtUyQkVP8PYbqnmjdikVT1BaqzoEifEx\n\tzgR1sTlQkF50WP5BoubNxdrbBFSqg1Ty9vWqdIuiT7Nt5cIwIpimzRjMbdr22X8WUb69\n\tD5zPD8LXd6Fh9hCcZiTHM6qwL1nj/pwtNT44Z21pNB6at+Ph0KlmxToucXtW4G7ViaCJ\n\t15ATb2ZIh8FAqR/Zr6VeUifrvUmEA212E3dY66U6Mwh2Bo3Sg4nttzjO1qDCa08cDWSp\n\t/Elw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=arc-20240605; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:dkim-signature;\n\tbh=kjflERCQPKES6g3azOllPrGdAQWEVoZoubswG2rACPA=;\n\tfh=vu2E34khfBNpXGNPf6y7b2qicSks7B3XuzqRybT87g0=;\n\tb=SL0UR6/g04eQU/SuU5vYZ44JnFUYQ07ZFlp8Jl2DrJiu9vy7NJO5sobwgvKme9uxd7\n\ttIt2EQ37nnfY3utMmQ5Xv7Lv+Xb+siIY+SAbJXY/H1UEQyVtRp/d2117iphhxqh8L2Uu\n\tYYRuHB5YQQVx/i/UiM5ONy9orslq4yNKfb4/yllHmVJoq4xVCadTlEpfrLTl6i1O16H/\n\tTJhQ6VmaZ6SIad0vFm73tp5KQsQKkokL7XZc5XsOdNlHD0o0fxkGtcIWykrrG1YDYVM8\n\tRTYyI3RMtdkj5ADY6eIV/+hpi48evSD3knEwVAwugdS9VlbLIuz1UUMjxVVSrQs67sxT\n\ttjWQ==; darn=lists.libcamera.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1777275103; x=1777879903;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=kjflERCQPKES6g3azOllPrGdAQWEVoZoubswG2rACPA=;\n\tb=MIIZ+EPv5/KFqSWslaGkP9d33VEsPn/HApog0j6gr+U7+ZptVGtsF1nwmPnTNvWbpB\n\tDhVBcE1j0FofBicBQmzYTwIN3TCtfaa52dxzjBYVYcOSE43RFJYa2o78AhUSqlktVle8\n\tlDCYXfDpZ3USIFCXksDdukKdwd7GczcBZ45Sht68Mlf9Jr1Gh6i/gBEYtOc4W04B6Ycs\n\tNixFQ0NxpOHqL1d6GZtraXWg62biR9gluKVnaxfKHsvEl0M68dfLLzddzk3sLrGUFlwn\n\tDj8OCWibdXT+znhsul9vApVEwl3Y87M0iZqGvzR0eRDXFclzOHLR+TRsei2EnwhG8lkc\n\tCfbw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1777275103; x=1777879903;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=kjflERCQPKES6g3azOllPrGdAQWEVoZoubswG2rACPA=;\n\tb=DIpm4OcT9IBEokWPECmDyCa83JlwRF9nA29xEyQbni9LWBmsNp1qYEUUXjHmmKfq70\n\tYzrK1n4C2vcP2iqtXj+NgzKhrUb729rHEbsxLOcHtySrYmHkNj8qk70coZuqNivQFeKl\n\t5CRPxosuCJhiMltXJHa1hqSMyQB73ofkVb0AHD9t6BDqDDow+w2Z+USD+vdWjIGuCaCF\n\tTPWpIvANyqZKpBcbXf+ByFiWTgo0X5pZ3cUZDUnKXY6I0RPJBoiJbXuD7er1aN153uOm\n\tuY6AuvJz/pYIlOkCRE+rHvMEFISz02ElgsBdzFtuvMGGlxGXIFAt6pvWA/w6hExoVoyr\n\tCF4w==","X-Forwarded-Encrypted":"i=1;\n\tAFNElJ9wCeIx/QPVsDDQmira/i3NUhcUbPvXsaH45ci/HQp3PrQYFDPdZZgawkUgIPrPQ0D7vvIXxKQ3qFPk44fjpPs=@lists.libcamera.org","X-Gm-Message-State":"AOJu0Yyu+XXOCE6sFtYbz6uOx3w84YJ2jF8Hazl2mOANnKJP5rcfyEGi\n\tWN1JURTuSy7QzIpJtMJseG0QtS7uowKhQt6kR5+uI8S+SpFuqbEhE07wmmpqlVQO0KKOABa/2n+\n\t2K8ndzDKqRkosxY9jW/ARgJmq4OSgOqwtYYtjK6iP/w==","X-Gm-Gg":"AeBDiesjQW5jRszudvIBm5eDKXzw5+D5Mvqd1Whl/OA7IrfuS2GvqJhnYU0k7MKl9fn\n\tGqO9Q6XuLcv/TPF0Ui4a1xR+PDRRO9OIOyH5If8dlnTeBkVWhBhtSKmXKmH69k1rsGwpifmB00g\n\twY9FmTPU+jByikabwuZGZXpSLsB3RxoTWDsAP1HD8NUCAx3r7ODVusV68wgPg/BFnhboFc/MmGF\n\tV7MNNPKXF4ww847Ket2vTLVaug836KjFW4y6E79PxeOwF+aoQsEekm7FiG+XV6HW3PV6JMjG7zn\n\t03oJBMPDmzsue6Ldeb7D06uix2XY/lN9X6pk+x89VYHqwS/kPw7j70ucHQxwn4j02QySgm+hTcZ\n\trwlBt/Rfe9RWAtSt6a09s5tAQY38EgbWoSq04FhJ4Hm5BwcPd/5lawkcNWUqEM0U14/Z7/G6iWL\n\tlYbyq6wxUZzNNVts/9CGk8bq5TxRqXPY/F9A==","X-Received":"by 2002:a05:6102:1275:b0:602:789e:9dee with SMTP id\n\tada2fe7eead31-616f17429e2mr6363527137.0.1777275102863;\n\tMon, 27 Apr 2026 00:31:42 -0700 (PDT)","MIME-Version":"1.0","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>\n\t<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>\n\t<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>\n\t<20260424194018.GA2964234@killaraus.ideasonboard.com>","In-Reply-To":"<20260424194018.GA2964234@killaraus.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Mon, 27 Apr 2026 08:31:07 +0100","X-Gm-Features":"AVHnY4KDoXz-pP1U-V8VI1uxh5gZ9XOXgR15uSd3ooCo1lYDA0QH140O6G0txo0","Message-ID":"<CAEmqJPqtAnF8=8eeMbbCej2BfCSJiKPyokrOqmADcL2=Tsb7fA@mail.gmail.com>","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab?=\n\t=?utf-8?b?w6FzIFDFkWN6ZQ==?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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":38657,"web_url":"https://patchwork.libcamera.org/comment/38657/","msgid":"<20260427083600.GA3698105@killaraus.ideasonboard.com>","date":"2026-04-27T08:36:00","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote:\n> On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote:\n> > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote:\n> > > Quoting Barnabás Pőcze (2026-04-24 17:55:38)\n> > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> > > > > missed awb_nn.cpp. Fix it.\n> > > > >\n> > > > > Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > ---\n> > > >\n> > > > $ rg YamlObject | wc -l\n> > > > 4\n> > >\n> > > gg YamlObject\n> > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params) override;\n> > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject &params)\n> > >\n> > > Aha I see, yes and indeed these match this patch so:\n> > >\n> > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > I have merged the fix.\n> >\n> > The breakage went unnoticed because we don't compile awb_nn.cpp in CI.\n> > Fixing this is not straightforward as it depends on tensorflow-lite,\n> > which is not packaged for Debian yet (there's an ongoing attempt to\n> > package it for the next version, see\n> > https://tracker.debian.org/pkg/tensorflow).\n> >\n> > Naush, I'd like to extend CI coverage to avoid similar breakages in the\n> > future. I assume Raspberry Pi has a tensorflow Debian package, how\n> > difficult would it be to build and install it as part of the container\n> > build step in the libcamera CI ?\n> \n> Yes, we package our own deb for tflite.  Happy to share the\n> control/rules file + patches needed for this.  Equally I can perhaps\n> create a x64 deb file for you to use in the CI builds?\n\nI'd like the package to be built when building the CI container. We\nalready build libpisp that way (see [1] and [2]).\n\nKieran, I notice that libpisp is built from\nhttps://github.com/kbingham/libpisp.git, which is not up-to-date. Should\nwe fix that too ? We could clone the project from its upstream tree (or\npossibly create a mirror in gitlab.freedesktop.org/camera/), and host\nthe debian/ directory inside libcamera-ci.\n\n[1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311\n[2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads\n\n> > > > Looks ok to me.\n> > > >\n> > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > > >\n> > > > >   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n> > > > >   1 file changed, 4 insertions(+), 4 deletions(-)\n> > > > >\n> > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > index c382f63d5f21..6543d8cb9b69 100644\n> > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > @@ -47,7 +47,7 @@ namespace RPiController {\n> > > > >\n> > > > >   struct AwbNNConfig {\n> > > > >       AwbNNConfig() = default;\n> > > > > -     int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > > +     int read(const libcamera::ValueNode &params, AwbConfig &config);\n> > > > >\n> > > > >       /* An empty model will check default locations for model.tflite */\n> > > > >       std::string model;\n> > > > > @@ -67,7 +67,7 @@ public:\n> > > > >       ~AwbNN();\n> > > > >       char const *name() const override;\n> > > > >       void initialise() override;\n> > > > > -     int read(const libcamera::YamlObject &params) override;\n> > > > > +     int read(const libcamera::ValueNode &params) override;\n> > > > >\n> > > > >   protected:\n> > > > >       void doAwb() override;\n> > > > > @@ -86,7 +86,7 @@ private:\n> > > > >       std::unique_ptr<tflite::Interpreter> interpreter_;\n> > > > >   };\n> > > > >\n> > > > > -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > > +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n> > > > >   {\n> > > > >       model = params[\"model\"].get<std::string>(\"\");\n> > > > >       minTemp = params[\"min_temp\"].get<float>(2800.0);\n> > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n> > > > >       return NAME;\n> > > > >   }\n> > > > >\n> > > > > -int AwbNN::read(const libcamera::YamlObject &params)\n> > > > > +int AwbNN::read(const libcamera::ValueNode &params)\n> > > > >   {\n> > > > >       int ret;\n> > > > >\n> > > > >\n> > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384","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 DB4DDBDCB5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Apr 2026 08:36:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B60FF62FC7;\n\tMon, 27 Apr 2026 10:36:04 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DF32C62010\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 10:36:02 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-703d-e500--2a1.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::2a1])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A7FC546F;\n\tMon, 27 Apr 2026 10:34:20 +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=\"DpgXNeGQ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1777278860;\n\tbh=PvEY6z+ij6M7+udBo69QRXuTo4EOD3tFyvhfeDucvO8=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=DpgXNeGQcxFUJ6o+1iPj8gTwFlW1YB4xTVWQrZ7YzTtsDWJYCATmOeB/6pPGaeFaW\n\ta2QJ644r9VW7S155HV45NlSI/HE9Tc5r1QOCx3fLXMLJ293IRiwGM6x568DVDwLr9T\n\t0O3ss9NjunD06yubRNXEw9WjdtAqYB6hyxbqNamA=","Date":"Mon, 27 Apr 2026 11:36:00 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab?=\n\t=?utf-8?b?w6FzIFDFkWN6ZQ==?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","Message-ID":"<20260427083600.GA3698105@killaraus.ideasonboard.com>","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>\n\t<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>\n\t<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>\n\t<20260424194018.GA2964234@killaraus.ideasonboard.com>\n\t<CAEmqJPqtAnF8=8eeMbbCej2BfCSJiKPyokrOqmADcL2=Tsb7fA@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<CAEmqJPqtAnF8=8eeMbbCej2BfCSJiKPyokrOqmADcL2=Tsb7fA@mail.gmail.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":38658,"web_url":"https://patchwork.libcamera.org/comment/38658/","msgid":"<CAEmqJPrxpOQqnKgLCsF=BGK1mxkaYBn_QSx0O9faB=gdV67=mw@mail.gmail.com>","date":"2026-04-27T09:02:55","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"On Mon, 27 Apr 2026 at 09:36, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote:\n> > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote:\n> > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote:\n> > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38)\n> > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> > > > > > missed awb_nn.cpp. Fix it.\n> > > > > >\n> > > > > > Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > ---\n> > > > >\n> > > > > $ rg YamlObject | wc -l\n> > > > > 4\n> > > >\n> > > > gg YamlObject\n> > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params) override;\n> > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject &params)\n> > > >\n> > > > Aha I see, yes and indeed these match this patch so:\n> > > >\n> > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > >\n> > > I have merged the fix.\n> > >\n> > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI.\n> > > Fixing this is not straightforward as it depends on tensorflow-lite,\n> > > which is not packaged for Debian yet (there's an ongoing attempt to\n> > > package it for the next version, see\n> > > https://tracker.debian.org/pkg/tensorflow).\n> > >\n> > > Naush, I'd like to extend CI coverage to avoid similar breakages in the\n> > > future. I assume Raspberry Pi has a tensorflow Debian package, how\n> > > difficult would it be to build and install it as part of the container\n> > > build step in the libcamera CI ?\n> >\n> > Yes, we package our own deb for tflite.  Happy to share the\n> > control/rules file + patches needed for this.  Equally I can perhaps\n> > create a x64 deb file for you to use in the CI builds?\n>\n> I'd like the package to be built when building the CI container. We\n> already build libpisp that way (see [1] and [2]).\n>\n> Kieran, I notice that libpisp is built from\n> https://github.com/kbingham/libpisp.git, which is not up-to-date. Should\n> we fix that too ? We could clone the project from its upstream tree (or\n> possibly create a mirror in gitlab.freedesktop.org/camera/), and host\n> the debian/ directory inside libcamera-ci.\n\nI do also need to bump up the libpisp wrap file verion since we've now\nswitch to C++20 compilations in libpisp as well.\n\nNaush\n\n\n>\n> [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311\n> [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads\n>\n> > > > > Looks ok to me.\n> > > > >\n> > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > > > >\n> > > > > >   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n> > > > > >   1 file changed, 4 insertions(+), 4 deletions(-)\n> > > > > >\n> > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > index c382f63d5f21..6543d8cb9b69 100644\n> > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > @@ -47,7 +47,7 @@ namespace RPiController {\n> > > > > >\n> > > > > >   struct AwbNNConfig {\n> > > > > >       AwbNNConfig() = default;\n> > > > > > -     int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > > > +     int read(const libcamera::ValueNode &params, AwbConfig &config);\n> > > > > >\n> > > > > >       /* An empty model will check default locations for model.tflite */\n> > > > > >       std::string model;\n> > > > > > @@ -67,7 +67,7 @@ public:\n> > > > > >       ~AwbNN();\n> > > > > >       char const *name() const override;\n> > > > > >       void initialise() override;\n> > > > > > -     int read(const libcamera::YamlObject &params) override;\n> > > > > > +     int read(const libcamera::ValueNode &params) override;\n> > > > > >\n> > > > > >   protected:\n> > > > > >       void doAwb() override;\n> > > > > > @@ -86,7 +86,7 @@ private:\n> > > > > >       std::unique_ptr<tflite::Interpreter> interpreter_;\n> > > > > >   };\n> > > > > >\n> > > > > > -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > > > +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n> > > > > >   {\n> > > > > >       model = params[\"model\"].get<std::string>(\"\");\n> > > > > >       minTemp = params[\"min_temp\"].get<float>(2800.0);\n> > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n> > > > > >       return NAME;\n> > > > > >   }\n> > > > > >\n> > > > > > -int AwbNN::read(const libcamera::YamlObject &params)\n> > > > > > +int AwbNN::read(const libcamera::ValueNode &params)\n> > > > > >   {\n> > > > > >       int ret;\n> > > > > >\n> > > > > >\n> > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384\n>\n> --\n> Regards,\n>\n> Laurent Pinchart\n\nOn Mon, 27 Apr 2026 at 09:36, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote:\n> > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote:\n> > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote:\n> > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38)\n> > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> > > > > > missed awb_nn.cpp. Fix it.\n> > > > > >\n> > > > > > Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > ---\n> > > > >\n> > > > > $ rg YamlObject | wc -l\n> > > > > 4\n> > > >\n> > > > gg YamlObject\n> > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params) override;\n> > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject &params)\n> > > >\n> > > > Aha I see, yes and indeed these match this patch so:\n> > > >\n> > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > >\n> > > I have merged the fix.\n> > >\n> > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI.\n> > > Fixing this is not straightforward as it depends on tensorflow-lite,\n> > > which is not packaged for Debian yet (there's an ongoing attempt to\n> > > package it for the next version, see\n> > > https://tracker.debian.org/pkg/tensorflow).\n> > >\n> > > Naush, I'd like to extend CI coverage to avoid similar breakages in the\n> > > future. I assume Raspberry Pi has a tensorflow Debian package, how\n> > > difficult would it be to build and install it as part of the container\n> > > build step in the libcamera CI ?\n> >\n> > Yes, we package our own deb for tflite.  Happy to share the\n> > control/rules file + patches needed for this.  Equally I can perhaps\n> > create a x64 deb file for you to use in the CI builds?\n>\n> I'd like the package to be built when building the CI container. We\n> already build libpisp that way (see [1] and [2]).\n>\n> Kieran, I notice that libpisp is built from\n> https://github.com/kbingham/libpisp.git, which is not up-to-date. Should\n> we fix that too ? We could clone the project from its upstream tree (or\n> possibly create a mirror in gitlab.freedesktop.org/camera/), and host\n> the debian/ directory inside libcamera-ci.\n>\n> [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311\n> [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads\n>\n> > > > > Looks ok to me.\n> > > > >\n> > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > > > >\n> > > > > >   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n> > > > > >   1 file changed, 4 insertions(+), 4 deletions(-)\n> > > > > >\n> > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > index c382f63d5f21..6543d8cb9b69 100644\n> > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > @@ -47,7 +47,7 @@ namespace RPiController {\n> > > > > >\n> > > > > >   struct AwbNNConfig {\n> > > > > >       AwbNNConfig() = default;\n> > > > > > -     int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > > > +     int read(const libcamera::ValueNode &params, AwbConfig &config);\n> > > > > >\n> > > > > >       /* An empty model will check default locations for model.tflite */\n> > > > > >       std::string model;\n> > > > > > @@ -67,7 +67,7 @@ public:\n> > > > > >       ~AwbNN();\n> > > > > >       char const *name() const override;\n> > > > > >       void initialise() override;\n> > > > > > -     int read(const libcamera::YamlObject &params) override;\n> > > > > > +     int read(const libcamera::ValueNode &params) override;\n> > > > > >\n> > > > > >   protected:\n> > > > > >       void doAwb() override;\n> > > > > > @@ -86,7 +86,7 @@ private:\n> > > > > >       std::unique_ptr<tflite::Interpreter> interpreter_;\n> > > > > >   };\n> > > > > >\n> > > > > > -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > > > +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n> > > > > >   {\n> > > > > >       model = params[\"model\"].get<std::string>(\"\");\n> > > > > >       minTemp = params[\"min_temp\"].get<float>(2800.0);\n> > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n> > > > > >       return NAME;\n> > > > > >   }\n> > > > > >\n> > > > > > -int AwbNN::read(const libcamera::YamlObject &params)\n> > > > > > +int AwbNN::read(const libcamera::ValueNode &params)\n> > > > > >   {\n> > > > > >       int ret;\n> > > > > >\n> > > > > >\n> > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384\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 06485BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Apr 2026 09:03:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A29B662FBF;\n\tMon, 27 Apr 2026 11:03:34 +0200 (CEST)","from mail-vs1-xe33.google.com (mail-vs1-xe33.google.com\n\t[IPv6:2607:f8b0:4864:20::e33])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E266162010\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 11:03:32 +0200 (CEST)","by mail-vs1-xe33.google.com with SMTP id\n\tada2fe7eead31-61006c9dbbeso346882137.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 02:03:32 -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=\"V8ldFcGQ\"; dkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1777280611; cv=none;\n\td=google.com; s=arc-20240605;\n\tb=igY9nDu0+2omLEoPERs1B/LR1HWZw7yRvDuTodIkCqJ522MvVPoIfZtUNaugiFKMAA\n\tgamoSEWIv+TBt4vSwB55LaPde4NuW+ZKffoDUnTX440y+SH0HNJKDroqFNd5PSrJyw7h\n\thh9a2hgHyxiyss+nQ8WX4JIxyUng+vgTUupeo3a0UACDrWi8bCkKcXvGKMKicsWAgdvb\n\tRBA0N54WeFGCyvICVn0idDSOWxzAdOvmLePyZayMoVf6jSKnL2q6ARXPvvGZFnlO+aFy\n\tJUatEzuPU0saxEEXrtdRu4H9mXGx8touVgOetk9zl5tRjdmnwAwxHOuT7kt8R8OtS2ny\n\td4Wg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=arc-20240605; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:dkim-signature;\n\tbh=l1oLSmKzI4lSwS/vQW2Kft2Y6S/KWj3lTEUOe4kTh1c=;\n\tfh=81wtIliubXxz3WC6dU0BV+uKwkNSTmXxcS4LHC2JAHY=;\n\tb=fN89HZlGPIOh1VXQHUav5hrlbkLRisTAXzd5K+ao65R1hUySpNlV9m1Jd/a7rh6SPN\n\ta5sy2FA3zmNBY2ZJ/FBY3BJ0ZD0uW3YZxCPiJCtyvcslEUIqYumGePl5PEeQTKsRn0xQ\n\tRLgU7cL9MSOedUhhVCjamebttiva+CZJfr1nuT01w0yoPB4g46HNUEBwboED+dUQFn4I\n\taAW2BYdKQDdroKY6afU/Y9fSfuxKDW8dJjPQM+SqY5GcUD0BifJMTfTKtsBvPzkqHd94\n\tQZ9pRAXEbR3JOa/pXHVztRhw8fdXPudkn4EZ9hrNOkBjuyEeTasT4/nnja+xNZMShI3K\n\t3O/A==; darn=lists.libcamera.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1777280611; x=1777885411;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=l1oLSmKzI4lSwS/vQW2Kft2Y6S/KWj3lTEUOe4kTh1c=;\n\tb=V8ldFcGQ4RiAu48tyjeg8OB53jZvVvy/FgpZpHQHHheUTuXv7X++gbXFv0V1fyzJjx\n\t8NkYTru6sTzpIVrZgyG6UUSwqneDU3Ms4WiqlIolelevfq2YpQP1cu5fDLIAEqVr6C9O\n\tSiRd9uz7SSA2k+PYPlNYMj1sW6F6AJ6h29VjcgSkhkGI9v8xNq12/tJQ773foqybaW3j\n\tlxMfd103ic6cDUXrsR4E9+Rm6kxo7OWmtRzM3eCzegBRQ1Aom19rvvsUOqZ0Oa1/OsbW\n\ttJJ3iHp/LLmwMHfFE8pEUeRl1A0g/uHuditTgVqC+kWpCyZnhR1FZFbeXDlsSwt6n+KM\n\ty5Xw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1777280611; x=1777885411;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=l1oLSmKzI4lSwS/vQW2Kft2Y6S/KWj3lTEUOe4kTh1c=;\n\tb=EGx/fWDMituYl4MW4qYWJt10Ph0m3xAqumnYKZxYx5K975i0ARndpufJAkPQGDUMzJ\n\tFq3BiuX+PJYY0lSMi7qxUZeCu8hvR77m1WO/+zx7t8tlU9rxBUf5nQ/51lxzjCx0Ps7o\n\tEEg4fMY7a5PtULCwFDbV+y6q84H/yUWBY4D1CupYjAHbMFbwZiOketCwBdaDSX0oJc0w\n\tLadMxivQuwu7e9xPl3cm1lkP9TbMRtL8grmlQ5GElIoY5b5hZy6PtYOFWTky+f04OGjC\n\tbb0tTKmX1GSAkZ2mZXLQKgLa6VZsPckpWoXN94dyqwAq0ufaVdY032m8aBbsebc1bblu\n\tr51A==","X-Forwarded-Encrypted":"i=1;\n\tAFNElJ8dQ0oZ/EfhCP3dDQ35I4NruVkWgP7taWTFPLbv+JX6xbstvRYQ20vWbkKG6KgfcmkWMKC5fai4VCYqQDr+Rjs=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YyDWMIpufsSFQwfEWUJkwg7kddPZrnIoYZ3b0st32LTYWaeDYDh\n\tJ5rDluUqujfbYoQOG0hJMulbEkdrloKJb5n70YpBq69S5LR7ICtcxy2YbUkzlR6vQSTAhLe+z0V\n\tQlx2G1NQqu5REaGDY4sceYcn/HB2GDDJ0fRZGkXDiRKymXhyNNF6gvhQ=","X-Gm-Gg":"AeBDievC4DAyZd1IkGLjIaD1VaCh+/PTZ4Olt/pfIqTBWb5psd/1GRU9JiN/3vXNacO\n\tmgZszIT7k8WgoU2qnzOFsdGeuGEEXb41t/WUhm8zH3aeY27x7jtFP/Nx8K+38edtjrcvlh02KR7\n\t4lzavq5WmfDcmvqL4/0XO8+q7s+GegX/R+jrouaBO48UNJNsUhV5T716krjWoXUPvZcW5SzSPPv\n\teQcHKz8awIrU7Jh8+U5kmnLZ7GM1CGjT3mIcptb/ZUFH+EKADZKe7SlTkqj6GFO61EbCkKjqXq9\n\tt82rx3oLy+msZdUtAXL/zyawkTvH3ZkJluN2Mao3dIrbDywHCofePDsgIO4YrrebX+W22DQRgSf\n\twVuUqbopvqwakDTqke6bKXdpNYPWQE4+ZcdGp7GzyFWC9Ew5oOeUjfX2Boxx5EL6QxmyKDs6jNb\n\t1+KJhmBZLF70Rd5eLFlMvzTnp8Xb9ZL8+VpQ==","X-Received":"by 2002:a05:6102:441d:b0:5df:b52f:58ff with SMTP id\n\tada2fe7eead31-616f78376d6mr7811619137.5.1777280611460;\n\tMon, 27 Apr 2026 02:03:31 -0700 (PDT)","MIME-Version":"1.0","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>\n\t<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>\n\t<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>\n\t<20260424194018.GA2964234@killaraus.ideasonboard.com>\n\t<CAEmqJPqtAnF8=8eeMbbCej2BfCSJiKPyokrOqmADcL2=Tsb7fA@mail.gmail.com>\n\t<20260427083600.GA3698105@killaraus.ideasonboard.com>","In-Reply-To":"<20260427083600.GA3698105@killaraus.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Mon, 27 Apr 2026 10:02:55 +0100","X-Gm-Features":"AVHnY4KnvZrxQvKx5iLUGvb6NSH5CnFaP9TGBVv_ptT3uNXPvpyehyAXnfJ2sxk","Message-ID":"<CAEmqJPrxpOQqnKgLCsF=BGK1mxkaYBn_QSx0O9faB=gdV67=mw@mail.gmail.com>","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab?=\n\t=?utf-8?b?w6FzIFDFkWN6ZQ==?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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":38659,"web_url":"https://patchwork.libcamera.org/comment/38659/","msgid":"<20260427091759.GB3698105@killaraus.ideasonboard.com>","date":"2026-04-27T09:17:59","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Apr 27, 2026 at 10:02:55AM +0100, Naushir Patuck wrote:\n> On Mon, 27 Apr 2026 at 09:36, Laurent Pinchart wrote:\n> > On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote:\n> > > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote:\n> > > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote:\n> > > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38)\n> > > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> > > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> > > > > > > missed awb_nn.cpp. Fix it.\n> > > > > > >\n> > > > > > > Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > > ---\n> > > > > >\n> > > > > > $ rg YamlObject | wc -l\n> > > > > > 4\n> > > > >\n> > > > > gg YamlObject\n> > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params) override;\n> > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject &params)\n> > > > >\n> > > > > Aha I see, yes and indeed these match this patch so:\n> > > > >\n> > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > >\n> > > > I have merged the fix.\n> > > >\n> > > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI.\n> > > > Fixing this is not straightforward as it depends on tensorflow-lite,\n> > > > which is not packaged for Debian yet (there's an ongoing attempt to\n> > > > package it for the next version, see\n> > > > https://tracker.debian.org/pkg/tensorflow).\n> > > >\n> > > > Naush, I'd like to extend CI coverage to avoid similar breakages in the\n> > > > future. I assume Raspberry Pi has a tensorflow Debian package, how\n> > > > difficult would it be to build and install it as part of the container\n> > > > build step in the libcamera CI ?\n> > >\n> > > Yes, we package our own deb for tflite.  Happy to share the\n> > > control/rules file + patches needed for this.  Equally I can perhaps\n> > > create a x64 deb file for you to use in the CI builds?\n> >\n> > I'd like the package to be built when building the CI container. We\n> > already build libpisp that way (see [1] and [2]).\n> >\n> > Kieran, I notice that libpisp is built from\n> > https://github.com/kbingham/libpisp.git, which is not up-to-date. Should\n> > we fix that too ? We could clone the project from its upstream tree (or\n> > possibly create a mirror in gitlab.freedesktop.org/camera/), and host\n> > the debian/ directory inside libcamera-ci.\n> \n> I do also need to bump up the libpisp wrap file verion since we've now\n> switch to C++20 compilations in libpisp as well.\n\nDo you maintain the Debian control/rules in a public repository for\nlibpisp ?\n\n> > [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311\n> > [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads\n> >\n> > > > > > Looks ok to me.\n> > > > > >\n> > > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > > > > >\n> > > > > > >   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n> > > > > > >   1 file changed, 4 insertions(+), 4 deletions(-)\n> > > > > > >\n> > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > > index c382f63d5f21..6543d8cb9b69 100644\n> > > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > > @@ -47,7 +47,7 @@ namespace RPiController {\n> > > > > > >\n> > > > > > >   struct AwbNNConfig {\n> > > > > > >       AwbNNConfig() = default;\n> > > > > > > -     int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > > > > +     int read(const libcamera::ValueNode &params, AwbConfig &config);\n> > > > > > >\n> > > > > > >       /* An empty model will check default locations for model.tflite */\n> > > > > > >       std::string model;\n> > > > > > > @@ -67,7 +67,7 @@ public:\n> > > > > > >       ~AwbNN();\n> > > > > > >       char const *name() const override;\n> > > > > > >       void initialise() override;\n> > > > > > > -     int read(const libcamera::YamlObject &params) override;\n> > > > > > > +     int read(const libcamera::ValueNode &params) override;\n> > > > > > >\n> > > > > > >   protected:\n> > > > > > >       void doAwb() override;\n> > > > > > > @@ -86,7 +86,7 @@ private:\n> > > > > > >       std::unique_ptr<tflite::Interpreter> interpreter_;\n> > > > > > >   };\n> > > > > > >\n> > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > > > > +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n> > > > > > >   {\n> > > > > > >       model = params[\"model\"].get<std::string>(\"\");\n> > > > > > >       minTemp = params[\"min_temp\"].get<float>(2800.0);\n> > > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n> > > > > > >       return NAME;\n> > > > > > >   }\n> > > > > > >\n> > > > > > > -int AwbNN::read(const libcamera::YamlObject &params)\n> > > > > > > +int AwbNN::read(const libcamera::ValueNode &params)\n> > > > > > >   {\n> > > > > > >       int ret;\n> > > > > > >\n> > > > > > >\n> > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384","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 82EC8BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Apr 2026 09:18:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AF74D62FB3;\n\tMon, 27 Apr 2026 11:18:02 +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 1E94D62FB3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 11:18:01 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-703d-e500--2a1.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::2a1])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id EC7EC8D4;\n\tMon, 27 Apr 2026 11:16:18 +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=\"laNLD/4n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1777281379;\n\tbh=hnlkUea81AB1g/sktCTLMa9W8ZUj8x3212t3ea72b4A=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=laNLD/4nynLiGahsYb8vlpfd+DuFzrTPNf8Ys/ZbKX9+rlLoLsIjEk/4sQz9e1hZ5\n\t30v9G4lj2H2K9+7oVnf2ZdCsMDWnkw1JygPVjGAnkXgKoN5jjWWWqW5mxy8+4Skt30\n\tHhBPUy0P5NFg8zC402CMafxsX9IjchL8gAuJ8TYI=","Date":"Mon, 27 Apr 2026 12:17:59 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab?=\n\t=?utf-8?b?w6FzIFDFkWN6ZQ==?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","Message-ID":"<20260427091759.GB3698105@killaraus.ideasonboard.com>","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>\n\t<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>\n\t<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>\n\t<20260424194018.GA2964234@killaraus.ideasonboard.com>\n\t<CAEmqJPqtAnF8=8eeMbbCej2BfCSJiKPyokrOqmADcL2=Tsb7fA@mail.gmail.com>\n\t<20260427083600.GA3698105@killaraus.ideasonboard.com>\n\t<CAEmqJPrxpOQqnKgLCsF=BGK1mxkaYBn_QSx0O9faB=gdV67=mw@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<CAEmqJPrxpOQqnKgLCsF=BGK1mxkaYBn_QSx0O9faB=gdV67=mw@mail.gmail.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":38660,"web_url":"https://patchwork.libcamera.org/comment/38660/","msgid":"<CAEmqJPpxf5rYG-ktSYC7dxXznnhd7jnhvnL=WMrYS+x2mG5vkA@mail.gmail.com>","date":"2026-04-27T09:19:25","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"On Mon, 27 Apr 2026 at 10:18, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> On Mon, Apr 27, 2026 at 10:02:55AM +0100, Naushir Patuck wrote:\n> > On Mon, 27 Apr 2026 at 09:36, Laurent Pinchart wrote:\n> > > On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote:\n> > > > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote:\n> > > > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote:\n> > > > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38)\n> > > > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta:\n> > > > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174\n> > > > > > > > missed awb_nn.cpp. Fix it.\n> > > > > > > >\n> > > > > > > > Fixes: 554c5c7fa174 (\"libcamera: Rename YamlObject to ValueNode\")\n> > > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > > > ---\n> > > > > > >\n> > > > > > > $ rg YamlObject | wc -l\n> > > > > > > 4\n> > > > > >\n> > > > > > gg YamlObject\n> > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:  int read(const libcamera::YamlObject &params) override;\n> > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject &params)\n> > > > > >\n> > > > > > Aha I see, yes and indeed these match this patch so:\n> > > > > >\n> > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > > >\n> > > > > I have merged the fix.\n> > > > >\n> > > > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI.\n> > > > > Fixing this is not straightforward as it depends on tensorflow-lite,\n> > > > > which is not packaged for Debian yet (there's an ongoing attempt to\n> > > > > package it for the next version, see\n> > > > > https://tracker.debian.org/pkg/tensorflow).\n> > > > >\n> > > > > Naush, I'd like to extend CI coverage to avoid similar breakages in the\n> > > > > future. I assume Raspberry Pi has a tensorflow Debian package, how\n> > > > > difficult would it be to build and install it as part of the container\n> > > > > build step in the libcamera CI ?\n> > > >\n> > > > Yes, we package our own deb for tflite.  Happy to share the\n> > > > control/rules file + patches needed for this.  Equally I can perhaps\n> > > > create a x64 deb file for you to use in the CI builds?\n> > >\n> > > I'd like the package to be built when building the CI container. We\n> > > already build libpisp that way (see [1] and [2]).\n> > >\n> > > Kieran, I notice that libpisp is built from\n> > > https://github.com/kbingham/libpisp.git, which is not up-to-date. Should\n> > > we fix that too ? We could clone the project from its upstream tree (or\n> > > possibly create a mirror in gitlab.freedesktop.org/camera/), and host\n> > > the debian/ directory inside libcamera-ci.\n> >\n> > I do also need to bump up the libpisp wrap file verion since we've now\n> > switch to C++20 compilations in libpisp as well.\n>\n> Do you maintain the Debian control/rules in a public repository for\n> libpisp ?\n\nIt's built using an internal mirror running with a CI pipeline, but\nthe control/rules file can be found in the public repo here:\n\nhttps://github.com/raspberrypi/libpisp/tree/pios/trixie/debian\n\n\n>\n> > > [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311\n> > > [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads\n> > >\n> > > > > > > Looks ok to me.\n> > > > > > >\n> > > > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > > > > > >\n> > > > > > > >   src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++----\n> > > > > > > >   1 file changed, 4 insertions(+), 4 deletions(-)\n> > > > > > > >\n> > > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > > > index c382f63d5f21..6543d8cb9b69 100644\n> > > > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp\n> > > > > > > > @@ -47,7 +47,7 @@ namespace RPiController {\n> > > > > > > >\n> > > > > > > >   struct AwbNNConfig {\n> > > > > > > >       AwbNNConfig() = default;\n> > > > > > > > -     int read(const libcamera::YamlObject &params, AwbConfig &config);\n> > > > > > > > +     int read(const libcamera::ValueNode &params, AwbConfig &config);\n> > > > > > > >\n> > > > > > > >       /* An empty model will check default locations for model.tflite */\n> > > > > > > >       std::string model;\n> > > > > > > > @@ -67,7 +67,7 @@ public:\n> > > > > > > >       ~AwbNN();\n> > > > > > > >       char const *name() const override;\n> > > > > > > >       void initialise() override;\n> > > > > > > > -     int read(const libcamera::YamlObject &params) override;\n> > > > > > > > +     int read(const libcamera::ValueNode &params) override;\n> > > > > > > >\n> > > > > > > >   protected:\n> > > > > > > >       void doAwb() override;\n> > > > > > > > @@ -86,7 +86,7 @@ private:\n> > > > > > > >       std::unique_ptr<tflite::Interpreter> interpreter_;\n> > > > > > > >   };\n> > > > > > > >\n> > > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject &params, AwbConfig &config)\n> > > > > > > > +int AwbNNConfig::read(const libcamera::ValueNode &params, AwbConfig &config)\n> > > > > > > >   {\n> > > > > > > >       model = params[\"model\"].get<std::string>(\"\");\n> > > > > > > >       minTemp = params[\"min_temp\"].get<float>(2800.0);\n> > > > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const\n> > > > > > > >       return NAME;\n> > > > > > > >   }\n> > > > > > > >\n> > > > > > > > -int AwbNN::read(const libcamera::YamlObject &params)\n> > > > > > > > +int AwbNN::read(const libcamera::ValueNode &params)\n> > > > > > > >   {\n> > > > > > > >       int ret;\n> > > > > > > >\n> > > > > > > >\n> > > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384\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 61059BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Apr 2026 09:20:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6FF8262FC6;\n\tMon, 27 Apr 2026 11:20:04 +0200 (CEST)","from mail-vs1-xe2d.google.com (mail-vs1-xe2d.google.com\n\t[IPv6:2607:f8b0:4864:20::e2d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AB67C62FB3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 11:20:02 +0200 (CEST)","by mail-vs1-xe2d.google.com with SMTP id\n\tada2fe7eead31-6055ce56e0dso375517137.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 02:20:02 -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=\"Be529AM2\"; dkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1777281601; cv=none;\n\td=google.com; s=arc-20240605;\n\tb=LOrs4//znb1/nAN75TU4H5iVOhQmZVsKe1sWBj3bMno33zTqyDs6cVwD36h886qGWx\n\tNa8oFVdJGPnoHtJ/XMPopvmmVIy/Pm/Q6e13m03iR0VvujWMTQaRF+QlfTpZoB0UOBHx\n\tNUb+R934bOkpXFK91UF6CwLMmFbfQ5o0OxJ+twn7pv0zxXwN5pmQxipzIkyMCKCsPwMZ\n\tVeysdvcYZa7OkOuofRCSKELU0JmzUVDmFR3EVUt9NhY8L41MoEs+D0eYeYiKkpnoZOlq\n\tsQbiDgDQSDHdBWw2PkWK0wNiV5V6bFOKu2gE+4UX3q5GQPHiSCHeCwhOS2VgMakEb6cf\n\t9CIw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=arc-20240605; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:dkim-signature;\n\tbh=Stzgp8C53rt074Vit53KRRHyjk+EefvXaYiUTIfgF1c=;\n\tfh=jQnYs9TW2EANfedDS+UEhWmoPiSuWQbLLcPFBd/hw2I=;\n\tb=ZCTI1J+t5UQAc2wDrZPjzDDYXk2XcFqNHYC5MWAP7CbILD9jLoXzsxbKsQMVc5R+sk\n\tFTwOlcXTwD4sk/SUByyDB1WD4w5al7FfFzBiYNhDy1nxP0sPUwwHRkJcGOqyCus1O/a+\n\tRyQ/RVrgCBrx2Y05SEaxbm4TFWNuVwhLpLWlfDUHSrBO+EIiZc87MUgPy/Ex1un5Kih7\n\t5j5W0T546FnVTvj5/3KsJGbe/82vwblq2OHRJG8MVOGtyeYB3pi10E7qDarOvUdb7Jyy\n\tkhXsn0DoiA6qfp0pi/oA0sFxoMjJUfYj4E8F+2XL5o6oaQDPNJEAit/NS0fLCjp45BKN\n\tRT8A==; darn=lists.libcamera.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1777281601; x=1777886401;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=Stzgp8C53rt074Vit53KRRHyjk+EefvXaYiUTIfgF1c=;\n\tb=Be529AM2h1evD7m2jbf1XVpnsgkRn4p99zXDdeD9z2eiM0AgzmFfqB02S7iQJPePG3\n\tv2ouR3Pty0XuFJNEcckK/h/hx9ig4BDqycYvp2jkCo1bzb51bB+43YHLamClJrUNuCqn\n\tCgJ3RXy6mfrd9ehPOjQbyr2NZnGOdvnZJu+5U3cgkLI9N0rgJvToDUeBj1zdDc9pnZ8u\n\tl7rmSeOkRYoiCFZCsWnIeWwsxdCNeq/YIrbup8YLTztx8PIIYF21VYjcCmC+s4KzgEpn\n\tboGqVzb/+yw+8PbqZE3W2QOUmQO4EXsxpDvU64K1y+yZ01R7UkxlzzWVgSYVRUkzzC7B\n\thD3Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1777281601; x=1777886401;\n\th=content-transfer-encoding:cc:to:subject:message-id:date:from\n\t:in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=Stzgp8C53rt074Vit53KRRHyjk+EefvXaYiUTIfgF1c=;\n\tb=hbDpHjfRuaX2sAKSGfTpHcX8cbtH5K5w86rG5OtvJecf2G39qCpI4pDucNL3oig0dl\n\tA/g42kSSEpa8EOkOv8Y/j3AaBk0mrII4RAh9Iold6Po6DIPpoGWONisSB3U63BAilBOY\n\tOIyYapKDVu4Z8el+r1/RNIhEIcyW0goGUsxoggM7oCl0zZRllPK04MCueWffvzmiGEu6\n\tWTeqnlJAgjC5RT4UQNVmdwiclUgI0mQnADhJaxYX9lf/4pPpoHrLKxbWkKA8Mm4xRXAa\n\tlhraXZDliRm1OOEzmRzodsjSpME7+gtIEwDzBoPJuBUqR1P9rIUGZuis3oNyL01LhI7x\n\tfvXQ==","X-Forwarded-Encrypted":"i=1;\n\tAFNElJ8RoMhMbJz5nw1FR2HV56Va3nvvMCWxxS+M0faZ5xAT9no15S36JvYzCUvMRBuNtMKDEfaLVneKMySyNJOaXz8=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YzXL9H0pcrYAYONDIUVMrTKB30PPnsZI8I2uuIFwnrIFVC0hLzx\n\tEmXs3dnfLTbzEYEYMC/V6oJEAL6IpmRtmY2tvR3tNm6IzExhBFWqDI15Uio4XPkfjyRm6q9r5AZ\n\tRk24ajOBgXspoWU8Ktu6JMmKWnvtUt5vnChJnihywwA==","X-Gm-Gg":"AeBDieuRCPXewfIrRCfyZpnkW+PpQkJORlXboSSraEyk5hIGlheLKrnK1VN2u5qQvVa\n\tOI3iSvvVbSIu4NcfV50AmFY9CxRdDEsXsX/YpJMS85T3eBtpM8IbOCtBg1XUNPDtfD84zp44XRk\n\t1ny1DJflcrIpphORZj4ZUEG/q5EVo06WXSJDZTam1H5s/VzQpseiM5YcTrcCcVGi91lJ+W5VTwX\n\tdVJT6WeQ6R50RW4r4l2SBwaHd9UR0eY4X+VBTafe7I8F0W1Ou9+h7P9XFLBCF5wVex5JK8Qbg4z\n\tFXGBsiVzL88LKR/dKS1E7DqosB4JOJ5GL8ugn6KYXQkP92W7JJDWKZX8sNsoLpzXv5/yV4J8MMT\n\tkJg53g8UYYV9O2k0KzKMFqv9oJRTj5gpModGYBDzGkSiLnXnOaebeyNEaodQCGzLWsh5QnJPa1O\n\tj1yT/lgrA269Q2DanMX2sEnbgleusL/BnxMV9uQGykFrH5","X-Received":"by 2002:a05:6102:26cc:b0:604:f71f:9f0a with SMTP id\n\tada2fe7eead31-616f70f6114mr7150070137.6.1777281601441;\n\tMon, 27 Apr 2026 02:20:01 -0700 (PDT)","MIME-Version":"1.0","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>\n\t<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>\n\t<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>\n\t<20260424194018.GA2964234@killaraus.ideasonboard.com>\n\t<CAEmqJPqtAnF8=8eeMbbCej2BfCSJiKPyokrOqmADcL2=Tsb7fA@mail.gmail.com>\n\t<20260427083600.GA3698105@killaraus.ideasonboard.com>\n\t<CAEmqJPrxpOQqnKgLCsF=BGK1mxkaYBn_QSx0O9faB=gdV67=mw@mail.gmail.com>\n\t<20260427091759.GB3698105@killaraus.ideasonboard.com>","In-Reply-To":"<20260427091759.GB3698105@killaraus.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Mon, 27 Apr 2026 10:19:25 +0100","X-Gm-Features":"AVHnY4JX7x2MQCA5htrFKU3SHBN_rkZayhFDcEq5GH5UROLN8RIHe0jevdidA1s","Message-ID":"<CAEmqJPpxf5rYG-ktSYC7dxXznnhd7jnhvnL=WMrYS+x2mG5vkA@mail.gmail.com>","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab?=\n\t=?utf-8?b?w6FzIFDFkWN6ZQ==?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","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":38661,"web_url":"https://patchwork.libcamera.org/comment/38661/","msgid":"<177728174791.45302.4374140700449154859@ping.linuxembedded.co.uk>","date":"2026-04-27T09:22:27","subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2026-04-27 09:36:00)\n> > >\n> > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI.\n> > > Fixing this is not straightforward as it depends on tensorflow-lite,\n> > > which is not packaged for Debian yet (there's an ongoing attempt to\n> > > package it for the next version, see\n> > > https://tracker.debian.org/pkg/tensorflow).\n> > >\n> > > Naush, I'd like to extend CI coverage to avoid similar breakages in the\n> > > future. I assume Raspberry Pi has a tensorflow Debian package, how\n> > > difficult would it be to build and install it as part of the container\n> > > build step in the libcamera CI ?\n> > \n> > Yes, we package our own deb for tflite.  Happy to share the\n> > control/rules file + patches needed for this.  Equally I can perhaps\n> > create a x64 deb file for you to use in the CI builds?\n> \n> I'd like the package to be built when building the CI container. We\n> already build libpisp that way (see [1] and [2]).\n> \n> Kieran, I notice that libpisp is built from\n> https://github.com/kbingham/libpisp.git, which is not up-to-date. Should\n> we fix that too ? We could clone the project from its upstream tree (or\n> possibly create a mirror in gitlab.freedesktop.org/camera/), and host\n> the debian/ directory inside libcamera-ci.\n\nOh yes, if that's the case then it's hanging around from when we did the\nPi5 bring up and we should certainly use the correct upstream.\n\n> \n> [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311\n> [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads\n\nhttps://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads#L20\n - \"# Temporary hosting of combined debian rules and source\"\n\n\nTemporary is such an eternal concept ;-)\n\nAs a temporary workaround I've hit the 'merge/sync' buttons in my fork\n.. so it's now updated but we should certainly swap out for upstream.\n\n--\nKieran\n\n\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 2C81FBDCB5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Apr 2026 09:22:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7184E62FC5;\n\tMon, 27 Apr 2026 11:22:32 +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 6D5B162010\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Apr 2026 11:22:30 +0200 (CEST)","from monstersaurus.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 7A89C8D4;\n\tMon, 27 Apr 2026 11:20:48 +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=\"BAAsz+br\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1777281648;\n\tbh=Er42FCT9GoCf9dNLoWml+ziTXf75SK1z4SA5BUKhqIU=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=BAAsz+brJYISiK2KwPcxXQViAMK2ZOPm8asbHlXPaLDdnWa23wPgKSnUn6EgMNbUe\n\t7OIIF00+mW/ETqoTiJgoTEdvDF/4rheJkN6d9PcWKNz4SgRCeRNAoqj4cqL8xETuRW\n\tnL40vTTQvRGxNey/HPmgbbg5bvzCyF+HhoglEa1U=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20260427083600.GA3698105@killaraus.ideasonboard.com>","References":"<20260424164029.3373853-1-laurent.pinchart@ideasonboard.com>\n\t<e67348d6-42f5-4910-98d9-812d8f91a9d0@ideasonboard.com>\n\t<177705217485.45302.3172647598518859706@ping.linuxembedded.co.uk>\n\t<20260424194018.GA2964234@killaraus.ideasonboard.com>\n\t<CAEmqJPqtAnF8=8eeMbbCej2BfCSJiKPyokrOqmADcL2=Tsb7fA@mail.gmail.com>\n\t<20260427083600.GA3698105@killaraus.ideasonboard.com>","Subject":"Re: [PATCH] ipa: rpi: awb_nn: Rename YamlObject to ValueNode","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tNaushir Patuck <naush@raspberrypi.com>","Date":"Mon, 27 Apr 2026 10:22:27 +0100","Message-ID":"<177728174791.45302.4374140700449154859@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>"}}]