| Message ID | 20260621004115.3799303-1-laurent.pinchart@ideasonboard.com |
|---|---|
| State | Rejected |
| Headers | show |
| Series |
|
| Related | show |
2026. 06. 21. 2:41 keltezéssel, Laurent Pinchart írta: > There's no need to inline the ValueNode::Accessor::get() function for > LscPolynomial. Move it to from lsc_polynomial.h to lsc_polynomial.cpp. > > While at it, replace C++-style comments with C-style comments according > to the libcamera coding style. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > src/ipa/libipa/lsc_polynomial.cpp | 26 ++++++++++++++++++++++++-- > src/ipa/libipa/lsc_polynomial.h | 24 ------------------------ > 2 files changed, 24 insertions(+), 26 deletions(-) > > diff --git a/src/ipa/libipa/lsc_polynomial.cpp b/src/ipa/libipa/lsc_polynomial.cpp > index f607d86c54c3..00569c2fd160 100644 > --- a/src/ipa/libipa/lsc_polynomial.cpp > +++ b/src/ipa/libipa/lsc_polynomial.cpp > @@ -77,5 +77,27 @@ namespace ipa { > * \param size The size of the reference image > */ > > -} // namespace ipa > -} // namespace libcamera > +} /* namespace ipa */ > + > +#ifndef __DOXYGEN__ > +template<> > +std::optional<ipa::LscPolynomial> > +ValueNode::Accessor<ipa::LscPolynomial>::get(const ValueNode &obj) const > +{ > + std::optional<double> cx = obj["cx"].get<double>(); > + std::optional<double> cy = obj["cy"].get<double>(); > + std::optional<double> k0 = obj["k0"].get<double>(); > + std::optional<double> k1 = obj["k1"].get<double>(); > + std::optional<double> k2 = obj["k2"].get<double>(); > + std::optional<double> k3 = obj["k3"].get<double>(); > + std::optional<double> k4 = obj["k4"].get<double>(); > + > + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > + LOG(LscPolynomial, Error) > + << "Polynomial is missing a parameter"; > + > + return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > +} > +#endif /* __DOXYGEN__ */ > + > +} /* namespace libcamera */ > diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h > index d7d9ae42e360..d52ec86946b1 100644 > --- a/src/ipa/libipa/lsc_polynomial.h > +++ b/src/ipa/libipa/lsc_polynomial.h > @@ -80,28 +80,4 @@ private: > > } /* namespace ipa */ > > -#ifndef __DOXYGEN__ > - > -template<> > -struct ValueNode::Accessor<ipa::LscPolynomial> { > - std::optional<ipa::LscPolynomial> get(const ValueNode &obj) const > - { > - std::optional<double> cx = obj["cx"].get<double>(); > - std::optional<double> cy = obj["cy"].get<double>(); > - std::optional<double> k0 = obj["k0"].get<double>(); > - std::optional<double> k1 = obj["k1"].get<double>(); > - std::optional<double> k2 = obj["k2"].get<double>(); > - std::optional<double> k3 = obj["k3"].get<double>(); > - std::optional<double> k4 = obj["k4"].get<double>(); > - > - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > - LOG(LscPolynomial, Error) > - << "Polynomial is missing a parameter"; > - > - return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > - } > -}; > - > -#endif > - > } /* namespace libcamera */ > > base-commit: bd266aa3405d3aea20b407b27e52482b02146030
Quoting Laurent Pinchart (2026-06-21 01:41:15) > There's no need to inline the ValueNode::Accessor::get() function for > LscPolynomial. Move it to from lsc_polynomial.h to lsc_polynomial.cpp. > > While at it, replace C++-style comments with C-style comments according > to the libcamera coding style. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > --- > src/ipa/libipa/lsc_polynomial.cpp | 26 ++++++++++++++++++++++++-- > src/ipa/libipa/lsc_polynomial.h | 24 ------------------------ > 2 files changed, 24 insertions(+), 26 deletions(-) > > diff --git a/src/ipa/libipa/lsc_polynomial.cpp b/src/ipa/libipa/lsc_polynomial.cpp > index f607d86c54c3..00569c2fd160 100644 > --- a/src/ipa/libipa/lsc_polynomial.cpp > +++ b/src/ipa/libipa/lsc_polynomial.cpp > @@ -77,5 +77,27 @@ namespace ipa { > * \param size The size of the reference image > */ > > -} // namespace ipa > -} // namespace libcamera > +} /* namespace ipa */ > + > +#ifndef __DOXYGEN__ > +template<> > +std::optional<ipa::LscPolynomial> > +ValueNode::Accessor<ipa::LscPolynomial>::get(const ValueNode &obj) const > +{ > + std::optional<double> cx = obj["cx"].get<double>(); > + std::optional<double> cy = obj["cy"].get<double>(); > + std::optional<double> k0 = obj["k0"].get<double>(); > + std::optional<double> k1 = obj["k1"].get<double>(); > + std::optional<double> k2 = obj["k2"].get<double>(); > + std::optional<double> k3 = obj["k3"].get<double>(); > + std::optional<double> k4 = obj["k4"].get<double>(); > + > + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > + LOG(LscPolynomial, Error) > + << "Polynomial is missing a parameter"; > + > + return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > +} > +#endif /* __DOXYGEN__ */ > + > +} /* namespace libcamera */ > diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h > index d7d9ae42e360..d52ec86946b1 100644 > --- a/src/ipa/libipa/lsc_polynomial.h > +++ b/src/ipa/libipa/lsc_polynomial.h > @@ -80,28 +80,4 @@ private: > > } /* namespace ipa */ > > -#ifndef __DOXYGEN__ > - > -template<> > -struct ValueNode::Accessor<ipa::LscPolynomial> { > - std::optional<ipa::LscPolynomial> get(const ValueNode &obj) const > - { > - std::optional<double> cx = obj["cx"].get<double>(); > - std::optional<double> cy = obj["cy"].get<double>(); > - std::optional<double> k0 = obj["k0"].get<double>(); > - std::optional<double> k1 = obj["k1"].get<double>(); > - std::optional<double> k2 = obj["k2"].get<double>(); > - std::optional<double> k3 = obj["k3"].get<double>(); > - std::optional<double> k4 = obj["k4"].get<double>(); > - > - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > - LOG(LscPolynomial, Error) > - << "Polynomial is missing a parameter"; > - > - return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > - } > -}; > - > -#endif > - > } /* namespace libcamera */ > > base-commit: bd266aa3405d3aea20b407b27e52482b02146030 > -- > Regards, > > Laurent Pinchart >
Hi On Sun, Jun 21, 2026 at 03:41:15AM +0300, Laurent Pinchart wrote: > There's no need to inline the ValueNode::Accessor::get() function for > LscPolynomial. Move it to from lsc_polynomial.h to lsc_polynomial.cpp. > > While at it, replace C++-style comments with C-style comments according > to the libcamera coding style. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Can we hold on on (non bugfix) changes to this part considering it is under rework? > --- > src/ipa/libipa/lsc_polynomial.cpp | 26 ++++++++++++++++++++++++-- > src/ipa/libipa/lsc_polynomial.h | 24 ------------------------ > 2 files changed, 24 insertions(+), 26 deletions(-) > > diff --git a/src/ipa/libipa/lsc_polynomial.cpp b/src/ipa/libipa/lsc_polynomial.cpp > index f607d86c54c3..00569c2fd160 100644 > --- a/src/ipa/libipa/lsc_polynomial.cpp > +++ b/src/ipa/libipa/lsc_polynomial.cpp > @@ -77,5 +77,27 @@ namespace ipa { > * \param size The size of the reference image > */ > > -} // namespace ipa > -} // namespace libcamera > +} /* namespace ipa */ > + > +#ifndef __DOXYGEN__ > +template<> > +std::optional<ipa::LscPolynomial> > +ValueNode::Accessor<ipa::LscPolynomial>::get(const ValueNode &obj) const > +{ > + std::optional<double> cx = obj["cx"].get<double>(); > + std::optional<double> cy = obj["cy"].get<double>(); > + std::optional<double> k0 = obj["k0"].get<double>(); > + std::optional<double> k1 = obj["k1"].get<double>(); > + std::optional<double> k2 = obj["k2"].get<double>(); > + std::optional<double> k3 = obj["k3"].get<double>(); > + std::optional<double> k4 = obj["k4"].get<double>(); > + > + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > + LOG(LscPolynomial, Error) > + << "Polynomial is missing a parameter"; > + > + return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > +} > +#endif /* __DOXYGEN__ */ > + > +} /* namespace libcamera */ > diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h > index d7d9ae42e360..d52ec86946b1 100644 > --- a/src/ipa/libipa/lsc_polynomial.h > +++ b/src/ipa/libipa/lsc_polynomial.h > @@ -80,28 +80,4 @@ private: > > } /* namespace ipa */ > > -#ifndef __DOXYGEN__ > - > -template<> > -struct ValueNode::Accessor<ipa::LscPolynomial> { > - std::optional<ipa::LscPolynomial> get(const ValueNode &obj) const > - { > - std::optional<double> cx = obj["cx"].get<double>(); > - std::optional<double> cy = obj["cy"].get<double>(); > - std::optional<double> k0 = obj["k0"].get<double>(); > - std::optional<double> k1 = obj["k1"].get<double>(); > - std::optional<double> k2 = obj["k2"].get<double>(); > - std::optional<double> k3 = obj["k3"].get<double>(); > - std::optional<double> k4 = obj["k4"].get<double>(); > - > - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > - LOG(LscPolynomial, Error) > - << "Polynomial is missing a parameter"; > - > - return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > - } > -}; > - > -#endif > - > } /* namespace libcamera */ > > base-commit: bd266aa3405d3aea20b407b27e52482b02146030 > -- > Regards, > > Laurent Pinchart >
On Mon, Jun 22, 2026 at 10:50:09AM +0200, Jacopo Mondi wrote: > On Sun, Jun 21, 2026 at 03:41:15AM +0300, Laurent Pinchart wrote: > > There's no need to inline the ValueNode::Accessor::get() function for > > LscPolynomial. Move it to from lsc_polynomial.h to lsc_polynomial.cpp. > > > > While at it, replace C++-style comments with C-style comments according > > to the libcamera coding style. > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > Can we hold on on (non bugfix) changes to this part considering it is > under rework? If that hinders your work I don't mind. > > --- > > src/ipa/libipa/lsc_polynomial.cpp | 26 ++++++++++++++++++++++++-- > > src/ipa/libipa/lsc_polynomial.h | 24 ------------------------ > > 2 files changed, 24 insertions(+), 26 deletions(-) > > > > diff --git a/src/ipa/libipa/lsc_polynomial.cpp b/src/ipa/libipa/lsc_polynomial.cpp > > index f607d86c54c3..00569c2fd160 100644 > > --- a/src/ipa/libipa/lsc_polynomial.cpp > > +++ b/src/ipa/libipa/lsc_polynomial.cpp > > @@ -77,5 +77,27 @@ namespace ipa { > > * \param size The size of the reference image > > */ > > > > -} // namespace ipa > > -} // namespace libcamera > > +} /* namespace ipa */ > > + > > +#ifndef __DOXYGEN__ > > +template<> > > +std::optional<ipa::LscPolynomial> > > +ValueNode::Accessor<ipa::LscPolynomial>::get(const ValueNode &obj) const > > +{ > > + std::optional<double> cx = obj["cx"].get<double>(); > > + std::optional<double> cy = obj["cy"].get<double>(); > > + std::optional<double> k0 = obj["k0"].get<double>(); > > + std::optional<double> k1 = obj["k1"].get<double>(); > > + std::optional<double> k2 = obj["k2"].get<double>(); > > + std::optional<double> k3 = obj["k3"].get<double>(); > > + std::optional<double> k4 = obj["k4"].get<double>(); > > + > > + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > > + LOG(LscPolynomial, Error) > > + << "Polynomial is missing a parameter"; > > + > > + return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > > +} > > +#endif /* __DOXYGEN__ */ > > + > > +} /* namespace libcamera */ > > diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h > > index d7d9ae42e360..d52ec86946b1 100644 > > --- a/src/ipa/libipa/lsc_polynomial.h > > +++ b/src/ipa/libipa/lsc_polynomial.h > > @@ -80,28 +80,4 @@ private: > > > > } /* namespace ipa */ > > > > -#ifndef __DOXYGEN__ > > - > > -template<> > > -struct ValueNode::Accessor<ipa::LscPolynomial> { > > - std::optional<ipa::LscPolynomial> get(const ValueNode &obj) const > > - { > > - std::optional<double> cx = obj["cx"].get<double>(); > > - std::optional<double> cy = obj["cy"].get<double>(); > > - std::optional<double> k0 = obj["k0"].get<double>(); > > - std::optional<double> k1 = obj["k1"].get<double>(); > > - std::optional<double> k2 = obj["k2"].get<double>(); > > - std::optional<double> k3 = obj["k3"].get<double>(); > > - std::optional<double> k4 = obj["k4"].get<double>(); > > - > > - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > > - LOG(LscPolynomial, Error) > > - << "Polynomial is missing a parameter"; > > - > > - return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > > - } > > -}; > > - > > -#endif > > - > > } /* namespace libcamera */ > > > > base-commit: bd266aa3405d3aea20b407b27e52482b02146030
Hi Laurent On Mon, Jun 22, 2026 at 12:02:35PM +0300, Laurent Pinchart wrote: > On Mon, Jun 22, 2026 at 10:50:09AM +0200, Jacopo Mondi wrote: > > On Sun, Jun 21, 2026 at 03:41:15AM +0300, Laurent Pinchart wrote: > > > There's no need to inline the ValueNode::Accessor::get() function for > > > LscPolynomial. Move it to from lsc_polynomial.h to lsc_polynomial.cpp. > > > > > > While at it, replace C++-style comments with C-style comments according > > > to the libcamera coding style. > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > Can we hold on on (non bugfix) changes to this part considering it is > > under rework? > > If that hinders your work I don't mind. > It makes the rebase a little more complicated, but if it's for this single patch, I can cope with that. I understand the libipa rework might take a bit to get in, so I don't mind too much. I can already move the ValueNode::Accessor::get() in the .cpp file in v2 of libipa rework, or rebase if you prefer. > > > --- > > > src/ipa/libipa/lsc_polynomial.cpp | 26 ++++++++++++++++++++++++-- > > > src/ipa/libipa/lsc_polynomial.h | 24 ------------------------ > > > 2 files changed, 24 insertions(+), 26 deletions(-) > > > > > > diff --git a/src/ipa/libipa/lsc_polynomial.cpp b/src/ipa/libipa/lsc_polynomial.cpp > > > index f607d86c54c3..00569c2fd160 100644 > > > --- a/src/ipa/libipa/lsc_polynomial.cpp > > > +++ b/src/ipa/libipa/lsc_polynomial.cpp > > > @@ -77,5 +77,27 @@ namespace ipa { > > > * \param size The size of the reference image > > > */ > > > > > > -} // namespace ipa > > > -} // namespace libcamera > > > +} /* namespace ipa */ > > > + > > > +#ifndef __DOXYGEN__ > > > +template<> > > > +std::optional<ipa::LscPolynomial> > > > +ValueNode::Accessor<ipa::LscPolynomial>::get(const ValueNode &obj) const > > > +{ > > > + std::optional<double> cx = obj["cx"].get<double>(); > > > + std::optional<double> cy = obj["cy"].get<double>(); > > > + std::optional<double> k0 = obj["k0"].get<double>(); > > > + std::optional<double> k1 = obj["k1"].get<double>(); > > > + std::optional<double> k2 = obj["k2"].get<double>(); > > > + std::optional<double> k3 = obj["k3"].get<double>(); > > > + std::optional<double> k4 = obj["k4"].get<double>(); > > > + > > > + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > > > + LOG(LscPolynomial, Error) > > > + << "Polynomial is missing a parameter"; > > > + > > > + return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > > > +} > > > +#endif /* __DOXYGEN__ */ > > > + > > > +} /* namespace libcamera */ > > > diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h > > > index d7d9ae42e360..d52ec86946b1 100644 > > > --- a/src/ipa/libipa/lsc_polynomial.h > > > +++ b/src/ipa/libipa/lsc_polynomial.h > > > @@ -80,28 +80,4 @@ private: > > > > > > } /* namespace ipa */ > > > > > > -#ifndef __DOXYGEN__ > > > - > > > -template<> > > > -struct ValueNode::Accessor<ipa::LscPolynomial> { > > > - std::optional<ipa::LscPolynomial> get(const ValueNode &obj) const > > > - { > > > - std::optional<double> cx = obj["cx"].get<double>(); > > > - std::optional<double> cy = obj["cy"].get<double>(); > > > - std::optional<double> k0 = obj["k0"].get<double>(); > > > - std::optional<double> k1 = obj["k1"].get<double>(); > > > - std::optional<double> k2 = obj["k2"].get<double>(); > > > - std::optional<double> k3 = obj["k3"].get<double>(); > > > - std::optional<double> k4 = obj["k4"].get<double>(); > > > - > > > - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > > > - LOG(LscPolynomial, Error) > > > - << "Polynomial is missing a parameter"; > > > - > > > - return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > > > - } > > > -}; > > > - > > > -#endif > > > - > > > } /* namespace libcamera */ > > > > > > base-commit: bd266aa3405d3aea20b407b27e52482b02146030 > > -- > Regards, > > Laurent Pinchart
On Mon, Jun 22, 2026 at 11:15:39AM +0200, Jacopo Mondi wrote: > On Mon, Jun 22, 2026 at 12:02:35PM +0300, Laurent Pinchart wrote: > > On Mon, Jun 22, 2026 at 10:50:09AM +0200, Jacopo Mondi wrote: > > > On Sun, Jun 21, 2026 at 03:41:15AM +0300, Laurent Pinchart wrote: > > > > There's no need to inline the ValueNode::Accessor::get() function for > > > > LscPolynomial. Move it to from lsc_polynomial.h to lsc_polynomial.cpp. > > > > > > > > While at it, replace C++-style comments with C-style comments according > > > > to the libcamera coding style. > > > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > > Can we hold on on (non bugfix) changes to this part considering it is > > > under rework? > > > > If that hinders your work I don't mind. > > It makes the rebase a little more complicated, but if it's for this > single patch, I can cope with that. > > I understand the libipa rework might take a bit to get in, so I > don't mind too much. > > I can already move the ValueNode::Accessor::get() in the .cpp file in > v2 of libipa rework, or rebase if you prefer. I don't have a preference, I can drop this patch. > > > > --- > > > > src/ipa/libipa/lsc_polynomial.cpp | 26 ++++++++++++++++++++++++-- > > > > src/ipa/libipa/lsc_polynomial.h | 24 ------------------------ > > > > 2 files changed, 24 insertions(+), 26 deletions(-) > > > > > > > > diff --git a/src/ipa/libipa/lsc_polynomial.cpp b/src/ipa/libipa/lsc_polynomial.cpp > > > > index f607d86c54c3..00569c2fd160 100644 > > > > --- a/src/ipa/libipa/lsc_polynomial.cpp > > > > +++ b/src/ipa/libipa/lsc_polynomial.cpp > > > > @@ -77,5 +77,27 @@ namespace ipa { > > > > * \param size The size of the reference image > > > > */ > > > > > > > > -} // namespace ipa > > > > -} // namespace libcamera > > > > +} /* namespace ipa */ > > > > + > > > > +#ifndef __DOXYGEN__ > > > > +template<> > > > > +std::optional<ipa::LscPolynomial> > > > > +ValueNode::Accessor<ipa::LscPolynomial>::get(const ValueNode &obj) const > > > > +{ > > > > + std::optional<double> cx = obj["cx"].get<double>(); > > > > + std::optional<double> cy = obj["cy"].get<double>(); > > > > + std::optional<double> k0 = obj["k0"].get<double>(); > > > > + std::optional<double> k1 = obj["k1"].get<double>(); > > > > + std::optional<double> k2 = obj["k2"].get<double>(); > > > > + std::optional<double> k3 = obj["k3"].get<double>(); > > > > + std::optional<double> k4 = obj["k4"].get<double>(); > > > > + > > > > + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > > > > + LOG(LscPolynomial, Error) > > > > + << "Polynomial is missing a parameter"; > > > > + > > > > + return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > > > > +} > > > > +#endif /* __DOXYGEN__ */ > > > > + > > > > +} /* namespace libcamera */ > > > > diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h > > > > index d7d9ae42e360..d52ec86946b1 100644 > > > > --- a/src/ipa/libipa/lsc_polynomial.h > > > > +++ b/src/ipa/libipa/lsc_polynomial.h > > > > @@ -80,28 +80,4 @@ private: > > > > > > > > } /* namespace ipa */ > > > > > > > > -#ifndef __DOXYGEN__ > > > > - > > > > -template<> > > > > -struct ValueNode::Accessor<ipa::LscPolynomial> { > > > > - std::optional<ipa::LscPolynomial> get(const ValueNode &obj) const > > > > - { > > > > - std::optional<double> cx = obj["cx"].get<double>(); > > > > - std::optional<double> cy = obj["cy"].get<double>(); > > > > - std::optional<double> k0 = obj["k0"].get<double>(); > > > > - std::optional<double> k1 = obj["k1"].get<double>(); > > > > - std::optional<double> k2 = obj["k2"].get<double>(); > > > > - std::optional<double> k3 = obj["k3"].get<double>(); > > > > - std::optional<double> k4 = obj["k4"].get<double>(); > > > > - > > > > - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > > > > - LOG(LscPolynomial, Error) > > > > - << "Polynomial is missing a parameter"; > > > > - > > > > - return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > > > > - } > > > > -}; > > > > - > > > > -#endif > > > > - > > > > } /* namespace libcamera */ > > > > > > > > base-commit: bd266aa3405d3aea20b407b27e52482b02146030 > > > > -- > > Regards, > > > > Laurent Pinchart
Hi Laurent On Mon, Jun 22, 2026 at 12:18:58PM +0300, Laurent Pinchart wrote: > On Mon, Jun 22, 2026 at 11:15:39AM +0200, Jacopo Mondi wrote: > > On Mon, Jun 22, 2026 at 12:02:35PM +0300, Laurent Pinchart wrote: > > > On Mon, Jun 22, 2026 at 10:50:09AM +0200, Jacopo Mondi wrote: > > > > On Sun, Jun 21, 2026 at 03:41:15AM +0300, Laurent Pinchart wrote: > > > > > There's no need to inline the ValueNode::Accessor::get() function for > > > > > LscPolynomial. Move it to from lsc_polynomial.h to lsc_polynomial.cpp. > > > > > > > > > > While at it, replace C++-style comments with C-style comments according > > > > > to the libcamera coding style. > > > > > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > > > > Can we hold on on (non bugfix) changes to this part considering it is > > > > under rework? > > > > > > If that hinders your work I don't mind. > > > > It makes the rebase a little more complicated, but if it's for this > > single patch, I can cope with that. > > > > I understand the libipa rework might take a bit to get in, so I > > don't mind too much. > > > > I can already move the ValueNode::Accessor::get() in the .cpp file in > > v2 of libipa rework, or rebase if you prefer. > > I don't have a preference, I can drop this patch. > I've taken you change in v2 with the following resulting diff --- a/src/ipa/libipa/lsc_polynomial.cpp +++ b/src/ipa/libipa/lsc_polynomial.cpp @@ -18,6 +18,27 @@ namespace libcamera { +#ifndef __DOXYGEN__ +template<> +std::optional<ipa::Polynomial> +ValueNode::Accessor<ipa::Polynomial>::get(const ValueNode &obj) const +{ + std::optional<double> cx = obj["cx"].get<double>(); + std::optional<double> cy = obj["cy"].get<double>(); + std::optional<double> k0 = obj["k0"].get<double>(); + std::optional<double> k1 = obj["k1"].get<double>(); + std::optional<double> k2 = obj["k2"].get<double>(); + std::optional<double> k3 = obj["k3"].get<double>(); + std::optional<double> k4 = obj["k4"].get<double>(); + + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) + LOG(LscPolynomial, Error) + << "Polynomial is missing a parameter"; + + return ipa::Polynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); +} +#endif /* __DOXYGEN__ */ + LOG_DEFINE_CATEGORY(LscPolynomial) namespace ipa { diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h index 72cca591f260..e7533bccacd0 100644 --- a/src/ipa/libipa/lsc_polynomial.h +++ b/src/ipa/libipa/lsc_polynomial.h @@ -135,28 +135,4 @@ private: } /* namespace ipa */ -#ifndef __DOXYGEN__ - -template<> -struct ValueNode::Accessor<ipa::Polynomial> { - std::optional<ipa::Polynomial> get(const ValueNode &obj) const - { - std::optional<double> cx = obj["cx"].get<double>(); - std::optional<double> cy = obj["cy"].get<double>(); - std::optional<double> k0 = obj["k0"].get<double>(); - std::optional<double> k1 = obj["k1"].get<double>(); - std::optional<double> k2 = obj["k2"].get<double>(); - std::optional<double> k3 = obj["k3"].get<double>(); - std::optional<double> k4 = obj["k4"].get<double>(); - - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) - LOG(LscPolynomial, Error) - << "Polynomial is missing a parameter"; - - return ipa::Polynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); - } -}; - -#endif - } /* namespace libcamera */ > > > > > --- > > > > > src/ipa/libipa/lsc_polynomial.cpp | 26 ++++++++++++++++++++++++-- > > > > > src/ipa/libipa/lsc_polynomial.h | 24 ------------------------ > > > > > 2 files changed, 24 insertions(+), 26 deletions(-) > > > > > > > > > > diff --git a/src/ipa/libipa/lsc_polynomial.cpp b/src/ipa/libipa/lsc_polynomial.cpp > > > > > index f607d86c54c3..00569c2fd160 100644 > > > > > --- a/src/ipa/libipa/lsc_polynomial.cpp > > > > > +++ b/src/ipa/libipa/lsc_polynomial.cpp > > > > > @@ -77,5 +77,27 @@ namespace ipa { > > > > > * \param size The size of the reference image > > > > > */ > > > > > > > > > > -} // namespace ipa > > > > > -} // namespace libcamera > > > > > +} /* namespace ipa */ > > > > > + > > > > > +#ifndef __DOXYGEN__ > > > > > +template<> > > > > > +std::optional<ipa::LscPolynomial> > > > > > +ValueNode::Accessor<ipa::LscPolynomial>::get(const ValueNode &obj) const > > > > > +{ > > > > > + std::optional<double> cx = obj["cx"].get<double>(); > > > > > + std::optional<double> cy = obj["cy"].get<double>(); > > > > > + std::optional<double> k0 = obj["k0"].get<double>(); > > > > > + std::optional<double> k1 = obj["k1"].get<double>(); > > > > > + std::optional<double> k2 = obj["k2"].get<double>(); > > > > > + std::optional<double> k3 = obj["k3"].get<double>(); > > > > > + std::optional<double> k4 = obj["k4"].get<double>(); > > > > > + > > > > > + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > > > > > + LOG(LscPolynomial, Error) > > > > > + << "Polynomial is missing a parameter"; > > > > > + > > > > > + return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > > > > > +} > > > > > +#endif /* __DOXYGEN__ */ > > > > > + > > > > > +} /* namespace libcamera */ > > > > > diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h > > > > > index d7d9ae42e360..d52ec86946b1 100644 > > > > > --- a/src/ipa/libipa/lsc_polynomial.h > > > > > +++ b/src/ipa/libipa/lsc_polynomial.h > > > > > @@ -80,28 +80,4 @@ private: > > > > > > > > > > } /* namespace ipa */ > > > > > > > > > > -#ifndef __DOXYGEN__ > > > > > - > > > > > -template<> > > > > > -struct ValueNode::Accessor<ipa::LscPolynomial> { > > > > > - std::optional<ipa::LscPolynomial> get(const ValueNode &obj) const > > > > > - { > > > > > - std::optional<double> cx = obj["cx"].get<double>(); > > > > > - std::optional<double> cy = obj["cy"].get<double>(); > > > > > - std::optional<double> k0 = obj["k0"].get<double>(); > > > > > - std::optional<double> k1 = obj["k1"].get<double>(); > > > > > - std::optional<double> k2 = obj["k2"].get<double>(); > > > > > - std::optional<double> k3 = obj["k3"].get<double>(); > > > > > - std::optional<double> k4 = obj["k4"].get<double>(); > > > > > - > > > > > - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) > > > > > - LOG(LscPolynomial, Error) > > > > > - << "Polynomial is missing a parameter"; > > > > > - > > > > > - return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); > > > > > - } > > > > > -}; > > > > > - > > > > > -#endif > > > > > - > > > > > } /* namespace libcamera */ > > > > > > > > > > base-commit: bd266aa3405d3aea20b407b27e52482b02146030 > > > > > > -- > > > Regards, > > > > > > Laurent Pinchart > > -- > Regards, > > Laurent Pinchart
diff --git a/src/ipa/libipa/lsc_polynomial.cpp b/src/ipa/libipa/lsc_polynomial.cpp index f607d86c54c3..00569c2fd160 100644 --- a/src/ipa/libipa/lsc_polynomial.cpp +++ b/src/ipa/libipa/lsc_polynomial.cpp @@ -77,5 +77,27 @@ namespace ipa { * \param size The size of the reference image */ -} // namespace ipa -} // namespace libcamera +} /* namespace ipa */ + +#ifndef __DOXYGEN__ +template<> +std::optional<ipa::LscPolynomial> +ValueNode::Accessor<ipa::LscPolynomial>::get(const ValueNode &obj) const +{ + std::optional<double> cx = obj["cx"].get<double>(); + std::optional<double> cy = obj["cy"].get<double>(); + std::optional<double> k0 = obj["k0"].get<double>(); + std::optional<double> k1 = obj["k1"].get<double>(); + std::optional<double> k2 = obj["k2"].get<double>(); + std::optional<double> k3 = obj["k3"].get<double>(); + std::optional<double> k4 = obj["k4"].get<double>(); + + if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) + LOG(LscPolynomial, Error) + << "Polynomial is missing a parameter"; + + return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); +} +#endif /* __DOXYGEN__ */ + +} /* namespace libcamera */ diff --git a/src/ipa/libipa/lsc_polynomial.h b/src/ipa/libipa/lsc_polynomial.h index d7d9ae42e360..d52ec86946b1 100644 --- a/src/ipa/libipa/lsc_polynomial.h +++ b/src/ipa/libipa/lsc_polynomial.h @@ -80,28 +80,4 @@ private: } /* namespace ipa */ -#ifndef __DOXYGEN__ - -template<> -struct ValueNode::Accessor<ipa::LscPolynomial> { - std::optional<ipa::LscPolynomial> get(const ValueNode &obj) const - { - std::optional<double> cx = obj["cx"].get<double>(); - std::optional<double> cy = obj["cy"].get<double>(); - std::optional<double> k0 = obj["k0"].get<double>(); - std::optional<double> k1 = obj["k1"].get<double>(); - std::optional<double> k2 = obj["k2"].get<double>(); - std::optional<double> k3 = obj["k3"].get<double>(); - std::optional<double> k4 = obj["k4"].get<double>(); - - if (!(cx && cy && k0 && k1 && k2 && k3 && k4)) - LOG(LscPolynomial, Error) - << "Polynomial is missing a parameter"; - - return ipa::LscPolynomial(*cx, *cy, *k0, *k1, *k2, *k3, *k4); - } -}; - -#endif - } /* namespace libcamera */
There's no need to inline the ValueNode::Accessor::get() function for LscPolynomial. Move it to from lsc_polynomial.h to lsc_polynomial.cpp. While at it, replace C++-style comments with C-style comments according to the libcamera coding style. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- src/ipa/libipa/lsc_polynomial.cpp | 26 ++++++++++++++++++++++++-- src/ipa/libipa/lsc_polynomial.h | 24 ------------------------ 2 files changed, 24 insertions(+), 26 deletions(-) base-commit: bd266aa3405d3aea20b407b27e52482b02146030