Message ID | 20220908014200.28728-3-laurent.pinchart@ideasonboard.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Quoting Laurent Pinchart via libcamera-devel (2022-09-08 02:41:30) > Avoid copying the whole IPA context by passing a reference to the > Af::afIsOutOfFocus() function. We need to disable/delete the implicit copy constructor of the IPA context... Is that something you have already? Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > src/ipa/ipu3/algorithms/af.cpp | 2 +- > src/ipa/ipu3/algorithms/af.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/ipa/ipu3/algorithms/af.cpp b/src/ipa/ipu3/algorithms/af.cpp > index 106a7614e2c7..9127c24f1287 100644 > --- a/src/ipa/ipu3/algorithms/af.cpp > +++ b/src/ipa/ipu3/algorithms/af.cpp > @@ -383,7 +383,7 @@ double Af::afEstimateVariance(Span<const y_table_item_t> y_items, bool isY1) > * \return True if the variance threshold is crossed indicating lost focus, > * false otherwise > */ > -bool Af::afIsOutOfFocus(IPAContext context) > +bool Af::afIsOutOfFocus(IPAContext &context) > { > const uint32_t diff_var = std::abs(currentVariance_ - > context.activeState.af.maxVariance); > diff --git a/src/ipa/ipu3/algorithms/af.h b/src/ipa/ipu3/algorithms/af.h > index ccf015f3f8f5..9b93594898bb 100644 > --- a/src/ipa/ipu3/algorithms/af.h > +++ b/src/ipa/ipu3/algorithms/af.h > @@ -44,7 +44,7 @@ private: > void afIgnoreFrameReset(); > double afEstimateVariance(Span<const y_table_item_t> y_items, bool isY1); > > - bool afIsOutOfFocus(IPAContext context); > + bool afIsOutOfFocus(IPAContext &context); > > /* VCM step configuration. It is the current setting of the VCM step. */ > uint32_t focus_; > -- > Regards, > > Laurent Pinchart >
Hi Kieran, On Tue, Sep 20, 2022 at 02:21:46PM +0100, Kieran Bingham wrote: > Quoting Laurent Pinchart via libcamera-devel (2022-09-08 02:41:30) > > Avoid copying the whole IPA context by passing a reference to the > > Af::afIsOutOfFocus() function. > > We need to disable/delete the implicit copy constructor of the IPA > context... > > Is that something you have already? No I don't. It would indeed be useful. That will need to be done individually in IPA modules though, as there's no base class for the context, but I don't think that's a problem. I'll add a patch on top. > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > --- > > src/ipa/ipu3/algorithms/af.cpp | 2 +- > > src/ipa/ipu3/algorithms/af.h | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/src/ipa/ipu3/algorithms/af.cpp b/src/ipa/ipu3/algorithms/af.cpp > > index 106a7614e2c7..9127c24f1287 100644 > > --- a/src/ipa/ipu3/algorithms/af.cpp > > +++ b/src/ipa/ipu3/algorithms/af.cpp > > @@ -383,7 +383,7 @@ double Af::afEstimateVariance(Span<const y_table_item_t> y_items, bool isY1) > > * \return True if the variance threshold is crossed indicating lost focus, > > * false otherwise > > */ > > -bool Af::afIsOutOfFocus(IPAContext context) > > +bool Af::afIsOutOfFocus(IPAContext &context) > > { > > const uint32_t diff_var = std::abs(currentVariance_ - > > context.activeState.af.maxVariance); > > diff --git a/src/ipa/ipu3/algorithms/af.h b/src/ipa/ipu3/algorithms/af.h > > index ccf015f3f8f5..9b93594898bb 100644 > > --- a/src/ipa/ipu3/algorithms/af.h > > +++ b/src/ipa/ipu3/algorithms/af.h > > @@ -44,7 +44,7 @@ private: > > void afIgnoreFrameReset(); > > double afEstimateVariance(Span<const y_table_item_t> y_items, bool isY1); > > > > - bool afIsOutOfFocus(IPAContext context); > > + bool afIsOutOfFocus(IPAContext &context); > > > > /* VCM step configuration. It is the current setting of the VCM step. */ > > uint32_t focus_;
Hi Laurent On Thu, Sep 08, 2022 at 04:41:30AM +0300, Laurent Pinchart via libcamera-devel wrote: > Avoid copying the whole IPA context by passing a reference to the > Af::afIsOutOfFocus() function. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Thanks j > --- > src/ipa/ipu3/algorithms/af.cpp | 2 +- > src/ipa/ipu3/algorithms/af.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/ipa/ipu3/algorithms/af.cpp b/src/ipa/ipu3/algorithms/af.cpp > index 106a7614e2c7..9127c24f1287 100644 > --- a/src/ipa/ipu3/algorithms/af.cpp > +++ b/src/ipa/ipu3/algorithms/af.cpp > @@ -383,7 +383,7 @@ double Af::afEstimateVariance(Span<const y_table_item_t> y_items, bool isY1) > * \return True if the variance threshold is crossed indicating lost focus, > * false otherwise > */ > -bool Af::afIsOutOfFocus(IPAContext context) > +bool Af::afIsOutOfFocus(IPAContext &context) > { > const uint32_t diff_var = std::abs(currentVariance_ - > context.activeState.af.maxVariance); > diff --git a/src/ipa/ipu3/algorithms/af.h b/src/ipa/ipu3/algorithms/af.h > index ccf015f3f8f5..9b93594898bb 100644 > --- a/src/ipa/ipu3/algorithms/af.h > +++ b/src/ipa/ipu3/algorithms/af.h > @@ -44,7 +44,7 @@ private: > void afIgnoreFrameReset(); > double afEstimateVariance(Span<const y_table_item_t> y_items, bool isY1); > > - bool afIsOutOfFocus(IPAContext context); > + bool afIsOutOfFocus(IPAContext &context); > > /* VCM step configuration. It is the current setting of the VCM step. */ > uint32_t focus_; > -- > Regards, > > Laurent Pinchart >
diff --git a/src/ipa/ipu3/algorithms/af.cpp b/src/ipa/ipu3/algorithms/af.cpp index 106a7614e2c7..9127c24f1287 100644 --- a/src/ipa/ipu3/algorithms/af.cpp +++ b/src/ipa/ipu3/algorithms/af.cpp @@ -383,7 +383,7 @@ double Af::afEstimateVariance(Span<const y_table_item_t> y_items, bool isY1) * \return True if the variance threshold is crossed indicating lost focus, * false otherwise */ -bool Af::afIsOutOfFocus(IPAContext context) +bool Af::afIsOutOfFocus(IPAContext &context) { const uint32_t diff_var = std::abs(currentVariance_ - context.activeState.af.maxVariance); diff --git a/src/ipa/ipu3/algorithms/af.h b/src/ipa/ipu3/algorithms/af.h index ccf015f3f8f5..9b93594898bb 100644 --- a/src/ipa/ipu3/algorithms/af.h +++ b/src/ipa/ipu3/algorithms/af.h @@ -44,7 +44,7 @@ private: void afIgnoreFrameReset(); double afEstimateVariance(Span<const y_table_item_t> y_items, bool isY1); - bool afIsOutOfFocus(IPAContext context); + bool afIsOutOfFocus(IPAContext &context); /* VCM step configuration. It is the current setting of the VCM step. */ uint32_t focus_;
Avoid copying the whole IPA context by passing a reference to the Af::afIsOutOfFocus() function. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- src/ipa/ipu3/algorithms/af.cpp | 2 +- src/ipa/ipu3/algorithms/af.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)