[libcamera-devel,v4,18/32] ipa: rkisp1: Use frame number passed to Algorithm::prepare()
diff mbox series

Message ID 20220908014200.28728-19-laurent.pinchart@ideasonboard.com
State Superseded
Headers show
Series
  • ipa: Frame context queue, IPU3 & RkISP consolidation, and RkISP1 improvements
Related show

Commit Message

Laurent Pinchart Sept. 8, 2022, 1:41 a.m. UTC
Now that the Algorithm::prepare() function takes a frame number, we can
use it to replace the IPAActiveState::frameCount member.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/ipa/rkisp1/algorithms/agc.cpp  | 5 ++---
 src/ipa/rkisp1/algorithms/awb.cpp  | 5 ++---
 src/ipa/rkisp1/algorithms/blc.cpp  | 6 +++---
 src/ipa/rkisp1/algorithms/dpcc.cpp | 6 +++---
 src/ipa/rkisp1/algorithms/dpf.cpp  | 4 ++--
 src/ipa/rkisp1/algorithms/gsl.cpp  | 6 +++---
 src/ipa/rkisp1/algorithms/lsc.cpp  | 5 ++---
 src/ipa/rkisp1/ipa_context.cpp     | 9 ---------
 src/ipa/rkisp1/ipa_context.h       | 2 --
 src/ipa/rkisp1/rkisp1.cpp          | 3 ---
 10 files changed, 17 insertions(+), 34 deletions(-)

Comments

Kieran Bingham Sept. 20, 2022, 2:51 p.m. UTC | #1
Quoting Laurent Pinchart via libcamera-devel (2022-09-08 02:41:46)
> Now that the Algorithm::prepare() function takes a frame number, we can
> use it to replace the IPAActiveState::frameCount member.
> 

