| Message ID | 20260424164029.3373853-1-laurent.pinchart@ideasonboard.com |
|---|---|
| State | Accepted |
| Headers | show |
| Series |
|
| Related | show |
2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > missed awb_nn.cpp. Fix it. > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- $ rg YamlObject | wc -l 4 Looks ok to me. Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > index c382f63d5f21..6543d8cb9b69 100644 > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > @@ -47,7 +47,7 @@ namespace RPiController { > > struct AwbNNConfig { > AwbNNConfig() = default; > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > /* An empty model will check default locations for model.tflite */ > std::string model; > @@ -67,7 +67,7 @@ public: > ~AwbNN(); > char const *name() const override; > void initialise() override; > - int read(const libcamera::YamlObject ¶ms) override; > + int read(const libcamera::ValueNode ¶ms) override; > > protected: > void doAwb() override; > @@ -86,7 +86,7 @@ private: > std::unique_ptr<tflite::Interpreter> interpreter_; > }; > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > { > model = params["model"].get<std::string>(""); > minTemp = params["min_temp"].get<float>(2800.0); > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > return NAME; > } > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > +int AwbNN::read(const libcamera::ValueNode ¶ms) > { > int ret; > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384
Quoting Barnabás Pőcze (2026-04-24 17:55:38) > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > > missed awb_nn.cpp. Fix it. > > > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > --- > > $ rg YamlObject | wc -l > 4 gg YamlObject src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms, AwbConfig &config); src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms) override; src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject ¶ms) Aha I see, yes and indeed these match this patch so: Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > Looks ok to me. > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > index c382f63d5f21..6543d8cb9b69 100644 > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > @@ -47,7 +47,7 @@ namespace RPiController { > > > > struct AwbNNConfig { > > AwbNNConfig() = default; > > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > > > /* An empty model will check default locations for model.tflite */ > > std::string model; > > @@ -67,7 +67,7 @@ public: > > ~AwbNN(); > > char const *name() const override; > > void initialise() override; > > - int read(const libcamera::YamlObject ¶ms) override; > > + int read(const libcamera::ValueNode ¶ms) override; > > > > protected: > > void doAwb() override; > > @@ -86,7 +86,7 @@ private: > > std::unique_ptr<tflite::Interpreter> interpreter_; > > }; > > > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > > { > > model = params["model"].get<std::string>(""); > > minTemp = params["min_temp"].get<float>(2800.0); > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > > return NAME; > > } > > > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > > +int AwbNN::read(const libcamera::ValueNode ¶ms) > > { > > int ret; > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384 >
On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote: > Quoting Barnabás Pőcze (2026-04-24 17:55:38) > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > > > missed awb_nn.cpp. Fix it. > > > > > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > --- > > > > $ rg YamlObject | wc -l > > 4 > > gg YamlObject > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms) override; > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject ¶ms) > > Aha I see, yes and indeed these match this patch so: > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> I have merged the fix. The breakage went unnoticed because we don't compile awb_nn.cpp in CI. Fixing this is not straightforward as it depends on tensorflow-lite, which is not packaged for Debian yet (there's an ongoing attempt to package it for the next version, see https://tracker.debian.org/pkg/tensorflow). Naush, I'd like to extend CI coverage to avoid similar breakages in the future. I assume Raspberry Pi has a tensorflow Debian package, how difficult would it be to build and install it as part of the container build step in the libcamera CI ? > > Looks ok to me. > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > index c382f63d5f21..6543d8cb9b69 100644 > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > @@ -47,7 +47,7 @@ namespace RPiController { > > > > > > struct AwbNNConfig { > > > AwbNNConfig() = default; > > > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > > > > > /* An empty model will check default locations for model.tflite */ > > > std::string model; > > > @@ -67,7 +67,7 @@ public: > > > ~AwbNN(); > > > char const *name() const override; > > > void initialise() override; > > > - int read(const libcamera::YamlObject ¶ms) override; > > > + int read(const libcamera::ValueNode ¶ms) override; > > > > > > protected: > > > void doAwb() override; > > > @@ -86,7 +86,7 @@ private: > > > std::unique_ptr<tflite::Interpreter> interpreter_; > > > }; > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > > > { > > > model = params["model"].get<std::string>(""); > > > minTemp = params["min_temp"].get<float>(2800.0); > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > > > return NAME; > > > } > > > > > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > > > +int AwbNN::read(const libcamera::ValueNode ¶ms) > > > { > > > int ret; > > > > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384
Hi all, On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote: > > Quoting Barnabás Pőcze (2026-04-24 17:55:38) > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > > > > missed awb_nn.cpp. Fix it. > > > > > > > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > --- > > > > > > $ rg YamlObject | wc -l > > > 4 > > > > gg YamlObject > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms) override; > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > Aha I see, yes and indeed these match this patch so: > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > I have merged the fix. > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI. > Fixing this is not straightforward as it depends on tensorflow-lite, > which is not packaged for Debian yet (there's an ongoing attempt to > package it for the next version, see > https://tracker.debian.org/pkg/tensorflow). > > Naush, I'd like to extend CI coverage to avoid similar breakages in the > future. I assume Raspberry Pi has a tensorflow Debian package, how > difficult would it be to build and install it as part of the container > build step in the libcamera CI ? Yes, we package our own deb for tflite. Happy to share the control/rules file + patches needed for this. Equally I can perhaps create a x64 deb file for you to use in the CI builds? Naush > > > > Looks ok to me. > > > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > index c382f63d5f21..6543d8cb9b69 100644 > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > @@ -47,7 +47,7 @@ namespace RPiController { > > > > > > > > struct AwbNNConfig { > > > > AwbNNConfig() = default; > > > > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > > > > > > > /* An empty model will check default locations for model.tflite */ > > > > std::string model; > > > > @@ -67,7 +67,7 @@ public: > > > > ~AwbNN(); > > > > char const *name() const override; > > > > void initialise() override; > > > > - int read(const libcamera::YamlObject ¶ms) override; > > > > + int read(const libcamera::ValueNode ¶ms) override; > > > > > > > > protected: > > > > void doAwb() override; > > > > @@ -86,7 +86,7 @@ private: > > > > std::unique_ptr<tflite::Interpreter> interpreter_; > > > > }; > > > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > > > > { > > > > model = params["model"].get<std::string>(""); > > > > minTemp = params["min_temp"].get<float>(2800.0); > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > > > > return NAME; > > > > } > > > > > > > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > +int AwbNN::read(const libcamera::ValueNode ¶ms) > > > > { > > > > int ret; > > > > > > > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384 > > -- > Regards, > > Laurent Pinchart
On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote: > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote: > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote: > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38) > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > > > > > missed awb_nn.cpp. Fix it. > > > > > > > > > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > --- > > > > > > > > $ rg YamlObject | wc -l > > > > 4 > > > > > > gg YamlObject > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms) override; > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > Aha I see, yes and indeed these match this patch so: > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > I have merged the fix. > > > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI. > > Fixing this is not straightforward as it depends on tensorflow-lite, > > which is not packaged for Debian yet (there's an ongoing attempt to > > package it for the next version, see > > https://tracker.debian.org/pkg/tensorflow). > > > > Naush, I'd like to extend CI coverage to avoid similar breakages in the > > future. I assume Raspberry Pi has a tensorflow Debian package, how > > difficult would it be to build and install it as part of the container > > build step in the libcamera CI ? > > Yes, we package our own deb for tflite. Happy to share the > control/rules file + patches needed for this. Equally I can perhaps > create a x64 deb file for you to use in the CI builds? I'd like the package to be built when building the CI container. We already build libpisp that way (see [1] and [2]). Kieran, I notice that libpisp is built from https://github.com/kbingham/libpisp.git, which is not up-to-date. Should we fix that too ? We could clone the project from its upstream tree (or possibly create a mirror in gitlab.freedesktop.org/camera/), and host the debian/ directory inside libcamera-ci. [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311 [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads > > > > Looks ok to me. > > > > > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > > > > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > > > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > index c382f63d5f21..6543d8cb9b69 100644 > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > @@ -47,7 +47,7 @@ namespace RPiController { > > > > > > > > > > struct AwbNNConfig { > > > > > AwbNNConfig() = default; > > > > > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > > > > > > > > > /* An empty model will check default locations for model.tflite */ > > > > > std::string model; > > > > > @@ -67,7 +67,7 @@ public: > > > > > ~AwbNN(); > > > > > char const *name() const override; > > > > > void initialise() override; > > > > > - int read(const libcamera::YamlObject ¶ms) override; > > > > > + int read(const libcamera::ValueNode ¶ms) override; > > > > > > > > > > protected: > > > > > void doAwb() override; > > > > > @@ -86,7 +86,7 @@ private: > > > > > std::unique_ptr<tflite::Interpreter> interpreter_; > > > > > }; > > > > > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > > > > > { > > > > > model = params["model"].get<std::string>(""); > > > > > minTemp = params["min_temp"].get<float>(2800.0); > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > > > > > return NAME; > > > > > } > > > > > > > > > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > +int AwbNN::read(const libcamera::ValueNode ¶ms) > > > > > { > > > > > int ret; > > > > > > > > > > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384
On Mon, 27 Apr 2026 at 09:36, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote: > > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote: > > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote: > > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38) > > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > > > > > > missed awb_nn.cpp. Fix it. > > > > > > > > > > > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > > --- > > > > > > > > > > $ rg YamlObject | wc -l > > > > > 4 > > > > > > > > gg YamlObject > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms) override; > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > > > Aha I see, yes and indeed these match this patch so: > > > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > I have merged the fix. > > > > > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI. > > > Fixing this is not straightforward as it depends on tensorflow-lite, > > > which is not packaged for Debian yet (there's an ongoing attempt to > > > package it for the next version, see > > > https://tracker.debian.org/pkg/tensorflow). > > > > > > Naush, I'd like to extend CI coverage to avoid similar breakages in the > > > future. I assume Raspberry Pi has a tensorflow Debian package, how > > > difficult would it be to build and install it as part of the container > > > build step in the libcamera CI ? > > > > Yes, we package our own deb for tflite. Happy to share the > > control/rules file + patches needed for this. Equally I can perhaps > > create a x64 deb file for you to use in the CI builds? > > I'd like the package to be built when building the CI container. We > already build libpisp that way (see [1] and [2]). > > Kieran, I notice that libpisp is built from > https://github.com/kbingham/libpisp.git, which is not up-to-date. Should > we fix that too ? We could clone the project from its upstream tree (or > possibly create a mirror in gitlab.freedesktop.org/camera/), and host > the debian/ directory inside libcamera-ci. I do also need to bump up the libpisp wrap file verion since we've now switch to C++20 compilations in libpisp as well. Naush > > [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311 > [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads > > > > > > Looks ok to me. > > > > > > > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > > > > > > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > > > > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > index c382f63d5f21..6543d8cb9b69 100644 > > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > @@ -47,7 +47,7 @@ namespace RPiController { > > > > > > > > > > > > struct AwbNNConfig { > > > > > > AwbNNConfig() = default; > > > > > > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > > > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > > > > > > > > > > > /* An empty model will check default locations for model.tflite */ > > > > > > std::string model; > > > > > > @@ -67,7 +67,7 @@ public: > > > > > > ~AwbNN(); > > > > > > char const *name() const override; > > > > > > void initialise() override; > > > > > > - int read(const libcamera::YamlObject ¶ms) override; > > > > > > + int read(const libcamera::ValueNode ¶ms) override; > > > > > > > > > > > > protected: > > > > > > void doAwb() override; > > > > > > @@ -86,7 +86,7 @@ private: > > > > > > std::unique_ptr<tflite::Interpreter> interpreter_; > > > > > > }; > > > > > > > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > > > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > > > > > > { > > > > > > model = params["model"].get<std::string>(""); > > > > > > minTemp = params["min_temp"].get<float>(2800.0); > > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > > > > > > return NAME; > > > > > > } > > > > > > > > > > > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > +int AwbNN::read(const libcamera::ValueNode ¶ms) > > > > > > { > > > > > > int ret; > > > > > > > > > > > > > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384 > > -- > Regards, > > Laurent Pinchart On Mon, 27 Apr 2026 at 09:36, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote: > > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote: > > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote: > > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38) > > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > > > > > > missed awb_nn.cpp. Fix it. > > > > > > > > > > > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > > --- > > > > > > > > > > $ rg YamlObject | wc -l > > > > > 4 > > > > > > > > gg YamlObject > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms) override; > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > > > Aha I see, yes and indeed these match this patch so: > > > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > I have merged the fix. > > > > > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI. > > > Fixing this is not straightforward as it depends on tensorflow-lite, > > > which is not packaged for Debian yet (there's an ongoing attempt to > > > package it for the next version, see > > > https://tracker.debian.org/pkg/tensorflow). > > > > > > Naush, I'd like to extend CI coverage to avoid similar breakages in the > > > future. I assume Raspberry Pi has a tensorflow Debian package, how > > > difficult would it be to build and install it as part of the container > > > build step in the libcamera CI ? > > > > Yes, we package our own deb for tflite. Happy to share the > > control/rules file + patches needed for this. Equally I can perhaps > > create a x64 deb file for you to use in the CI builds? > > I'd like the package to be built when building the CI container. We > already build libpisp that way (see [1] and [2]). > > Kieran, I notice that libpisp is built from > https://github.com/kbingham/libpisp.git, which is not up-to-date. Should > we fix that too ? We could clone the project from its upstream tree (or > possibly create a mirror in gitlab.freedesktop.org/camera/), and host > the debian/ directory inside libcamera-ci. > > [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311 > [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads > > > > > > Looks ok to me. > > > > > > > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > > > > > > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > > > > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > index c382f63d5f21..6543d8cb9b69 100644 > > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > @@ -47,7 +47,7 @@ namespace RPiController { > > > > > > > > > > > > struct AwbNNConfig { > > > > > > AwbNNConfig() = default; > > > > > > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > > > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > > > > > > > > > > > /* An empty model will check default locations for model.tflite */ > > > > > > std::string model; > > > > > > @@ -67,7 +67,7 @@ public: > > > > > > ~AwbNN(); > > > > > > char const *name() const override; > > > > > > void initialise() override; > > > > > > - int read(const libcamera::YamlObject ¶ms) override; > > > > > > + int read(const libcamera::ValueNode ¶ms) override; > > > > > > > > > > > > protected: > > > > > > void doAwb() override; > > > > > > @@ -86,7 +86,7 @@ private: > > > > > > std::unique_ptr<tflite::Interpreter> interpreter_; > > > > > > }; > > > > > > > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > > > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > > > > > > { > > > > > > model = params["model"].get<std::string>(""); > > > > > > minTemp = params["min_temp"].get<float>(2800.0); > > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > > > > > > return NAME; > > > > > > } > > > > > > > > > > > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > +int AwbNN::read(const libcamera::ValueNode ¶ms) > > > > > > { > > > > > > int ret; > > > > > > > > > > > > > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384 > > -- > Regards, > > Laurent Pinchart
On Mon, Apr 27, 2026 at 10:02:55AM +0100, Naushir Patuck wrote: > On Mon, 27 Apr 2026 at 09:36, Laurent Pinchart wrote: > > On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote: > > > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote: > > > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote: > > > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38) > > > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > > > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > > > > > > > missed awb_nn.cpp. Fix it. > > > > > > > > > > > > > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > > > --- > > > > > > > > > > > > $ rg YamlObject | wc -l > > > > > > 4 > > > > > > > > > > gg YamlObject > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms) override; > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > > > > > Aha I see, yes and indeed these match this patch so: > > > > > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > > I have merged the fix. > > > > > > > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI. > > > > Fixing this is not straightforward as it depends on tensorflow-lite, > > > > which is not packaged for Debian yet (there's an ongoing attempt to > > > > package it for the next version, see > > > > https://tracker.debian.org/pkg/tensorflow). > > > > > > > > Naush, I'd like to extend CI coverage to avoid similar breakages in the > > > > future. I assume Raspberry Pi has a tensorflow Debian package, how > > > > difficult would it be to build and install it as part of the container > > > > build step in the libcamera CI ? > > > > > > Yes, we package our own deb for tflite. Happy to share the > > > control/rules file + patches needed for this. Equally I can perhaps > > > create a x64 deb file for you to use in the CI builds? > > > > I'd like the package to be built when building the CI container. We > > already build libpisp that way (see [1] and [2]). > > > > Kieran, I notice that libpisp is built from > > https://github.com/kbingham/libpisp.git, which is not up-to-date. Should > > we fix that too ? We could clone the project from its upstream tree (or > > possibly create a mirror in gitlab.freedesktop.org/camera/), and host > > the debian/ directory inside libcamera-ci. > > I do also need to bump up the libpisp wrap file verion since we've now > switch to C++20 compilations in libpisp as well. Do you maintain the Debian control/rules in a public repository for libpisp ? > > [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311 > > [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads > > > > > > > > Looks ok to me. > > > > > > > > > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > > > > > > > > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > > > > > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > > > > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > > index c382f63d5f21..6543d8cb9b69 100644 > > > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > > @@ -47,7 +47,7 @@ namespace RPiController { > > > > > > > > > > > > > > struct AwbNNConfig { > > > > > > > AwbNNConfig() = default; > > > > > > > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > > > > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > > > > > > > > > > > > > /* An empty model will check default locations for model.tflite */ > > > > > > > std::string model; > > > > > > > @@ -67,7 +67,7 @@ public: > > > > > > > ~AwbNN(); > > > > > > > char const *name() const override; > > > > > > > void initialise() override; > > > > > > > - int read(const libcamera::YamlObject ¶ms) override; > > > > > > > + int read(const libcamera::ValueNode ¶ms) override; > > > > > > > > > > > > > > protected: > > > > > > > void doAwb() override; > > > > > > > @@ -86,7 +86,7 @@ private: > > > > > > > std::unique_ptr<tflite::Interpreter> interpreter_; > > > > > > > }; > > > > > > > > > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > > > > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > > > > > > > { > > > > > > > model = params["model"].get<std::string>(""); > > > > > > > minTemp = params["min_temp"].get<float>(2800.0); > > > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > > > > > > > return NAME; > > > > > > > } > > > > > > > > > > > > > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > > +int AwbNN::read(const libcamera::ValueNode ¶ms) > > > > > > > { > > > > > > > int ret; > > > > > > > > > > > > > > > > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384
On Mon, 27 Apr 2026 at 10:18, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Mon, Apr 27, 2026 at 10:02:55AM +0100, Naushir Patuck wrote: > > On Mon, 27 Apr 2026 at 09:36, Laurent Pinchart wrote: > > > On Mon, Apr 27, 2026 at 08:31:07AM +0100, Naushir Patuck wrote: > > > > On Fri, 24 Apr 2026 at 20:40, Laurent Pinchart wrote: > > > > > On Fri, Apr 24, 2026 at 06:36:14PM +0100, Kieran Bingham wrote: > > > > > > Quoting Barnabás Pőcze (2026-04-24 17:55:38) > > > > > > > 2026. 04. 24. 18:40 keltezéssel, Laurent Pinchart írta: > > > > > > > > The global rename of YamlObject to ValueNode in commit 554c5c7fa174 > > > > > > > > missed awb_nn.cpp. Fix it. > > > > > > > > > > > > > > > > Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") > > > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > > > > --- > > > > > > > > > > > > > > $ rg YamlObject | wc -l > > > > > > > 4 > > > > > > > > > > > > gg YamlObject > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp: int read(const libcamera::YamlObject ¶ms) override; > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp:int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > > > > > > > Aha I see, yes and indeed these match this patch so: > > > > > > > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > > > > I have merged the fix. > > > > > > > > > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI. > > > > > Fixing this is not straightforward as it depends on tensorflow-lite, > > > > > which is not packaged for Debian yet (there's an ongoing attempt to > > > > > package it for the next version, see > > > > > https://tracker.debian.org/pkg/tensorflow). > > > > > > > > > > Naush, I'd like to extend CI coverage to avoid similar breakages in the > > > > > future. I assume Raspberry Pi has a tensorflow Debian package, how > > > > > difficult would it be to build and install it as part of the container > > > > > build step in the libcamera CI ? > > > > > > > > Yes, we package our own deb for tflite. Happy to share the > > > > control/rules file + patches needed for this. Equally I can perhaps > > > > create a x64 deb file for you to use in the CI builds? > > > > > > I'd like the package to be built when building the CI container. We > > > already build libpisp that way (see [1] and [2]). > > > > > > Kieran, I notice that libpisp is built from > > > https://github.com/kbingham/libpisp.git, which is not up-to-date. Should > > > we fix that too ? We could clone the project from its upstream tree (or > > > possibly create a mirror in gitlab.freedesktop.org/camera/), and host > > > the debian/ directory inside libcamera-ci. > > > > I do also need to bump up the libpisp wrap file verion since we've now > > switch to C++20 compilations in libpisp as well. > > Do you maintain the Debian control/rules in a public repository for > libpisp ? It's built using an internal mirror running with a CI pipeline, but the control/rules file can be found in the public repo here: https://github.com/raspberrypi/libpisp/tree/pios/trixie/debian > > > > [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311 > > > [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads > > > > > > > > > > Looks ok to me. > > > > > > > > > > > > > > Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > > > > > > > > > > > > > > > src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- > > > > > > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > > > > > > > > > > > diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > > > index c382f63d5f21..6543d8cb9b69 100644 > > > > > > > > --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > > > +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp > > > > > > > > @@ -47,7 +47,7 @@ namespace RPiController { > > > > > > > > > > > > > > > > struct AwbNNConfig { > > > > > > > > AwbNNConfig() = default; > > > > > > > > - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); > > > > > > > > + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); > > > > > > > > > > > > > > > > /* An empty model will check default locations for model.tflite */ > > > > > > > > std::string model; > > > > > > > > @@ -67,7 +67,7 @@ public: > > > > > > > > ~AwbNN(); > > > > > > > > char const *name() const override; > > > > > > > > void initialise() override; > > > > > > > > - int read(const libcamera::YamlObject ¶ms) override; > > > > > > > > + int read(const libcamera::ValueNode ¶ms) override; > > > > > > > > > > > > > > > > protected: > > > > > > > > void doAwb() override; > > > > > > > > @@ -86,7 +86,7 @@ private: > > > > > > > > std::unique_ptr<tflite::Interpreter> interpreter_; > > > > > > > > }; > > > > > > > > > > > > > > > > -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) > > > > > > > > +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) > > > > > > > > { > > > > > > > > model = params["model"].get<std::string>(""); > > > > > > > > minTemp = params["min_temp"].get<float>(2800.0); > > > > > > > > @@ -146,7 +146,7 @@ char const *AwbNN::name() const > > > > > > > > return NAME; > > > > > > > > } > > > > > > > > > > > > > > > > -int AwbNN::read(const libcamera::YamlObject ¶ms) > > > > > > > > +int AwbNN::read(const libcamera::ValueNode ¶ms) > > > > > > > > { > > > > > > > > int ret; > > > > > > > > > > > > > > > > > > > > > > > > base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384 > > -- > Regards, > > Laurent Pinchart
Quoting Laurent Pinchart (2026-04-27 09:36:00) > > > > > > The breakage went unnoticed because we don't compile awb_nn.cpp in CI. > > > Fixing this is not straightforward as it depends on tensorflow-lite, > > > which is not packaged for Debian yet (there's an ongoing attempt to > > > package it for the next version, see > > > https://tracker.debian.org/pkg/tensorflow). > > > > > > Naush, I'd like to extend CI coverage to avoid similar breakages in the > > > future. I assume Raspberry Pi has a tensorflow Debian package, how > > > difficult would it be to build and install it as part of the container > > > build step in the libcamera CI ? > > > > Yes, we package our own deb for tflite. Happy to share the > > control/rules file + patches needed for this. Equally I can perhaps > > create a x64 deb file for you to use in the CI builds? > > I'd like the package to be built when building the CI container. We > already build libpisp that way (see [1] and [2]). > > Kieran, I notice that libpisp is built from > https://github.com/kbingham/libpisp.git, which is not up-to-date. Should > we fix that too ? We could clone the project from its upstream tree (or > possibly create a mirror in gitlab.freedesktop.org/camera/), and host > the debian/ directory inside libcamera-ci. Oh yes, if that's the case then it's hanging around from when we did the Pi5 bring up and we should certainly use the correct upstream. > > [1] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/setup-container.sh?ref_type=heads#L311 > [2] https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads https://gitlab.freedesktop.org/camera/libcamera-ci/-/blob/master/.gitlab-ci/build-libpisp-deb.sh?ref_type=heads#L20 - "# Temporary hosting of combined debian rules and source" Temporary is such an eternal concept ;-) As a temporary workaround I've hit the 'merge/sync' buttons in my fork .. so it's now updated but we should certainly swap out for upstream. -- Kieran > > -- > Regards, > > Laurent Pinchart
diff --git a/src/ipa/rpi/controller/rpi/awb_nn.cpp b/src/ipa/rpi/controller/rpi/awb_nn.cpp index c382f63d5f21..6543d8cb9b69 100644 --- a/src/ipa/rpi/controller/rpi/awb_nn.cpp +++ b/src/ipa/rpi/controller/rpi/awb_nn.cpp @@ -47,7 +47,7 @@ namespace RPiController { struct AwbNNConfig { AwbNNConfig() = default; - int read(const libcamera::YamlObject ¶ms, AwbConfig &config); + int read(const libcamera::ValueNode ¶ms, AwbConfig &config); /* An empty model will check default locations for model.tflite */ std::string model; @@ -67,7 +67,7 @@ public: ~AwbNN(); char const *name() const override; void initialise() override; - int read(const libcamera::YamlObject ¶ms) override; + int read(const libcamera::ValueNode ¶ms) override; protected: void doAwb() override; @@ -86,7 +86,7 @@ private: std::unique_ptr<tflite::Interpreter> interpreter_; }; -int AwbNNConfig::read(const libcamera::YamlObject ¶ms, AwbConfig &config) +int AwbNNConfig::read(const libcamera::ValueNode ¶ms, AwbConfig &config) { model = params["model"].get<std::string>(""); minTemp = params["min_temp"].get<float>(2800.0); @@ -146,7 +146,7 @@ char const *AwbNN::name() const return NAME; } -int AwbNN::read(const libcamera::YamlObject ¶ms) +int AwbNN::read(const libcamera::ValueNode ¶ms) { int ret;
The global rename of YamlObject to ValueNode in commit 554c5c7fa174 missed awb_nn.cpp. Fix it. Fixes: 554c5c7fa174 ("libcamera: Rename YamlObject to ValueNode") Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- src/ipa/rpi/controller/rpi/awb_nn.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) base-commit: 7227dd4b4013f0e24584b4d370154c7e55a0a384