[libcamera-devel] [PATCH v4 02/32] ipa: ipu3: af: Pass context reference to afIsOutOfFocus()

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Sep 20 20:56:37 CEST 2022


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 at ideasonboard.com>
> 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at 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


More information about the libcamera-devel mailing list