I'm very happy to see this cleaned up.


Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  src/ipa/rkisp1/algorithms/agc.cpp  | 5 ++---
>  src/ipa/rkisp1/algorithms/awb.cpp  | 5 ++---
>  src/ipa/rkisp1/algorithms/blc.cpp  | 6 +++---
>  src/ipa/rkisp1/algorithms/dpcc.cpp | 6 +++---
>  src/ipa/rkisp1/algorithms/dpf.cpp  | 4 ++--
>  src/ipa/rkisp1/algorithms/gsl.cpp  | 6 +++---
>  src/ipa/rkisp1/algorithms/lsc.cpp  | 5 ++---
>  src/ipa/rkisp1/ipa_context.cpp     | 9 ---------
>  src/ipa/rkisp1/ipa_context.h       | 2 --
>  src/ipa/rkisp1/rkisp1.cpp          | 3 ---
>  10 files changed, 17 insertions(+), 34 deletions(-)
> 
> diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
> index e9fab0222ac3..4124c3272bc7 100644
> --- a/src/ipa/rkisp1/algorithms/agc.cpp
> +++ b/src/ipa/rkisp1/algorithms/agc.cpp
> @@ -326,12 +326,11 @@ void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
>  /**
>   * \copydoc libcamera::ipa::Algorithm::prepare
>   */
> -void Agc::prepare(IPAContext &context,
> -                 [[maybe_unused]] const uint32_t frame,
> +void Agc::prepare(IPAContext &context, const uint32_t frame,
>                   [[maybe_unused]] RkISP1FrameContext &frameContext,
>                   rkisp1_params_cfg *params)
>  {
> -       if (context.activeState.frameCount > 0)
> +       if (frame > 0)
>                 return;
>  
>         /* Configure the measurement window. */
> diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
> index d3e9aa5334cf..a0bbe5cb8afa 100644
> --- a/src/ipa/rkisp1/algorithms/awb.cpp
> +++ b/src/ipa/rkisp1/algorithms/awb.cpp
> @@ -74,8 +74,7 @@ uint32_t Awb::estimateCCT(double red, double green, double blue)
>  /**
>   * \copydoc libcamera::ipa::Algorithm::prepare
>   */
> -void Awb::prepare(IPAContext &context,
> -                 [[maybe_unused]] const uint32_t frame,
> +void Awb::prepare(IPAContext &context, const uint32_t frame,
>                   [[maybe_unused]] RkISP1FrameContext &frameContext,
>                   rkisp1_params_cfg *params)
>  {
> @@ -88,7 +87,7 @@ void Awb::prepare(IPAContext &context,
>         params->module_cfg_update |= RKISP1_CIF_ISP_MODULE_AWB_GAIN;
>  
>         /* If we already have configured the gains and window, return. */
> -       if (context.activeState.frameCount > 0)
> +       if (frame > 0)
>                 return;
>  
>         /* Configure the gains to apply. */
> diff --git a/src/ipa/rkisp1/algorithms/blc.cpp b/src/ipa/rkisp1/algorithms/blc.cpp
> index c4aea0e828ca..500ce94294a2 100644
> --- a/src/ipa/rkisp1/algorithms/blc.cpp
> +++ b/src/ipa/rkisp1/algorithms/blc.cpp
> @@ -65,12 +65,12 @@ int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context,
>  /**
>   * \copydoc libcamera::ipa::Algorithm::prepare
>   */
> -void BlackLevelCorrection::prepare(IPAContext &context,
> -                                  [[maybe_unused]] const uint32_t frame,
> +void BlackLevelCorrection::prepare([[maybe_unused]] IPAContext &context,
> +                                  const uint32_t frame,
>                                    [[maybe_unused]] RkISP1FrameContext &frameContext,
>                                    rkisp1_params_cfg *params)
>  {
> -       if (context.activeState.frameCount > 0)
> +       if (frame > 0)
>                 return;
>  
>         if (!tuningParameters_)
> diff --git a/src/ipa/rkisp1/algorithms/dpcc.cpp b/src/ipa/rkisp1/algorithms/dpcc.cpp
> index b61eee022a68..f59d48180eb5 100644
> --- a/src/ipa/rkisp1/algorithms/dpcc.cpp
> +++ b/src/ipa/rkisp1/algorithms/dpcc.cpp
> @@ -258,12 +258,12 @@ int DefectPixelClusterCorrection::init([[maybe_unused]] IPAContext &context,
>  /**
>   * \copydoc libcamera::ipa::Algorithm::prepare
>   */
> -void DefectPixelClusterCorrection::prepare(IPAContext &context,
> -                                          [[maybe_unused]] const uint32_t frame,
> +void DefectPixelClusterCorrection::prepare([[maybe_unused]] IPAContext &context,
> +                                          const uint32_t frame,
>                                            [[maybe_unused]] RkISP1FrameContext &frameContext,
>                                            rkisp1_params_cfg *params)
>  {
> -       if (context.activeState.frameCount > 0)
> +       if (frame > 0)
>                 return;
>  
>         if (!initialized_)
> diff --git a/src/ipa/rkisp1/algorithms/dpf.cpp b/src/ipa/rkisp1/algorithms/dpf.cpp
> index 8eafbbf85124..94c35c36570c 100644
> --- a/src/ipa/rkisp1/algorithms/dpf.cpp
> +++ b/src/ipa/rkisp1/algorithms/dpf.cpp
> @@ -207,7 +207,7 @@ void Dpf::queueRequest(IPAContext &context,
>  /**
>   * \copydoc libcamera::ipa::Algorithm::prepare
>   */
> -void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> +void Dpf::prepare(IPAContext &context, const uint32_t frame,
>                   [[maybe_unused]] RkISP1FrameContext &frameContext,
>                   rkisp1_params_cfg *params)
>  {
> @@ -216,7 +216,7 @@ void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
>  
>         auto &dpf = context.activeState.dpf;
>  
> -       if (context.activeState.frameCount == 0) {
> +       if (frame == 0) {
>                 params->others.dpf_config = config_;
>                 params->others.dpf_strength_config = strengthConfig_;
>  
> diff --git a/src/ipa/rkisp1/algorithms/gsl.cpp b/src/ipa/rkisp1/algorithms/gsl.cpp
> index ed3104c98e48..44303594bd47 100644
> --- a/src/ipa/rkisp1/algorithms/gsl.cpp
> +++ b/src/ipa/rkisp1/algorithms/gsl.cpp
> @@ -118,12 +118,12 @@ int GammaSensorLinearization::init([[maybe_unused]] IPAContext &context,
>  /**
>   * \copydoc libcamera::ipa::Algorithm::prepare
>   */
> -void GammaSensorLinearization::prepare(IPAContext &context,
> -                                      [[maybe_unused]] const uint32_t frame,
> +void GammaSensorLinearization::prepare([[maybe_unused]] IPAContext &context,
> +                                      const uint32_t frame,
>                                        [[maybe_unused]] RkISP1FrameContext &frameContext,
>                                        rkisp1_params_cfg *params)
>  {
> -       if (context.activeState.frameCount > 0)
> +       if (frame > 0)
>                 return;
>  
>         if (!initialized_)
> diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp
> index ed5b988599b8..20111c342bb3 100644
> --- a/src/ipa/rkisp1/algorithms/lsc.cpp
> +++ b/src/ipa/rkisp1/algorithms/lsc.cpp
> @@ -132,12 +132,11 @@ int LensShadingCorrection::configure(IPAContext &context,
>  /**
>   * \copydoc libcamera::ipa::Algorithm::prepare
>   */
> -void LensShadingCorrection::prepare(IPAContext &context,
> -                                   [[maybe_unused]] const uint32_t frame,
> +void LensShadingCorrection::prepare(IPAContext &context, const uint32_t frame,
>                                     [[maybe_unused]] RkISP1FrameContext &frameContext,
>                                     rkisp1_params_cfg *params)
>  {
> -       if (context.activeState.frameCount > 0)
> +       if (frame > 0)
>                 return;
>  
>         if (!initialized_)
> diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
> index 80fae271a6dc..211428717838 100644
> --- a/src/ipa/rkisp1/ipa_context.cpp
> +++ b/src/ipa/rkisp1/ipa_context.cpp
> @@ -192,15 +192,6 @@ namespace libcamera::ipa::rkisp1 {
>   * \brief Analogue gain multiplier
>   */
>  
> -/**
> - * \var IPAActiveState::frameCount
> - * \brief Counter of requests queued to the IPA module
> - *
> - * The counter is reset to 0 when the IPA module is configured, and is
> - * incremented for each request being queued, after calling the
> - * Algorithm::prepare() function of all algorithms.
> - */
> -
>  /**
>   * \struct RkISP1FrameContext
>   * \brief Per-frame context for algorithms
> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
> index 9d89cf0160fc..4e38ef40ed3c 100644
> --- a/src/ipa/rkisp1/ipa_context.h
> +++ b/src/ipa/rkisp1/ipa_context.h
> @@ -87,8 +87,6 @@ struct IPAActiveState {
>                 uint32_t exposure;
>                 double gain;
>         } sensor;
> -
> -       unsigned int frameCount;
>  };
>  
>  struct RkISP1FrameContext : public FrameContext {
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 538401ac89ac..4f6e0b0f87b9 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -261,8 +261,6 @@ int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
>         context_.configuration.agc.minAnalogueGain = camHelper_->gain(minGain);
>         context_.configuration.agc.maxAnalogueGain = camHelper_->gain(maxGain);
>  
> -       context_.activeState.frameCount = 0;
> -
>         for (auto const &algo : algorithms()) {
>                 int ret = algo->configure(context_, info);
>                 if (ret)
> @@ -325,7 +323,6 @@ void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
>                 algo->prepare(context_, frame, frameContext, params);
>  
>         paramsBufferReady.emit(frame);
> -       context_.activeState.frameCount++;
>  }
>  
>  void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId,
> -- 
> Regards,
> 
> Laurent Pinchart
>
Jacopo Mondi Sept. 21, 2022, 6:42 p.m. UTC | #2
On Tue, Sep 20, 2022 at 03:51:45PM +0100, Kieran Bingham via libcamera-devel wrote:
> Quoting Laurent Pinchart via libcamera-devel (2022-09-08 02:41:46)
> > Now that the Algorithm::prepare() function takes a frame number, we can
> > use it to replace the IPAActiveState::frameCount member.
> >
>
> I'm very happy to see this cleaned up.

Likewise :)

Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
  j

>
>
> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
>
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> >  src/ipa/rkisp1/algorithms/agc.cpp  | 5 ++---
> >  src/ipa/rkisp1/algorithms/awb.cpp  | 5 ++---
> >  src/ipa/rkisp1/algorithms/blc.cpp  | 6 +++---
> >  src/ipa/rkisp1/algorithms/dpcc.cpp | 6 +++---
> >  src/ipa/rkisp1/algorithms/dpf.cpp  | 4 ++--
> >  src/ipa/rkisp1/algorithms/gsl.cpp  | 6 +++---
> >  src/ipa/rkisp1/algorithms/lsc.cpp  | 5 ++---
> >  src/ipa/rkisp1/ipa_context.cpp     | 9 ---------
> >  src/ipa/rkisp1/ipa_context.h       | 2 --
> >  src/ipa/rkisp1/rkisp1.cpp          | 3 ---
> >  10 files changed, 17 insertions(+), 34 deletions(-)
> >
> > diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
> > index e9fab0222ac3..4124c3272bc7 100644
> > --- a/src/ipa/rkisp1/algorithms/agc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/agc.cpp
> > @@ -326,12 +326,11 @@ void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> >  /**
> >   * \copydoc libcamera::ipa::Algorithm::prepare
> >   */
> > -void Agc::prepare(IPAContext &context,
> > -                 [[maybe_unused]] const uint32_t frame,
> > +void Agc::prepare(IPAContext &context, const uint32_t frame,
> >                   [[maybe_unused]] RkISP1FrameContext &frameContext,
> >                   rkisp1_params_cfg *params)
> >  {
> > -       if (context.activeState.frameCount > 0)
> > +       if (frame > 0)
> >                 return;
> >
> >         /* Configure the measurement window. */
> > diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
> > index d3e9aa5334cf..a0bbe5cb8afa 100644
> > --- a/src/ipa/rkisp1/algorithms/awb.cpp
> > +++ b/src/ipa/rkisp1/algorithms/awb.cpp
> > @@ -74,8 +74,7 @@ uint32_t Awb::estimateCCT(double red, double green, double blue)
> >  /**
> >   * \copydoc libcamera::ipa::Algorithm::prepare
> >   */
> > -void Awb::prepare(IPAContext &context,
> > -                 [[maybe_unused]] const uint32_t frame,
> > +void Awb::prepare(IPAContext &context, const uint32_t frame,
> >                   [[maybe_unused]] RkISP1FrameContext &frameContext,
> >                   rkisp1_params_cfg *params)
> >  {
> > @@ -88,7 +87,7 @@ void Awb::prepare(IPAContext &context,
> >         params->module_cfg_update |= RKISP1_CIF_ISP_MODULE_AWB_GAIN;
> >
> >         /* If we already have configured the gains and window, return. */
> > -       if (context.activeState.frameCount > 0)
> > +       if (frame > 0)
> >                 return;
> >
> >         /* Configure the gains to apply. */
> > diff --git a/src/ipa/rkisp1/algorithms/blc.cpp b/src/ipa/rkisp1/algorithms/blc.cpp
> > index c4aea0e828ca..500ce94294a2 100644
> > --- a/src/ipa/rkisp1/algorithms/blc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/blc.cpp
> > @@ -65,12 +65,12 @@ int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context,
> >  /**
> >   * \copydoc libcamera::ipa::Algorithm::prepare
> >   */
> > -void BlackLevelCorrection::prepare(IPAContext &context,
> > -                                  [[maybe_unused]] const uint32_t frame,
> > +void BlackLevelCorrection::prepare([[maybe_unused]] IPAContext &context,
> > +                                  const uint32_t frame,
> >                                    [[maybe_unused]] RkISP1FrameContext &frameContext,
> >                                    rkisp1_params_cfg *params)
> >  {
> > -       if (context.activeState.frameCount > 0)
> > +       if (frame > 0)
> >                 return;
> >
> >         if (!tuningParameters_)
> > diff --git a/src/ipa/rkisp1/algorithms/dpcc.cpp b/src/ipa/rkisp1/algorithms/dpcc.cpp
> > index b61eee022a68..f59d48180eb5 100644
> > --- a/src/ipa/rkisp1/algorithms/dpcc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/dpcc.cpp
> > @@ -258,12 +258,12 @@ int DefectPixelClusterCorrection::init([[maybe_unused]] IPAContext &context,
> >  /**
> >   * \copydoc libcamera::ipa::Algorithm::prepare
> >   */
> > -void DefectPixelClusterCorrection::prepare(IPAContext &context,
> > -                                          [[maybe_unused]] const uint32_t frame,
> > +void DefectPixelClusterCorrection::prepare([[maybe_unused]] IPAContext &context,
> > +                                          const uint32_t frame,
> >                                            [[maybe_unused]] RkISP1FrameContext &frameContext,
> >                                            rkisp1_params_cfg *params)
> >  {
> > -       if (context.activeState.frameCount > 0)
> > +       if (frame > 0)
> >                 return;
> >
> >         if (!initialized_)
> > diff --git a/src/ipa/rkisp1/algorithms/dpf.cpp b/src/ipa/rkisp1/algorithms/dpf.cpp
> > index 8eafbbf85124..94c35c36570c 100644
> > --- a/src/ipa/rkisp1/algorithms/dpf.cpp
> > +++ b/src/ipa/rkisp1/algorithms/dpf.cpp
> > @@ -207,7 +207,7 @@ void Dpf::queueRequest(IPAContext &context,
> >  /**
> >   * \copydoc libcamera::ipa::Algorithm::prepare
> >   */
> > -void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> > +void Dpf::prepare(IPAContext &context, const uint32_t frame,
> >                   [[maybe_unused]] RkISP1FrameContext &frameContext,
> >                   rkisp1_params_cfg *params)
> >  {
> > @@ -216,7 +216,7 @@ void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> >
> >         auto &dpf = context.activeState.dpf;
> >
> > -       if (context.activeState.frameCount == 0) {
> > +       if (frame == 0) {
> >                 params->others.dpf_config = config_;
> >                 params->others.dpf_strength_config = strengthConfig_;
> >
> > diff --git a/src/ipa/rkisp1/algorithms/gsl.cpp b/src/ipa/rkisp1/algorithms/gsl.cpp
> > index ed3104c98e48..44303594bd47 100644
> > --- a/src/ipa/rkisp1/algorithms/gsl.cpp
> > +++ b/src/ipa/rkisp1/algorithms/gsl.cpp
> > @@ -118,12 +118,12 @@ int GammaSensorLinearization::init([[maybe_unused]] IPAContext &context,
> >  /**
> >   * \copydoc libcamera::ipa::Algorithm::prepare
> >   */
> > -void GammaSensorLinearization::prepare(IPAContext &context,
> > -                                      [[maybe_unused]] const uint32_t frame,
> > +void GammaSensorLinearization::prepare([[maybe_unused]] IPAContext &context,
> > +                                      const uint32_t frame,
> >                                        [[maybe_unused]] RkISP1FrameContext &frameContext,
> >                                        rkisp1_params_cfg *params)
> >  {
> > -       if (context.activeState.frameCount > 0)
> > +       if (frame > 0)
> >                 return;
> >
> >         if (!initialized_)
> > diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp
> > index ed5b988599b8..20111c342bb3 100644
> > --- a/src/ipa/rkisp1/algorithms/lsc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/lsc.cpp
> > @@ -132,12 +132,11 @@ int LensShadingCorrection::configure(IPAContext &context,
> >  /**
> >   * \copydoc libcamera::ipa::Algorithm::prepare
> >   */
> > -void LensShadingCorrection::prepare(IPAContext &context,
> > -                                   [[maybe_unused]] const uint32_t frame,
> > +void LensShadingCorrection::prepare(IPAContext &context, const uint32_t frame,
> >                                     [[maybe_unused]] RkISP1FrameContext &frameContext,
> >                                     rkisp1_params_cfg *params)
> >  {
> > -       if (context.activeState.frameCount > 0)
> > +       if (frame > 0)
> >                 return;
> >
> >         if (!initialized_)
> > diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
> > index 80fae271a6dc..211428717838 100644
> > --- a/src/ipa/rkisp1/ipa_context.cpp
> > +++ b/src/ipa/rkisp1/ipa_context.cpp
> > @@ -192,15 +192,6 @@ namespace libcamera::ipa::rkisp1 {
> >   * \brief Analogue gain multiplier
> >   */
> >
> > -/**
> > - * \var IPAActiveState::frameCount
> > - * \brief Counter of requests queued to the IPA module
> > - *
> > - * The counter is reset to 0 when the IPA module is configured, and is
> > - * incremented for each request being queued, after calling the
> > - * Algorithm::prepare() function of all algorithms.
> > - */
> > -
> >  /**
> >   * \struct RkISP1FrameContext
> >   * \brief Per-frame context for algorithms
> > diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
> > index 9d89cf0160fc..4e38ef40ed3c 100644
> > --- a/src/ipa/rkisp1/ipa_context.h
> > +++ b/src/ipa/rkisp1/ipa_context.h
> > @@ -87,8 +87,6 @@ struct IPAActiveState {
> >                 uint32_t exposure;
> >                 double gain;
> >         } sensor;
> > -
> > -       unsigned int frameCount;
> >  };
> >
> >  struct RkISP1FrameContext : public FrameContext {
> > diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> > index 538401ac89ac..4f6e0b0f87b9 100644
> > --- a/src/ipa/rkisp1/rkisp1.cpp
> > +++ b/src/ipa/rkisp1/rkisp1.cpp
> > @@ -261,8 +261,6 @@ int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
> >         context_.configuration.agc.minAnalogueGain = camHelper_->gain(minGain);
> >         context_.configuration.agc.maxAnalogueGain = camHelper_->gain(maxGain);
> >
> > -       context_.activeState.frameCount = 0;
> > -
> >         for (auto const &algo : algorithms()) {
> >                 int ret = algo->configure(context_, info);
> >                 if (ret)
> > @@ -325,7 +323,6 @@ void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
> >                 algo->prepare(context_, frame, frameContext, params);
> >
> >         paramsBufferReady.emit(frame);
> > -       context_.activeState.frameCount++;
> >  }
> >
> >  void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId,
> > --
> > Regards,
> >
> > Laurent Pinchart
> >

Patch
diff mbox series

diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
index e9fab0222ac3..4124c3272bc7 100644
--- a/src/ipa/rkisp1/algorithms/agc.cpp
+++ b/src/ipa/rkisp1/algorithms/agc.cpp
@@ -326,12 +326,11 @@  void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
 /**
  * \copydoc libcamera::ipa::Algorithm::prepare
  */
-void Agc::prepare(IPAContext &context,
-		  [[maybe_unused]] const uint32_t frame,
+void Agc::prepare(IPAContext &context, const uint32_t frame,
 		  [[maybe_unused]] RkISP1FrameContext &frameContext,
 		  rkisp1_params_cfg *params)
 {
-	if (context.activeState.frameCount > 0)
+	if (frame > 0)
 		return;
 
 	/* Configure the measurement window. */
diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
index d3e9aa5334cf..a0bbe5cb8afa 100644
--- a/src/ipa/rkisp1/algorithms/awb.cpp
+++ b/src/ipa/rkisp1/algorithms/awb.cpp
@@ -74,8 +74,7 @@  uint32_t Awb::estimateCCT(double red, double green, double blue)
 /**
  * \copydoc libcamera::ipa::Algorithm::prepare
  */
-void Awb::prepare(IPAContext &context,
-		  [[maybe_unused]] const uint32_t frame,
+void Awb::prepare(IPAContext &context, const uint32_t frame,
 		  [[maybe_unused]] RkISP1FrameContext &frameContext,
 		  rkisp1_params_cfg *params)
 {
@@ -88,7 +87,7 @@  void Awb::prepare(IPAContext &context,
 	params->module_cfg_update |= RKISP1_CIF_ISP_MODULE_AWB_GAIN;
 
 	/* If we already have configured the gains and window, return. */
-	if (context.activeState.frameCount > 0)
+	if (frame > 0)
 		return;
 
 	/* Configure the gains to apply. */
diff --git a/src/ipa/rkisp1/algorithms/blc.cpp b/src/ipa/rkisp1/algorithms/blc.cpp
index c4aea0e828ca..500ce94294a2 100644
--- a/src/ipa/rkisp1/algorithms/blc.cpp
+++ b/src/ipa/rkisp1/algorithms/blc.cpp
@@ -65,12 +65,12 @@  int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context,
 /**
  * \copydoc libcamera::ipa::Algorithm::prepare
  */
-void BlackLevelCorrection::prepare(IPAContext &context,
-				   [[maybe_unused]] const uint32_t frame,
+void BlackLevelCorrection::prepare([[maybe_unused]] IPAContext &context,
+				   const uint32_t frame,
 				   [[maybe_unused]] RkISP1FrameContext &frameContext,
 				   rkisp1_params_cfg *params)
 {
-	if (context.activeState.frameCount > 0)
+	if (frame > 0)
 		return;
 
 	if (!tuningParameters_)
diff --git a/src/ipa/rkisp1/algorithms/dpcc.cpp b/src/ipa/rkisp1/algorithms/dpcc.cpp
index b61eee022a68..f59d48180eb5 100644
--- a/src/ipa/rkisp1/algorithms/dpcc.cpp
+++ b/src/ipa/rkisp1/algorithms/dpcc.cpp
@@ -258,12 +258,12 @@  int DefectPixelClusterCorrection::init([[maybe_unused]] IPAContext &context,
 /**
  * \copydoc libcamera::ipa::Algorithm::prepare
  */
-void DefectPixelClusterCorrection::prepare(IPAContext &context,
-					   [[maybe_unused]] const uint32_t frame,
+void DefectPixelClusterCorrection::prepare([[maybe_unused]] IPAContext &context,
+					   const uint32_t frame,
 					   [[maybe_unused]] RkISP1FrameContext &frameContext,
 					   rkisp1_params_cfg *params)
 {
-	if (context.activeState.frameCount > 0)
+	if (frame > 0)
 		return;
 
 	if (!initialized_)
diff --git a/src/ipa/rkisp1/algorithms/dpf.cpp b/src/ipa/rkisp1/algorithms/dpf.cpp
index 8eafbbf85124..94c35c36570c 100644
--- a/src/ipa/rkisp1/algorithms/dpf.cpp
+++ b/src/ipa/rkisp1/algorithms/dpf.cpp
@@ -207,7 +207,7 @@  void Dpf::queueRequest(IPAContext &context,
 /**
  * \copydoc libcamera::ipa::Algorithm::prepare
  */
-void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
+void Dpf::prepare(IPAContext &context, const uint32_t frame,
 		  [[maybe_unused]] RkISP1FrameContext &frameContext,
 		  rkisp1_params_cfg *params)
 {
@@ -216,7 +216,7 @@  void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
 
 	auto &dpf = context.activeState.dpf;
 
-	if (context.activeState.frameCount == 0) {
+	if (frame == 0) {
 		params->others.dpf_config = config_;
 		params->others.dpf_strength_config = strengthConfig_;
 
diff --git a/src/ipa/rkisp1/algorithms/gsl.cpp b/src/ipa/rkisp1/algorithms/gsl.cpp
index ed3104c98e48..44303594bd47 100644
--- a/src/ipa/rkisp1/algorithms/gsl.cpp
+++ b/src/ipa/rkisp1/algorithms/gsl.cpp
@@ -118,12 +118,12 @@  int GammaSensorLinearization::init([[maybe_unused]] IPAContext &context,
 /**
  * \copydoc libcamera::ipa::Algorithm::prepare
  */
-void GammaSensorLinearization::prepare(IPAContext &context,
-				       [[maybe_unused]] const uint32_t frame,
+void GammaSensorLinearization::prepare([[maybe_unused]] IPAContext &context,
+				       const uint32_t frame,
 				       [[maybe_unused]] RkISP1FrameContext &frameContext,
 				       rkisp1_params_cfg *params)
 {
-	if (context.activeState.frameCount > 0)
+	if (frame > 0)
 		return;
 
 	if (!initialized_)
diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp
index ed5b988599b8..20111c342bb3 100644
--- a/src/ipa/rkisp1/algorithms/lsc.cpp
+++ b/src/ipa/rkisp1/algorithms/lsc.cpp
@@ -132,12 +132,11 @@  int LensShadingCorrection::configure(IPAContext &context,
 /**
  * \copydoc libcamera::ipa::Algorithm::prepare
  */
-void LensShadingCorrection::prepare(IPAContext &context,
-				    [[maybe_unused]] const uint32_t frame,
+void LensShadingCorrection::prepare(IPAContext &context, const uint32_t frame,
 				    [[maybe_unused]] RkISP1FrameContext &frameContext,
 				    rkisp1_params_cfg *params)
 {
-	if (context.activeState.frameCount > 0)
+	if (frame > 0)
 		return;
 
 	if (!initialized_)
diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
index 80fae271a6dc..211428717838 100644
--- a/src/ipa/rkisp1/ipa_context.cpp
+++ b/src/ipa/rkisp1/ipa_context.cpp
@@ -192,15 +192,6 @@  namespace libcamera::ipa::rkisp1 {
  * \brief Analogue gain multiplier
  */
 
-/**
- * \var IPAActiveState::frameCount
- * \brief Counter of requests queued to the IPA module
- *
- * The counter is reset to 0 when the IPA module is configured, and is
- * incremented for each request being queued, after calling the
- * Algorithm::prepare() function of all algorithms.
- */
-
 /**
  * \struct RkISP1FrameContext
  * \brief Per-frame context for algorithms
diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
index 9d89cf0160fc..4e38ef40ed3c 100644
--- a/src/ipa/rkisp1/ipa_context.h
+++ b/src/ipa/rkisp1/ipa_context.h
@@ -87,8 +87,6 @@  struct IPAActiveState {
 		uint32_t exposure;
 		double gain;
 	} sensor;
-
-	unsigned int frameCount;
 };
 
 struct RkISP1FrameContext : public FrameContext {
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 538401ac89ac..4f6e0b0f87b9 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -261,8 +261,6 @@  int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
 	context_.configuration.agc.minAnalogueGain = camHelper_->gain(minGain);
 	context_.configuration.agc.maxAnalogueGain = camHelper_->gain(maxGain);
 
-	context_.activeState.frameCount = 0;
-
 	for (auto const &algo : algorithms()) {
 		int ret = algo->configure(context_, info);
 		if (ret)
@@ -325,7 +323,6 @@  void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
 		algo->prepare(context_, frame, frameContext, params);
 
 	paramsBufferReady.emit(frame);
-	context_.activeState.frameCount++;
 }
 
 void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId,