[libcamera-devel] [PATCH v4 17/32] ipa: Rename IPAFrameContext structures
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Thu Sep 22 22:06:16 CEST 2022
Hi Jacopo,
On Wed, Sep 21, 2022 at 08:39:01PM +0200, Jacopo Mondi wrote:
> On Thu, Sep 08, 2022 at 04:41:45AM +0300, Laurent Pinchart via libcamera-devel wrote:
> > From: Kieran Bingham <kieran.bingham at ideasonboard.com>
> >
> > Rename the IPAFrameContext structures in the IPU3 and RkISP1 IPA modules
> > to IPU3FrameContext and RkISP1FrameContext respectively, to avoid
> > ambiguities.
> >
> > Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> $ git grep IPAFra* src/ipa/ipu3/
> src/ipa/ipu3/ipu3-ipa-design-guide.rst: FC: IPAFrameContext(s)
> src/ipa/ipu3/ipu3-ipa-design-guide.rst:The ``IPAFrameContext`` structure may be extended to an array, list, or
> src/ipa/ipu3/ipu3-ipa-design-guide.rst:Presently there is a single ``IPAFrameContext`` without historical data,
>
> Maybe the guide needs to be updated too.
The guide needs updates indeed.
I'm not too fond of this patch to be honest, as I like having consistent
naming across IPA modules. The different IPAFrameContext classes are in
different namespaces, so they won't clas. The drawback is that it may be
confusing for some readers. If we want to have names specific to each
IPA modules, then I'd argue we should also rename the IPAContext,
IPASessionConfiguration and IPAActiveState classes, which would then
pretty much defeat the purpose of having separate namespaces. I think
I'd rahter rename IPARkISP1 and IPAIPU3 to drop the module-specific
suffix and rely on namespaces only.
> That apart
> Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
>
> > ---
> > src/ipa/ipu3/algorithms/af.cpp | 4 ++--
> > src/ipa/ipu3/algorithms/af.h | 4 ++--
> > src/ipa/ipu3/algorithms/agc.cpp | 4 ++--
> > src/ipa/ipu3/algorithms/agc.h | 4 ++--
> > src/ipa/ipu3/algorithms/awb.cpp | 4 ++--
> > src/ipa/ipu3/algorithms/awb.h | 4 ++--
> > src/ipa/ipu3/algorithms/blc.cpp | 2 +-
> > src/ipa/ipu3/algorithms/blc.h | 2 +-
> > src/ipa/ipu3/algorithms/tone_mapping.cpp | 4 ++--
> > src/ipa/ipu3/algorithms/tone_mapping.h | 4 ++--
> > src/ipa/ipu3/ipa_context.cpp | 10 +++++-----
> > src/ipa/ipu3/ipa_context.h | 4 ++--
> > src/ipa/ipu3/ipu3.cpp | 6 +++---
> > src/ipa/ipu3/module.h | 2 +-
> > src/ipa/rkisp1/algorithms/agc.cpp | 4 ++--
> > src/ipa/rkisp1/algorithms/agc.h | 4 ++--
> > src/ipa/rkisp1/algorithms/awb.cpp | 6 +++---
> > src/ipa/rkisp1/algorithms/awb.h | 6 +++---
> > src/ipa/rkisp1/algorithms/blc.cpp | 2 +-
> > src/ipa/rkisp1/algorithms/blc.h | 2 +-
> > src/ipa/rkisp1/algorithms/cproc.cpp | 4 ++--
> > src/ipa/rkisp1/algorithms/cproc.h | 4 ++--
> > src/ipa/rkisp1/algorithms/dpcc.cpp | 2 +-
> > src/ipa/rkisp1/algorithms/dpcc.h | 2 +-
> > src/ipa/rkisp1/algorithms/dpf.cpp | 4 ++--
> > src/ipa/rkisp1/algorithms/dpf.h | 4 ++--
> > src/ipa/rkisp1/algorithms/filter.cpp | 4 ++--
> > src/ipa/rkisp1/algorithms/filter.h | 4 ++--
> > src/ipa/rkisp1/algorithms/gsl.cpp | 2 +-
> > src/ipa/rkisp1/algorithms/gsl.h | 2 +-
> > src/ipa/rkisp1/algorithms/lsc.cpp | 2 +-
> > src/ipa/rkisp1/algorithms/lsc.h | 2 +-
> > src/ipa/rkisp1/ipa_context.cpp | 2 +-
> > src/ipa/rkisp1/ipa_context.h | 4 ++--
> > src/ipa/rkisp1/module.h | 2 +-
> > src/ipa/rkisp1/rkisp1.cpp | 6 +++---
> > 36 files changed, 66 insertions(+), 66 deletions(-)
> >
> > diff --git a/src/ipa/ipu3/algorithms/af.cpp b/src/ipa/ipu3/algorithms/af.cpp
> > index b00a34f9e090..0370619fb0d7 100644
> > --- a/src/ipa/ipu3/algorithms/af.cpp
> > +++ b/src/ipa/ipu3/algorithms/af.cpp
> > @@ -118,7 +118,7 @@ Af::Af()
> > */
> > void Af::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] IPU3FrameContext &frameContext,
> > ipu3_uapi_params *params)
> > {
> > const struct ipu3_uapi_grid_config &grid = context.configuration.af.afGrid;
> > @@ -422,7 +422,7 @@ bool Af::afIsOutOfFocus(IPAContext &context)
> > * [1] Hill Climbing Algorithm, https://en.wikipedia.org/wiki/Hill_climbing
> > */
> > void Af::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] IPU3FrameContext &frameContext,
> > const ipu3_uapi_stats_3a *stats)
> > {
> > /* Evaluate the AF buffer length */
> > diff --git a/src/ipa/ipu3/algorithms/af.h b/src/ipa/ipu3/algorithms/af.h
> > index 89d37ac18615..4727221b595a 100644
> > --- a/src/ipa/ipu3/algorithms/af.h
> > +++ b/src/ipa/ipu3/algorithms/af.h
> > @@ -32,10 +32,10 @@ public:
> >
> > int configure(IPAContext &context, const IPAConfigInfo &configInfo) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + IPU3FrameContext &frameContext,
> > ipu3_uapi_params *params) override;
> > void process(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + IPU3FrameContext &frameContext,
> > const ipu3_uapi_stats_3a *stats) override;
> >
> > private:
> > diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp
> > index a1a3c38ffe84..fc5810218a4a 100644
> > --- a/src/ipa/ipu3/algorithms/agc.cpp
> > +++ b/src/ipa/ipu3/algorithms/agc.cpp
> > @@ -183,7 +183,7 @@ utils::Duration Agc::filterExposure(utils::Duration exposureValue)
> > * \param[in] yGain The gain calculated based on the relative luminance target
> > * \param[in] iqMeanGain The gain calculated based on the relative luminance target
> > */
> > -void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,
> > +void Agc::computeExposure(IPAContext &context, IPU3FrameContext &frameContext,
> > double yGain, double iqMeanGain)
> > {
> > const IPASessionConfiguration &configuration = context.configuration;
> > @@ -325,7 +325,7 @@ double Agc::estimateLuminance(IPAActiveState &activeState,
> > * new exposure and gain for the scene.
> > */
> > void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + IPU3FrameContext &frameContext,
> > const ipu3_uapi_stats_3a *stats)
> > {
> > /*
> > diff --git a/src/ipa/ipu3/algorithms/agc.h b/src/ipa/ipu3/algorithms/agc.h
> > index 59b4b9843c2f..726c9d905026 100644
> > --- a/src/ipa/ipu3/algorithms/agc.h
> > +++ b/src/ipa/ipu3/algorithms/agc.h
> > @@ -29,14 +29,14 @@ public:
> >
> > int configure(IPAContext &context, const IPAConfigInfo &configInfo) override;
> > void process(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + IPU3FrameContext &frameContext,
> > const ipu3_uapi_stats_3a *stats) override;
> >
> > private:
> > double measureBrightness(const ipu3_uapi_stats_3a *stats,
> > const ipu3_uapi_grid_config &grid) const;
> > utils::Duration filterExposure(utils::Duration currentExposure);
> > - void computeExposure(IPAContext &context, IPAFrameContext &frameContext,
> > + void computeExposure(IPAContext &context, IPU3FrameContext &frameContext,
> > double yGain, double iqMeanGain);
> > double estimateLuminance(IPAActiveState &activeState,
> > const ipu3_uapi_grid_config &grid,
> > diff --git a/src/ipa/ipu3/algorithms/awb.cpp b/src/ipa/ipu3/algorithms/awb.cpp
> > index 0dbd7d4c374f..289e9a05f08a 100644
> > --- a/src/ipa/ipu3/algorithms/awb.cpp
> > +++ b/src/ipa/ipu3/algorithms/awb.cpp
> > @@ -388,7 +388,7 @@ void Awb::calculateWBGains(const ipu3_uapi_stats_3a *stats)
> > * \copydoc libcamera::ipa::Algorithm::process
> > */
> > void Awb::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] IPU3FrameContext &frameContext,
> > const ipu3_uapi_stats_3a *stats)
> > {
> > calculateWBGains(stats);
> > @@ -432,7 +432,7 @@ constexpr uint16_t Awb::gainValue(double gain)
> > */
> > void Awb::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] IPU3FrameContext &frameContext,
> > ipu3_uapi_params *params)
> > {
> > /*
> > diff --git a/src/ipa/ipu3/algorithms/awb.h b/src/ipa/ipu3/algorithms/awb.h
> > index 28e2d38a711c..6662aa6ffe04 100644
> > --- a/src/ipa/ipu3/algorithms/awb.h
> > +++ b/src/ipa/ipu3/algorithms/awb.h
> > @@ -40,10 +40,10 @@ public:
> >
> > int configure(IPAContext &context, const IPAConfigInfo &configInfo) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + IPU3FrameContext &frameContext,
> > ipu3_uapi_params *params) override;
> > void process(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + IPU3FrameContext &frameContext,
> > const ipu3_uapi_stats_3a *stats) override;
> >
> > private:
> > diff --git a/src/ipa/ipu3/algorithms/blc.cpp b/src/ipa/ipu3/algorithms/blc.cpp
> > index e838072a344c..ca03b280b66c 100644
> > --- a/src/ipa/ipu3/algorithms/blc.cpp
> > +++ b/src/ipa/ipu3/algorithms/blc.cpp
> > @@ -48,7 +48,7 @@ BlackLevelCorrection::BlackLevelCorrection()
> > */
> > void BlackLevelCorrection::prepare([[maybe_unused]] IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] IPU3FrameContext &frameContext,
> > ipu3_uapi_params *params)
> > {
> > /*
> > diff --git a/src/ipa/ipu3/algorithms/blc.h b/src/ipa/ipu3/algorithms/blc.h
> > index 292bf67b02ff..b7cc55909e71 100644
> > --- a/src/ipa/ipu3/algorithms/blc.h
> > +++ b/src/ipa/ipu3/algorithms/blc.h
> > @@ -19,7 +19,7 @@ public:
> > BlackLevelCorrection();
> >
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + IPU3FrameContext &frameContext,
> > ipu3_uapi_params *params) override;
> > };
> >
> > diff --git a/src/ipa/ipu3/algorithms/tone_mapping.cpp b/src/ipa/ipu3/algorithms/tone_mapping.cpp
> > index eac3d4064443..a8bd05d935cf 100644
> > --- a/src/ipa/ipu3/algorithms/tone_mapping.cpp
> > +++ b/src/ipa/ipu3/algorithms/tone_mapping.cpp
> > @@ -59,7 +59,7 @@ int ToneMapping::configure(IPAContext &context,
> > */
> > void ToneMapping::prepare([[maybe_unused]] IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] IPU3FrameContext &frameContext,
> > ipu3_uapi_params *params)
> > {
> > /* Copy the calculated LUT into the parameters buffer. */
> > @@ -84,7 +84,7 @@ void ToneMapping::prepare([[maybe_unused]] IPAContext &context,
> > * our gamma setting.
> > */
> > void ToneMapping::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] IPU3FrameContext &frameContext,
> > [[maybe_unused]] const ipu3_uapi_stats_3a *stats)
> > {
> > /*
> > diff --git a/src/ipa/ipu3/algorithms/tone_mapping.h b/src/ipa/ipu3/algorithms/tone_mapping.h
> > index 822e5168df82..e8d7f593d513 100644
> > --- a/src/ipa/ipu3/algorithms/tone_mapping.h
> > +++ b/src/ipa/ipu3/algorithms/tone_mapping.h
> > @@ -20,9 +20,9 @@ public:
> >
> > int configure(IPAContext &context, const IPAConfigInfo &configInfo) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext, ipu3_uapi_params *params) override;
> > + IPU3FrameContext &frameContext, ipu3_uapi_params *params) override;
> > void process(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + IPU3FrameContext &frameContext,
> > const ipu3_uapi_stats_3a *stats) override;
> >
> > private:
> > diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp
> > index bd71b615365d..89cb87c66d9f 100644
> > --- a/src/ipa/ipu3/ipa_context.cpp
> > +++ b/src/ipa/ipu3/ipa_context.cpp
> > @@ -43,7 +43,7 @@ namespace libcamera::ipa::ipu3 {
> > * \brief The IPA session configuration, immutable during the session
> > *
> > * \var IPAContext::frameContexts
> > - * \brief Ring buffer of the IPAFrameContext(s)
> > + * \brief Ring buffer of the IPU3FrameContext(s)
> > *
> > * \var IPAContext::activeState
> > * \brief The current state of IPA algorithms
> > @@ -165,16 +165,16 @@ namespace libcamera::ipa::ipu3 {
> > */
> >
> > /**
> > - * \struct IPAFrameContext
> > + * \struct IPU3FrameContext
> > * \brief IPU3-specific FrameContext
> > *
> > - * \var IPAFrameContext::sensor
> > + * \var IPU3FrameContext::sensor
> > * \brief Effective sensor values that were applied for the frame
> > *
> > - * \var IPAFrameContext::sensor.exposure
> > + * \var IPU3FrameContext::sensor.exposure
> > * \brief Exposure time expressed as a number of lines
> > *
> > - * \var IPAFrameContext::sensor.gain
> > + * \var IPU3FrameContext::sensor.gain
> > * \brief Analogue gain multiplier
> > */
> >
> > diff --git a/src/ipa/ipu3/ipa_context.h b/src/ipa/ipu3/ipa_context.h
> > index 36099353e9f2..b8a7ad24a032 100644
> > --- a/src/ipa/ipu3/ipa_context.h
> > +++ b/src/ipa/ipu3/ipa_context.h
> > @@ -72,7 +72,7 @@ struct IPAActiveState {
> > } toneMapping;
> > };
> >
> > -struct IPAFrameContext : public FrameContext {
> > +struct IPU3FrameContext : public FrameContext {
> > struct {
> > uint32_t exposure;
> > double gain;
> > @@ -83,7 +83,7 @@ struct IPAContext {
> > IPASessionConfiguration configuration;
> > IPAActiveState activeState;
> >
> > - FCQueue<IPAFrameContext> frameContexts;
> > + FCQueue<IPU3FrameContext> frameContexts;
> > };
> >
> > } /* namespace ipa::ipu3 */
> > diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
> > index 844ab6de03c7..d850aa46bc28 100644
> > --- a/src/ipa/ipu3/ipu3.cpp
> > +++ b/src/ipa/ipu3/ipu3.cpp
> > @@ -585,7 +585,7 @@ void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
> > */
> > params->use = {};
> >
> > - IPAFrameContext &frameContext = context_.frameContexts.get(frame);
> > + IPU3FrameContext &frameContext = context_.frameContexts.get(frame);
> >
> > for (auto const &algo : algorithms())
> > algo->prepare(context_, frame, frameContext, params);
> > @@ -618,7 +618,7 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,
> > const ipu3_uapi_stats_3a *stats =
> > reinterpret_cast<ipu3_uapi_stats_3a *>(mem.data());
> >
> > - IPAFrameContext &frameContext = context_.frameContexts.get(frame);
> > + IPU3FrameContext &frameContext = context_.frameContexts.get(frame);
> >
> > frameContext.sensor.exposure = sensorControls.get(V4L2_CID_EXPOSURE).get<int32_t>();
> > frameContext.sensor.gain = camHelper_->gain(sensorControls.get(V4L2_CID_ANALOGUE_GAIN).get<int32_t>());
> > @@ -664,7 +664,7 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,
> > void IPAIPU3::queueRequest(const uint32_t frame, const ControlList &controls)
> > {
> > /* \todo Start processing for 'frame' based on 'controls'. */
> > - IPAFrameContext &frameContext = context_.frameContexts.init(frame);
> > + IPU3FrameContext &frameContext = context_.frameContexts.init(frame);
> >
> > for (auto const &algo : algorithms())
> > algo->queueRequest(context_, frame, frameContext, controls);
> > diff --git a/src/ipa/ipu3/module.h b/src/ipa/ipu3/module.h
> > index d94fc4594871..6d0d50f615d8 100644
> > --- a/src/ipa/ipu3/module.h
> > +++ b/src/ipa/ipu3/module.h
> > @@ -19,7 +19,7 @@ namespace libcamera {
> >
> > namespace ipa::ipu3 {
> >
> > -using Module = ipa::Module<IPAContext, IPAFrameContext, IPAConfigInfo,
> > +using Module = ipa::Module<IPAContext, IPU3FrameContext, IPAConfigInfo,
> > ipu3_uapi_params, ipu3_uapi_stats_3a>;
> >
> > } /* namespace ipa::ipu3 */
> > diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
> > index 606f13e776a3..e9fab0222ac3 100644
> > --- a/src/ipa/rkisp1/algorithms/agc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/agc.cpp
> > @@ -285,7 +285,7 @@ double Agc::measureBrightness(const rkisp1_cif_isp_hist_stat *hist) const
> > * new exposure and gain for the scene.
> > */
> > void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > const rkisp1_stat_buffer *stats)
> > {
> > const rkisp1_cif_isp_stat *params = &stats->params;
> > @@ -328,7 +328,7 @@ void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> > */
> > void Agc::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > if (context.activeState.frameCount > 0)
> > diff --git a/src/ipa/rkisp1/algorithms/agc.h b/src/ipa/rkisp1/algorithms/agc.h
> > index f115ba2ed85c..be8932040c8e 100644
> > --- a/src/ipa/rkisp1/algorithms/agc.h
> > +++ b/src/ipa/rkisp1/algorithms/agc.h
> > @@ -27,10 +27,10 @@ public:
> >
> > int configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> > void process(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > const rkisp1_stat_buffer *stats) override;
> >
> > private:
> > diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
> > index 2bd9ef779bc3..d3e9aa5334cf 100644
> > --- a/src/ipa/rkisp1/algorithms/awb.cpp
> > +++ b/src/ipa/rkisp1/algorithms/awb.cpp
> > @@ -76,7 +76,7 @@ uint32_t Awb::estimateCCT(double red, double green, double blue)
> > */
> > void Awb::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > params->others.awb_gain_config.gain_green_b = 256 * context.activeState.awb.gains.green;
> > @@ -128,7 +128,7 @@ void Awb::prepare(IPAContext &context,
> > */
> > void Awb::queueRequest(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > const ControlList &controls)
> > {
> > auto &awb = context.activeState.awb;
> > @@ -157,7 +157,7 @@ void Awb::queueRequest(IPAContext &context,
> > */
> > void Awb::process([[maybe_unused]] IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameCtx,
> > + [[maybe_unused]] RkISP1FrameContext &frameCtx,
> > const rkisp1_stat_buffer *stats)
> > {
> > const rkisp1_cif_isp_stat *params = &stats->params;
> > diff --git a/src/ipa/rkisp1/algorithms/awb.h b/src/ipa/rkisp1/algorithms/awb.h
> > index 6d4a39467038..9fd156d8aff9 100644
> > --- a/src/ipa/rkisp1/algorithms/awb.h
> > +++ b/src/ipa/rkisp1/algorithms/awb.h
> > @@ -21,13 +21,13 @@ public:
> >
> > int configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> > void queueRequest(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > const ControlList &controls) override;
> > void process(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameCtx,
> > + RkISP1FrameContext &frameCtx,
> > const rkisp1_stat_buffer *stats) override;
> >
> > private:
> > diff --git a/src/ipa/rkisp1/algorithms/blc.cpp b/src/ipa/rkisp1/algorithms/blc.cpp
> > index 0f7226cf217d..c4aea0e828ca 100644
> > --- a/src/ipa/rkisp1/algorithms/blc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/blc.cpp
> > @@ -67,7 +67,7 @@ int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context,
> > */
> > void BlackLevelCorrection::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > if (context.activeState.frameCount > 0)
> > diff --git a/src/ipa/rkisp1/algorithms/blc.h b/src/ipa/rkisp1/algorithms/blc.h
> > index 0b1a2d436869..e57c8c7a95c5 100644
> > --- a/src/ipa/rkisp1/algorithms/blc.h
> > +++ b/src/ipa/rkisp1/algorithms/blc.h
> > @@ -21,7 +21,7 @@ public:
> >
> > int init(IPAContext &context, const YamlObject &tuningData) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> >
> > private:
> > diff --git a/src/ipa/rkisp1/algorithms/cproc.cpp b/src/ipa/rkisp1/algorithms/cproc.cpp
> > index ea819b2acfcb..22a70e0b70c7 100644
> > --- a/src/ipa/rkisp1/algorithms/cproc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/cproc.cpp
> > @@ -38,7 +38,7 @@ LOG_DEFINE_CATEGORY(RkISP1CProc)
> > */
> > void ColorProcessing::queueRequest(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > const ControlList &controls)
> > {
> > auto &cproc = context.activeState.cproc;
> > @@ -73,7 +73,7 @@ void ColorProcessing::queueRequest(IPAContext &context,
> > */
> > void ColorProcessing::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > auto &cproc = context.activeState.cproc;
> > diff --git a/src/ipa/rkisp1/algorithms/cproc.h b/src/ipa/rkisp1/algorithms/cproc.h
> > index ba6e901ae110..4e9a17a58800 100644
> > --- a/src/ipa/rkisp1/algorithms/cproc.h
> > +++ b/src/ipa/rkisp1/algorithms/cproc.h
> > @@ -22,10 +22,10 @@ public:
> > ~ColorProcessing() = default;
> >
> > void queueRequest(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > const ControlList &controls) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> > };
> >
> > diff --git a/src/ipa/rkisp1/algorithms/dpcc.cpp b/src/ipa/rkisp1/algorithms/dpcc.cpp
> > index 7c14ace0abee..b61eee022a68 100644
> > --- a/src/ipa/rkisp1/algorithms/dpcc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/dpcc.cpp
> > @@ -260,7 +260,7 @@ int DefectPixelClusterCorrection::init([[maybe_unused]] IPAContext &context,
> > */
> > void DefectPixelClusterCorrection::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > if (context.activeState.frameCount > 0)
> > diff --git a/src/ipa/rkisp1/algorithms/dpcc.h b/src/ipa/rkisp1/algorithms/dpcc.h
> > index 894c0249f35d..4c242e99f8ce 100644
> > --- a/src/ipa/rkisp1/algorithms/dpcc.h
> > +++ b/src/ipa/rkisp1/algorithms/dpcc.h
> > @@ -21,7 +21,7 @@ public:
> >
> > int init(IPAContext &context, const YamlObject &tuningData) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> >
> > private:
> > diff --git a/src/ipa/rkisp1/algorithms/dpf.cpp b/src/ipa/rkisp1/algorithms/dpf.cpp
> > index b8c837c21243..8eafbbf85124 100644
> > --- a/src/ipa/rkisp1/algorithms/dpf.cpp
> > +++ b/src/ipa/rkisp1/algorithms/dpf.cpp
> > @@ -176,7 +176,7 @@ int Dpf::init([[maybe_unused]] IPAContext &context,
> > */
> > void Dpf::queueRequest(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > const ControlList &controls)
> > {
> > auto &dpf = context.activeState.dpf;
> > @@ -208,7 +208,7 @@ void Dpf::queueRequest(IPAContext &context,
> > * \copydoc libcamera::ipa::Algorithm::prepare
> > */
> > void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > if (!initialized_)
> > diff --git a/src/ipa/rkisp1/algorithms/dpf.h b/src/ipa/rkisp1/algorithms/dpf.h
> > index e232cad4ee87..dd465a52ba0a 100644
> > --- a/src/ipa/rkisp1/algorithms/dpf.h
> > +++ b/src/ipa/rkisp1/algorithms/dpf.h
> > @@ -23,10 +23,10 @@ public:
> >
> > int init(IPAContext &context, const YamlObject &tuningData) override;
> > void queueRequest(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > const ControlList &controls) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> >
> > private:
> > diff --git a/src/ipa/rkisp1/algorithms/filter.cpp b/src/ipa/rkisp1/algorithms/filter.cpp
> > index 837560eb20a6..e64bd6a6d68f 100644
> > --- a/src/ipa/rkisp1/algorithms/filter.cpp
> > +++ b/src/ipa/rkisp1/algorithms/filter.cpp
> > @@ -44,7 +44,7 @@ static constexpr uint32_t kFiltModeDefault = 0x000004f2;
> > */
> > void Filter::queueRequest(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > const ControlList &controls)
> > {
> > auto &filter = context.activeState.filter;
> > @@ -88,7 +88,7 @@ void Filter::queueRequest(IPAContext &context,
> > */
> > void Filter::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > auto &filter = context.activeState.filter;
> > diff --git a/src/ipa/rkisp1/algorithms/filter.h b/src/ipa/rkisp1/algorithms/filter.h
> > index 3fd882ea41dc..c340e824722d 100644
> > --- a/src/ipa/rkisp1/algorithms/filter.h
> > +++ b/src/ipa/rkisp1/algorithms/filter.h
> > @@ -22,10 +22,10 @@ public:
> > ~Filter() = default;
> >
> > void queueRequest(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > const ControlList &controls) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> > };
> >
> > diff --git a/src/ipa/rkisp1/algorithms/gsl.cpp b/src/ipa/rkisp1/algorithms/gsl.cpp
> > index 879ca2973e8a..ed3104c98e48 100644
> > --- a/src/ipa/rkisp1/algorithms/gsl.cpp
> > +++ b/src/ipa/rkisp1/algorithms/gsl.cpp
> > @@ -120,7 +120,7 @@ int GammaSensorLinearization::init([[maybe_unused]] IPAContext &context,
> > */
> > void GammaSensorLinearization::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > if (context.activeState.frameCount > 0)
> > diff --git a/src/ipa/rkisp1/algorithms/gsl.h b/src/ipa/rkisp1/algorithms/gsl.h
> > index 5024b6835949..5a951f07e56d 100644
> > --- a/src/ipa/rkisp1/algorithms/gsl.h
> > +++ b/src/ipa/rkisp1/algorithms/gsl.h
> > @@ -21,7 +21,7 @@ public:
> >
> > int init(IPAContext &context, const YamlObject &tuningData) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> >
> > private:
> > diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp
> > index 9c717bc5f99e..ed5b988599b8 100644
> > --- a/src/ipa/rkisp1/algorithms/lsc.cpp
> > +++ b/src/ipa/rkisp1/algorithms/lsc.cpp
> > @@ -134,7 +134,7 @@ int LensShadingCorrection::configure(IPAContext &context,
> > */
> > void LensShadingCorrection::prepare(IPAContext &context,
> > [[maybe_unused]] const uint32_t frame,
> > - [[maybe_unused]] IPAFrameContext &frameContext,
> > + [[maybe_unused]] RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params)
> > {
> > if (context.activeState.frameCount > 0)
> > diff --git a/src/ipa/rkisp1/algorithms/lsc.h b/src/ipa/rkisp1/algorithms/lsc.h
> > index da957d3e3103..b4f18e565085 100644
> > --- a/src/ipa/rkisp1/algorithms/lsc.h
> > +++ b/src/ipa/rkisp1/algorithms/lsc.h
> > @@ -22,7 +22,7 @@ public:
> > int init(IPAContext &context, const YamlObject &tuningData) override;
> > int configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;
> > void prepare(IPAContext &context, const uint32_t frame,
> > - IPAFrameContext &frameContext,
> > + RkISP1FrameContext &frameContext,
> > rkisp1_params_cfg *params) override;
> >
> > private:
> > diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
> > index e9846742ee4f..80fae271a6dc 100644
> > --- a/src/ipa/rkisp1/ipa_context.cpp
> > +++ b/src/ipa/rkisp1/ipa_context.cpp
> > @@ -202,7 +202,7 @@ namespace libcamera::ipa::rkisp1 {
> > */
> >
> > /**
> > - * \struct IPAFrameContext
> > + * \struct RkISP1FrameContext
> > * \brief Per-frame context for algorithms
> > *
> > * \todo Populate the frame context for all algorithms
> > diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
> > index f6aaefffed52..9d89cf0160fc 100644
> > --- a/src/ipa/rkisp1/ipa_context.h
> > +++ b/src/ipa/rkisp1/ipa_context.h
> > @@ -91,14 +91,14 @@ struct IPAActiveState {
> > unsigned int frameCount;
> > };
> >
> > -struct IPAFrameContext : public FrameContext {
> > +struct RkISP1FrameContext : public FrameContext {
> > };
> >
> > struct IPAContext {
> > IPASessionConfiguration configuration;
> > IPAActiveState activeState;
> >
> > - FCQueue<IPAFrameContext> frameContexts;
> > + FCQueue<RkISP1FrameContext> frameContexts;
> > };
> >
> > } /* namespace ipa::rkisp1 */
> > diff --git a/src/ipa/rkisp1/module.h b/src/ipa/rkisp1/module.h
> > index 89f83208a75c..594d5c9d685a 100644
> > --- a/src/ipa/rkisp1/module.h
> > +++ b/src/ipa/rkisp1/module.h
> > @@ -19,7 +19,7 @@ namespace libcamera {
> >
> > namespace ipa::rkisp1 {
> >
> > -using Module = ipa::Module<IPAContext, IPAFrameContext, IPACameraSensorInfo,
> > +using Module = ipa::Module<IPAContext, RkISP1FrameContext, IPACameraSensorInfo,
> > rkisp1_params_cfg, rkisp1_stat_buffer>;
> >
> > } /* namespace ipa::rkisp1 */
> > diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> > index c5ed0bb21f67..538401ac89ac 100644
> > --- a/src/ipa/rkisp1/rkisp1.cpp
> > +++ b/src/ipa/rkisp1/rkisp1.cpp
> > @@ -304,7 +304,7 @@ void IPARkISP1::unmapBuffers(const std::vector<unsigned int> &ids)
> >
> > void IPARkISP1::queueRequest(const uint32_t frame, const ControlList &controls)
> > {
> > - IPAFrameContext &frameContext = context_.frameContexts.init(frame);
> > + RkISP1FrameContext &frameContext = context_.frameContexts.init(frame);
> >
> > for (auto const &algo : algorithms())
> > algo->queueRequest(context_, frame, frameContext, controls);
> > @@ -312,7 +312,7 @@ void IPARkISP1::queueRequest(const uint32_t frame, const ControlList &controls)
> >
> > void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
> > {
> > - IPAFrameContext &frameContext = context_.frameContexts.get(frame);
> > + RkISP1FrameContext &frameContext = context_.frameContexts.get(frame);
> >
> > rkisp1_params_cfg *params =
> > reinterpret_cast<rkisp1_params_cfg *>(
> > @@ -331,7 +331,7 @@ void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
> > void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId,
> > const ControlList &sensorControls)
> > {
> > - IPAFrameContext &frameContext = context_.frameContexts.get(frame);
> > + RkISP1FrameContext &frameContext = context_.frameContexts.get(frame);
> >
> > const rkisp1_stat_buffer *stats =
> > reinterpret_cast<rkisp1_stat_buffer *>(
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list