[{"id":25063,"web_url":"https://patchwork.libcamera.org/comment/25063/","msgid":"<20220921183901.4nm5nwnqu3i3mhv7@uno.localdomain>","date":"2022-09-21T18:39:01","subject":"Re: [libcamera-devel] [PATCH v4 17/32] ipa: Rename IPAFrameContext\n\tstructures","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"On Thu, Sep 08, 2022 at 04:41:45AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> Rename the IPAFrameContext structures in the IPU3 and RkISP1 IPA modules\n> to IPU3FrameContext and RkISP1FrameContext respectively, to avoid\n> ambiguities.\n>\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n$ git grep IPAFra* src/ipa/ipu3/\nsrc/ipa/ipu3/ipu3-ipa-design-guide.rst:        FC: IPAFrameContext(s)\nsrc/ipa/ipu3/ipu3-ipa-design-guide.rst:The ``IPAFrameContext`` structure may be extended to an array, list, or\nsrc/ipa/ipu3/ipu3-ipa-design-guide.rst:Presently there is a single ``IPAFrameContext`` without historical data,\n\nMaybe the guide needs to be updated too.\n\nThat apart\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n> ---\n>  src/ipa/ipu3/algorithms/af.cpp           |  4 ++--\n>  src/ipa/ipu3/algorithms/af.h             |  4 ++--\n>  src/ipa/ipu3/algorithms/agc.cpp          |  4 ++--\n>  src/ipa/ipu3/algorithms/agc.h            |  4 ++--\n>  src/ipa/ipu3/algorithms/awb.cpp          |  4 ++--\n>  src/ipa/ipu3/algorithms/awb.h            |  4 ++--\n>  src/ipa/ipu3/algorithms/blc.cpp          |  2 +-\n>  src/ipa/ipu3/algorithms/blc.h            |  2 +-\n>  src/ipa/ipu3/algorithms/tone_mapping.cpp |  4 ++--\n>  src/ipa/ipu3/algorithms/tone_mapping.h   |  4 ++--\n>  src/ipa/ipu3/ipa_context.cpp             | 10 +++++-----\n>  src/ipa/ipu3/ipa_context.h               |  4 ++--\n>  src/ipa/ipu3/ipu3.cpp                    |  6 +++---\n>  src/ipa/ipu3/module.h                    |  2 +-\n>  src/ipa/rkisp1/algorithms/agc.cpp        |  4 ++--\n>  src/ipa/rkisp1/algorithms/agc.h          |  4 ++--\n>  src/ipa/rkisp1/algorithms/awb.cpp        |  6 +++---\n>  src/ipa/rkisp1/algorithms/awb.h          |  6 +++---\n>  src/ipa/rkisp1/algorithms/blc.cpp        |  2 +-\n>  src/ipa/rkisp1/algorithms/blc.h          |  2 +-\n>  src/ipa/rkisp1/algorithms/cproc.cpp      |  4 ++--\n>  src/ipa/rkisp1/algorithms/cproc.h        |  4 ++--\n>  src/ipa/rkisp1/algorithms/dpcc.cpp       |  2 +-\n>  src/ipa/rkisp1/algorithms/dpcc.h         |  2 +-\n>  src/ipa/rkisp1/algorithms/dpf.cpp        |  4 ++--\n>  src/ipa/rkisp1/algorithms/dpf.h          |  4 ++--\n>  src/ipa/rkisp1/algorithms/filter.cpp     |  4 ++--\n>  src/ipa/rkisp1/algorithms/filter.h       |  4 ++--\n>  src/ipa/rkisp1/algorithms/gsl.cpp        |  2 +-\n>  src/ipa/rkisp1/algorithms/gsl.h          |  2 +-\n>  src/ipa/rkisp1/algorithms/lsc.cpp        |  2 +-\n>  src/ipa/rkisp1/algorithms/lsc.h          |  2 +-\n>  src/ipa/rkisp1/ipa_context.cpp           |  2 +-\n>  src/ipa/rkisp1/ipa_context.h             |  4 ++--\n>  src/ipa/rkisp1/module.h                  |  2 +-\n>  src/ipa/rkisp1/rkisp1.cpp                |  6 +++---\n>  36 files changed, 66 insertions(+), 66 deletions(-)\n>\n> diff --git a/src/ipa/ipu3/algorithms/af.cpp b/src/ipa/ipu3/algorithms/af.cpp\n> index b00a34f9e090..0370619fb0d7 100644\n> --- a/src/ipa/ipu3/algorithms/af.cpp\n> +++ b/src/ipa/ipu3/algorithms/af.cpp\n> @@ -118,7 +118,7 @@ Af::Af()\n>   */\n>  void Af::prepare(IPAContext &context,\n>  \t\t [[maybe_unused]] const uint32_t frame,\n> -\t\t [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t [[maybe_unused]] IPU3FrameContext &frameContext,\n>  \t\t ipu3_uapi_params *params)\n>  {\n>  \tconst struct ipu3_uapi_grid_config &grid = context.configuration.af.afGrid;\n> @@ -422,7 +422,7 @@ bool Af::afIsOutOfFocus(IPAContext &context)\n>   * [1] Hill Climbing Algorithm, https://en.wikipedia.org/wiki/Hill_climbing\n>   */\n>  void Af::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> -\t\t [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t [[maybe_unused]] IPU3FrameContext &frameContext,\n>  \t\t const ipu3_uapi_stats_3a *stats)\n>  {\n>  \t/* Evaluate the AF buffer length */\n> diff --git a/src/ipa/ipu3/algorithms/af.h b/src/ipa/ipu3/algorithms/af.h\n> index 89d37ac18615..4727221b595a 100644\n> --- a/src/ipa/ipu3/algorithms/af.h\n> +++ b/src/ipa/ipu3/algorithms/af.h\n> @@ -32,10 +32,10 @@ public:\n>\n>  \tint configure(IPAContext &context, const IPAConfigInfo &configInfo) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     IPU3FrameContext &frameContext,\n>  \t\t     ipu3_uapi_params *params) override;\n>  \tvoid process(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     IPU3FrameContext &frameContext,\n>  \t\t     const ipu3_uapi_stats_3a *stats) override;\n>\n>  private:\n> diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp\n> index a1a3c38ffe84..fc5810218a4a 100644\n> --- a/src/ipa/ipu3/algorithms/agc.cpp\n> +++ b/src/ipa/ipu3/algorithms/agc.cpp\n> @@ -183,7 +183,7 @@ utils::Duration Agc::filterExposure(utils::Duration exposureValue)\n>   * \\param[in] yGain The gain calculated based on the relative luminance target\n>   * \\param[in] iqMeanGain The gain calculated based on the relative luminance target\n>   */\n> -void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n> +void Agc::computeExposure(IPAContext &context, IPU3FrameContext &frameContext,\n>  \t\t\t  double yGain, double iqMeanGain)\n>  {\n>  \tconst IPASessionConfiguration &configuration = context.configuration;\n> @@ -325,7 +325,7 @@ double Agc::estimateLuminance(IPAActiveState &activeState,\n>   * new exposure and gain for the scene.\n>   */\n>  void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> -\t\t  IPAFrameContext &frameContext,\n> +\t\t  IPU3FrameContext &frameContext,\n>  \t\t  const ipu3_uapi_stats_3a *stats)\n>  {\n>  \t/*\n> diff --git a/src/ipa/ipu3/algorithms/agc.h b/src/ipa/ipu3/algorithms/agc.h\n> index 59b4b9843c2f..726c9d905026 100644\n> --- a/src/ipa/ipu3/algorithms/agc.h\n> +++ b/src/ipa/ipu3/algorithms/agc.h\n> @@ -29,14 +29,14 @@ public:\n>\n>  \tint configure(IPAContext &context, const IPAConfigInfo &configInfo) override;\n>  \tvoid process(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     IPU3FrameContext &frameContext,\n>  \t\t     const ipu3_uapi_stats_3a *stats) override;\n>\n>  private:\n>  \tdouble measureBrightness(const ipu3_uapi_stats_3a *stats,\n>  \t\t\t\t const ipu3_uapi_grid_config &grid) const;\n>  \tutils::Duration filterExposure(utils::Duration currentExposure);\n> -\tvoid computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n> +\tvoid computeExposure(IPAContext &context, IPU3FrameContext &frameContext,\n>  \t\t\t     double yGain, double iqMeanGain);\n>  \tdouble estimateLuminance(IPAActiveState &activeState,\n>  \t\t\t\t const ipu3_uapi_grid_config &grid,\n> diff --git a/src/ipa/ipu3/algorithms/awb.cpp b/src/ipa/ipu3/algorithms/awb.cpp\n> index 0dbd7d4c374f..289e9a05f08a 100644\n> --- a/src/ipa/ipu3/algorithms/awb.cpp\n> +++ b/src/ipa/ipu3/algorithms/awb.cpp\n> @@ -388,7 +388,7 @@ void Awb::calculateWBGains(const ipu3_uapi_stats_3a *stats)\n>   * \\copydoc libcamera::ipa::Algorithm::process\n>   */\n>  void Awb::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t  [[maybe_unused]] IPU3FrameContext &frameContext,\n>  \t\t  const ipu3_uapi_stats_3a *stats)\n>  {\n>  \tcalculateWBGains(stats);\n> @@ -432,7 +432,7 @@ constexpr uint16_t Awb::gainValue(double gain)\n>   */\n>  void Awb::prepare(IPAContext &context,\n>  \t\t  [[maybe_unused]] const uint32_t frame,\n> -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t  [[maybe_unused]] IPU3FrameContext &frameContext,\n>  \t\t  ipu3_uapi_params *params)\n>  {\n>  \t/*\n> diff --git a/src/ipa/ipu3/algorithms/awb.h b/src/ipa/ipu3/algorithms/awb.h\n> index 28e2d38a711c..6662aa6ffe04 100644\n> --- a/src/ipa/ipu3/algorithms/awb.h\n> +++ b/src/ipa/ipu3/algorithms/awb.h\n> @@ -40,10 +40,10 @@ public:\n>\n>  \tint configure(IPAContext &context, const IPAConfigInfo &configInfo) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     IPU3FrameContext &frameContext,\n>  \t\t     ipu3_uapi_params *params) override;\n>  \tvoid process(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     IPU3FrameContext &frameContext,\n>  \t\t     const ipu3_uapi_stats_3a *stats) override;\n>\n>  private:\n> diff --git a/src/ipa/ipu3/algorithms/blc.cpp b/src/ipa/ipu3/algorithms/blc.cpp\n> index e838072a344c..ca03b280b66c 100644\n> --- a/src/ipa/ipu3/algorithms/blc.cpp\n> +++ b/src/ipa/ipu3/algorithms/blc.cpp\n> @@ -48,7 +48,7 @@ BlackLevelCorrection::BlackLevelCorrection()\n>   */\n>  void BlackLevelCorrection::prepare([[maybe_unused]] IPAContext &context,\n>  \t\t\t\t   [[maybe_unused]] const uint32_t frame,\n> -\t\t\t\t   [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t\t   [[maybe_unused]] IPU3FrameContext &frameContext,\n>  \t\t\t\t   ipu3_uapi_params *params)\n>  {\n>  \t/*\n> diff --git a/src/ipa/ipu3/algorithms/blc.h b/src/ipa/ipu3/algorithms/blc.h\n> index 292bf67b02ff..b7cc55909e71 100644\n> --- a/src/ipa/ipu3/algorithms/blc.h\n> +++ b/src/ipa/ipu3/algorithms/blc.h\n> @@ -19,7 +19,7 @@ public:\n>  \tBlackLevelCorrection();\n>\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     IPU3FrameContext &frameContext,\n>  \t\t     ipu3_uapi_params *params) override;\n>  };\n>\n> diff --git a/src/ipa/ipu3/algorithms/tone_mapping.cpp b/src/ipa/ipu3/algorithms/tone_mapping.cpp\n> index eac3d4064443..a8bd05d935cf 100644\n> --- a/src/ipa/ipu3/algorithms/tone_mapping.cpp\n> +++ b/src/ipa/ipu3/algorithms/tone_mapping.cpp\n> @@ -59,7 +59,7 @@ int ToneMapping::configure(IPAContext &context,\n>   */\n>  void ToneMapping::prepare([[maybe_unused]] IPAContext &context,\n>  \t\t\t  [[maybe_unused]] const uint32_t frame,\n> -\t\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t  [[maybe_unused]] IPU3FrameContext &frameContext,\n>  \t\t\t  ipu3_uapi_params *params)\n>  {\n>  \t/* Copy the calculated LUT into the parameters buffer. */\n> @@ -84,7 +84,7 @@ void ToneMapping::prepare([[maybe_unused]] IPAContext &context,\n>   * our gamma setting.\n>   */\n>  void ToneMapping::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> -\t\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t  [[maybe_unused]] IPU3FrameContext &frameContext,\n>  \t\t\t  [[maybe_unused]] const ipu3_uapi_stats_3a *stats)\n>  {\n>  \t/*\n> diff --git a/src/ipa/ipu3/algorithms/tone_mapping.h b/src/ipa/ipu3/algorithms/tone_mapping.h\n> index 822e5168df82..e8d7f593d513 100644\n> --- a/src/ipa/ipu3/algorithms/tone_mapping.h\n> +++ b/src/ipa/ipu3/algorithms/tone_mapping.h\n> @@ -20,9 +20,9 @@ public:\n>\n>  \tint configure(IPAContext &context, const IPAConfigInfo &configInfo) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext, ipu3_uapi_params *params) override;\n> +\t\t     IPU3FrameContext &frameContext, ipu3_uapi_params *params) override;\n>  \tvoid process(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     IPU3FrameContext &frameContext,\n>  \t\t     const ipu3_uapi_stats_3a *stats) override;\n>\n>  private:\n> diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp\n> index bd71b615365d..89cb87c66d9f 100644\n> --- a/src/ipa/ipu3/ipa_context.cpp\n> +++ b/src/ipa/ipu3/ipa_context.cpp\n> @@ -43,7 +43,7 @@ namespace libcamera::ipa::ipu3 {\n>   * \\brief The IPA session configuration, immutable during the session\n>   *\n>   * \\var IPAContext::frameContexts\n> - * \\brief Ring buffer of the IPAFrameContext(s)\n> + * \\brief Ring buffer of the IPU3FrameContext(s)\n>   *\n>   * \\var IPAContext::activeState\n>   * \\brief The current state of IPA algorithms\n> @@ -165,16 +165,16 @@ namespace libcamera::ipa::ipu3 {\n>   */\n>\n>  /**\n> - * \\struct IPAFrameContext\n> + * \\struct IPU3FrameContext\n>   * \\brief IPU3-specific FrameContext\n>   *\n> - * \\var IPAFrameContext::sensor\n> + * \\var IPU3FrameContext::sensor\n>   * \\brief Effective sensor values that were applied for the frame\n>   *\n> - * \\var IPAFrameContext::sensor.exposure\n> + * \\var IPU3FrameContext::sensor.exposure\n>   * \\brief Exposure time expressed as a number of lines\n>   *\n> - * \\var IPAFrameContext::sensor.gain\n> + * \\var IPU3FrameContext::sensor.gain\n>   * \\brief Analogue gain multiplier\n>   */\n>\n> diff --git a/src/ipa/ipu3/ipa_context.h b/src/ipa/ipu3/ipa_context.h\n> index 36099353e9f2..b8a7ad24a032 100644\n> --- a/src/ipa/ipu3/ipa_context.h\n> +++ b/src/ipa/ipu3/ipa_context.h\n> @@ -72,7 +72,7 @@ struct IPAActiveState {\n>  \t} toneMapping;\n>  };\n>\n> -struct IPAFrameContext : public FrameContext {\n> +struct IPU3FrameContext : public FrameContext {\n>  \tstruct {\n>  \t\tuint32_t exposure;\n>  \t\tdouble gain;\n> @@ -83,7 +83,7 @@ struct IPAContext {\n>  \tIPASessionConfiguration configuration;\n>  \tIPAActiveState activeState;\n>\n> -\tFCQueue<IPAFrameContext> frameContexts;\n> +\tFCQueue<IPU3FrameContext> frameContexts;\n>  };\n>\n>  } /* namespace ipa::ipu3 */\n> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\n> index 844ab6de03c7..d850aa46bc28 100644\n> --- a/src/ipa/ipu3/ipu3.cpp\n> +++ b/src/ipa/ipu3/ipu3.cpp\n> @@ -585,7 +585,7 @@ void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)\n>  \t */\n>  \tparams->use = {};\n>\n> -\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> +\tIPU3FrameContext &frameContext = context_.frameContexts.get(frame);\n>\n>  \tfor (auto const &algo : algorithms())\n>  \t\talgo->prepare(context_, frame, frameContext, params);\n> @@ -618,7 +618,7 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,\n>  \tconst ipu3_uapi_stats_3a *stats =\n>  \t\treinterpret_cast<ipu3_uapi_stats_3a *>(mem.data());\n>\n> -\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> +\tIPU3FrameContext &frameContext = context_.frameContexts.get(frame);\n>\n>  \tframeContext.sensor.exposure = sensorControls.get(V4L2_CID_EXPOSURE).get<int32_t>();\n>  \tframeContext.sensor.gain = camHelper_->gain(sensorControls.get(V4L2_CID_ANALOGUE_GAIN).get<int32_t>());\n> @@ -664,7 +664,7 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,\n>  void IPAIPU3::queueRequest(const uint32_t frame, const ControlList &controls)\n>  {\n>  \t/* \\todo Start processing for 'frame' based on 'controls'. */\n> -\tIPAFrameContext &frameContext = context_.frameContexts.init(frame);\n> +\tIPU3FrameContext &frameContext = context_.frameContexts.init(frame);\n>\n>  \tfor (auto const &algo : algorithms())\n>  \t\talgo->queueRequest(context_, frame, frameContext, controls);\n> diff --git a/src/ipa/ipu3/module.h b/src/ipa/ipu3/module.h\n> index d94fc4594871..6d0d50f615d8 100644\n> --- a/src/ipa/ipu3/module.h\n> +++ b/src/ipa/ipu3/module.h\n> @@ -19,7 +19,7 @@ namespace libcamera {\n>\n>  namespace ipa::ipu3 {\n>\n> -using Module = ipa::Module<IPAContext, IPAFrameContext, IPAConfigInfo,\n> +using Module = ipa::Module<IPAContext, IPU3FrameContext, IPAConfigInfo,\n>  \t\t\t   ipu3_uapi_params, ipu3_uapi_stats_3a>;\n>\n>  } /* namespace ipa::ipu3 */\n> diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\n> index 606f13e776a3..e9fab0222ac3 100644\n> --- a/src/ipa/rkisp1/algorithms/agc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/agc.cpp\n> @@ -285,7 +285,7 @@ double Agc::measureBrightness(const rkisp1_cif_isp_hist_stat *hist) const\n>   * new exposure and gain for the scene.\n>   */\n>  void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t  const rkisp1_stat_buffer *stats)\n>  {\n>  \tconst rkisp1_cif_isp_stat *params = &stats->params;\n> @@ -328,7 +328,7 @@ void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n>   */\n>  void Agc::prepare(IPAContext &context,\n>  \t\t  [[maybe_unused]] const uint32_t frame,\n> -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t  rkisp1_params_cfg *params)\n>  {\n>  \tif (context.activeState.frameCount > 0)\n> diff --git a/src/ipa/rkisp1/algorithms/agc.h b/src/ipa/rkisp1/algorithms/agc.h\n> index f115ba2ed85c..be8932040c8e 100644\n> --- a/src/ipa/rkisp1/algorithms/agc.h\n> +++ b/src/ipa/rkisp1/algorithms/agc.h\n> @@ -27,10 +27,10 @@ public:\n>\n>  \tint configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>  \tvoid process(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     const rkisp1_stat_buffer *stats) override;\n>\n>  private:\n> diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp\n> index 2bd9ef779bc3..d3e9aa5334cf 100644\n> --- a/src/ipa/rkisp1/algorithms/awb.cpp\n> +++ b/src/ipa/rkisp1/algorithms/awb.cpp\n> @@ -76,7 +76,7 @@ uint32_t Awb::estimateCCT(double red, double green, double blue)\n>   */\n>  void Awb::prepare(IPAContext &context,\n>  \t\t  [[maybe_unused]] const uint32_t frame,\n> -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t  rkisp1_params_cfg *params)\n>  {\n>  \tparams->others.awb_gain_config.gain_green_b = 256 * context.activeState.awb.gains.green;\n> @@ -128,7 +128,7 @@ void Awb::prepare(IPAContext &context,\n>   */\n>  void Awb::queueRequest(IPAContext &context,\n>  \t\t       [[maybe_unused]] const uint32_t frame,\n> -\t\t       [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t       [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t       const ControlList &controls)\n>  {\n>  \tauto &awb = context.activeState.awb;\n> @@ -157,7 +157,7 @@ void Awb::queueRequest(IPAContext &context,\n>   */\n>  void Awb::process([[maybe_unused]] IPAContext &context,\n>  \t\t  [[maybe_unused]] const uint32_t frame,\n> -\t\t  [[maybe_unused]] IPAFrameContext &frameCtx,\n> +\t\t  [[maybe_unused]] RkISP1FrameContext &frameCtx,\n>  \t\t  const rkisp1_stat_buffer *stats)\n>  {\n>  \tconst rkisp1_cif_isp_stat *params = &stats->params;\n> diff --git a/src/ipa/rkisp1/algorithms/awb.h b/src/ipa/rkisp1/algorithms/awb.h\n> index 6d4a39467038..9fd156d8aff9 100644\n> --- a/src/ipa/rkisp1/algorithms/awb.h\n> +++ b/src/ipa/rkisp1/algorithms/awb.h\n> @@ -21,13 +21,13 @@ public:\n>\n>  \tint configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>  \tvoid queueRequest(IPAContext &context, const uint32_t frame,\n> -\t\t\t  IPAFrameContext &frameContext,\n> +\t\t\t  RkISP1FrameContext &frameContext,\n>  \t\t\t  const ControlList &controls) override;\n>  \tvoid process(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameCtx,\n> +\t\t     RkISP1FrameContext &frameCtx,\n>  \t\t     const rkisp1_stat_buffer *stats) override;\n>\n>  private:\n> diff --git a/src/ipa/rkisp1/algorithms/blc.cpp b/src/ipa/rkisp1/algorithms/blc.cpp\n> index 0f7226cf217d..c4aea0e828ca 100644\n> --- a/src/ipa/rkisp1/algorithms/blc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/blc.cpp\n> @@ -67,7 +67,7 @@ int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context,\n>   */\n>  void BlackLevelCorrection::prepare(IPAContext &context,\n>  \t\t\t\t   [[maybe_unused]] const uint32_t frame,\n> -\t\t\t\t   [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t\t   [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t\t\t   rkisp1_params_cfg *params)\n>  {\n>  \tif (context.activeState.frameCount > 0)\n> diff --git a/src/ipa/rkisp1/algorithms/blc.h b/src/ipa/rkisp1/algorithms/blc.h\n> index 0b1a2d436869..e57c8c7a95c5 100644\n> --- a/src/ipa/rkisp1/algorithms/blc.h\n> +++ b/src/ipa/rkisp1/algorithms/blc.h\n> @@ -21,7 +21,7 @@ public:\n>\n>  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>\n>  private:\n> diff --git a/src/ipa/rkisp1/algorithms/cproc.cpp b/src/ipa/rkisp1/algorithms/cproc.cpp\n> index ea819b2acfcb..22a70e0b70c7 100644\n> --- a/src/ipa/rkisp1/algorithms/cproc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/cproc.cpp\n> @@ -38,7 +38,7 @@ LOG_DEFINE_CATEGORY(RkISP1CProc)\n>   */\n>  void ColorProcessing::queueRequest(IPAContext &context,\n>  \t\t\t\t   [[maybe_unused]] const uint32_t frame,\n> -\t\t\t\t   [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t\t   [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t\t\t   const ControlList &controls)\n>  {\n>  \tauto &cproc = context.activeState.cproc;\n> @@ -73,7 +73,7 @@ void ColorProcessing::queueRequest(IPAContext &context,\n>   */\n>  void ColorProcessing::prepare(IPAContext &context,\n>  \t\t\t      [[maybe_unused]] const uint32_t frame,\n> -\t\t\t      [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t      [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t\t      rkisp1_params_cfg *params)\n>  {\n>  \tauto &cproc = context.activeState.cproc;\n> diff --git a/src/ipa/rkisp1/algorithms/cproc.h b/src/ipa/rkisp1/algorithms/cproc.h\n> index ba6e901ae110..4e9a17a58800 100644\n> --- a/src/ipa/rkisp1/algorithms/cproc.h\n> +++ b/src/ipa/rkisp1/algorithms/cproc.h\n> @@ -22,10 +22,10 @@ public:\n>  \t~ColorProcessing() = default;\n>\n>  \tvoid queueRequest(IPAContext &context, const uint32_t frame,\n> -\t\t\t  IPAFrameContext &frameContext,\n> +\t\t\t  RkISP1FrameContext &frameContext,\n>  \t\t\t  const ControlList &controls) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>  };\n>\n> diff --git a/src/ipa/rkisp1/algorithms/dpcc.cpp b/src/ipa/rkisp1/algorithms/dpcc.cpp\n> index 7c14ace0abee..b61eee022a68 100644\n> --- a/src/ipa/rkisp1/algorithms/dpcc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/dpcc.cpp\n> @@ -260,7 +260,7 @@ int DefectPixelClusterCorrection::init([[maybe_unused]] IPAContext &context,\n>   */\n>  void DefectPixelClusterCorrection::prepare(IPAContext &context,\n>  \t\t\t\t\t   [[maybe_unused]] const uint32_t frame,\n> -\t\t\t\t\t   [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t\t\t   [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t\t\t\t   rkisp1_params_cfg *params)\n>  {\n>  \tif (context.activeState.frameCount > 0)\n> diff --git a/src/ipa/rkisp1/algorithms/dpcc.h b/src/ipa/rkisp1/algorithms/dpcc.h\n> index 894c0249f35d..4c242e99f8ce 100644\n> --- a/src/ipa/rkisp1/algorithms/dpcc.h\n> +++ b/src/ipa/rkisp1/algorithms/dpcc.h\n> @@ -21,7 +21,7 @@ public:\n>\n>  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>\n>  private:\n> diff --git a/src/ipa/rkisp1/algorithms/dpf.cpp b/src/ipa/rkisp1/algorithms/dpf.cpp\n> index b8c837c21243..8eafbbf85124 100644\n> --- a/src/ipa/rkisp1/algorithms/dpf.cpp\n> +++ b/src/ipa/rkisp1/algorithms/dpf.cpp\n> @@ -176,7 +176,7 @@ int Dpf::init([[maybe_unused]] IPAContext &context,\n>   */\n>  void Dpf::queueRequest(IPAContext &context,\n>  \t\t       [[maybe_unused]] const uint32_t frame,\n> -\t\t       [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t       [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t       const ControlList &controls)\n>  {\n>  \tauto &dpf = context.activeState.dpf;\n> @@ -208,7 +208,7 @@ void Dpf::queueRequest(IPAContext &context,\n>   * \\copydoc libcamera::ipa::Algorithm::prepare\n>   */\n>  void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t  rkisp1_params_cfg *params)\n>  {\n>  \tif (!initialized_)\n> diff --git a/src/ipa/rkisp1/algorithms/dpf.h b/src/ipa/rkisp1/algorithms/dpf.h\n> index e232cad4ee87..dd465a52ba0a 100644\n> --- a/src/ipa/rkisp1/algorithms/dpf.h\n> +++ b/src/ipa/rkisp1/algorithms/dpf.h\n> @@ -23,10 +23,10 @@ public:\n>\n>  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n>  \tvoid queueRequest(IPAContext &context, const uint32_t frame,\n> -\t\t\t  IPAFrameContext &frameContext,\n> +\t\t\t  RkISP1FrameContext &frameContext,\n>  \t\t\t  const ControlList &controls) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>\n>  private:\n> diff --git a/src/ipa/rkisp1/algorithms/filter.cpp b/src/ipa/rkisp1/algorithms/filter.cpp\n> index 837560eb20a6..e64bd6a6d68f 100644\n> --- a/src/ipa/rkisp1/algorithms/filter.cpp\n> +++ b/src/ipa/rkisp1/algorithms/filter.cpp\n> @@ -44,7 +44,7 @@ static constexpr uint32_t kFiltModeDefault = 0x000004f2;\n>   */\n>  void Filter::queueRequest(IPAContext &context,\n>  \t\t\t  [[maybe_unused]] const uint32_t frame,\n> -\t\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t\t  const ControlList &controls)\n>  {\n>  \tauto &filter = context.activeState.filter;\n> @@ -88,7 +88,7 @@ void Filter::queueRequest(IPAContext &context,\n>   */\n>  void Filter::prepare(IPAContext &context,\n>  \t\t     [[maybe_unused]] const uint32_t frame,\n> -\t\t     [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t     [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params)\n>  {\n>  \tauto &filter = context.activeState.filter;\n> diff --git a/src/ipa/rkisp1/algorithms/filter.h b/src/ipa/rkisp1/algorithms/filter.h\n> index 3fd882ea41dc..c340e824722d 100644\n> --- a/src/ipa/rkisp1/algorithms/filter.h\n> +++ b/src/ipa/rkisp1/algorithms/filter.h\n> @@ -22,10 +22,10 @@ public:\n>  \t~Filter() = default;\n>\n>  \tvoid queueRequest(IPAContext &context, const uint32_t frame,\n> -\t\t\t  IPAFrameContext &frameContext,\n> +\t\t\t  RkISP1FrameContext &frameContext,\n>  \t\t\t  const ControlList &controls) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>  };\n>\n> diff --git a/src/ipa/rkisp1/algorithms/gsl.cpp b/src/ipa/rkisp1/algorithms/gsl.cpp\n> index 879ca2973e8a..ed3104c98e48 100644\n> --- a/src/ipa/rkisp1/algorithms/gsl.cpp\n> +++ b/src/ipa/rkisp1/algorithms/gsl.cpp\n> @@ -120,7 +120,7 @@ int GammaSensorLinearization::init([[maybe_unused]] IPAContext &context,\n>   */\n>  void GammaSensorLinearization::prepare(IPAContext &context,\n>  \t\t\t\t       [[maybe_unused]] const uint32_t frame,\n> -\t\t\t\t       [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t\t       [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t\t\t       rkisp1_params_cfg *params)\n>  {\n>  \tif (context.activeState.frameCount > 0)\n> diff --git a/src/ipa/rkisp1/algorithms/gsl.h b/src/ipa/rkisp1/algorithms/gsl.h\n> index 5024b6835949..5a951f07e56d 100644\n> --- a/src/ipa/rkisp1/algorithms/gsl.h\n> +++ b/src/ipa/rkisp1/algorithms/gsl.h\n> @@ -21,7 +21,7 @@ public:\n>\n>  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>\n>  private:\n> diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp\n> index 9c717bc5f99e..ed5b988599b8 100644\n> --- a/src/ipa/rkisp1/algorithms/lsc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/lsc.cpp\n> @@ -134,7 +134,7 @@ int LensShadingCorrection::configure(IPAContext &context,\n>   */\n>  void LensShadingCorrection::prepare(IPAContext &context,\n>  \t\t\t\t    [[maybe_unused]] const uint32_t frame,\n> -\t\t\t\t    [[maybe_unused]] IPAFrameContext &frameContext,\n> +\t\t\t\t    [[maybe_unused]] RkISP1FrameContext &frameContext,\n>  \t\t\t\t    rkisp1_params_cfg *params)\n>  {\n>  \tif (context.activeState.frameCount > 0)\n> diff --git a/src/ipa/rkisp1/algorithms/lsc.h b/src/ipa/rkisp1/algorithms/lsc.h\n> index da957d3e3103..b4f18e565085 100644\n> --- a/src/ipa/rkisp1/algorithms/lsc.h\n> +++ b/src/ipa/rkisp1/algorithms/lsc.h\n> @@ -22,7 +22,7 @@ public:\n>  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n>  \tint configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;\n>  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> -\t\t     IPAFrameContext &frameContext,\n> +\t\t     RkISP1FrameContext &frameContext,\n>  \t\t     rkisp1_params_cfg *params) override;\n>\n>  private:\n> diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp\n> index e9846742ee4f..80fae271a6dc 100644\n> --- a/src/ipa/rkisp1/ipa_context.cpp\n> +++ b/src/ipa/rkisp1/ipa_context.cpp\n> @@ -202,7 +202,7 @@ namespace libcamera::ipa::rkisp1 {\n>   */\n>\n>  /**\n> - * \\struct IPAFrameContext\n> + * \\struct RkISP1FrameContext\n>   * \\brief Per-frame context for algorithms\n>   *\n>   * \\todo Populate the frame context for all algorithms\n> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h\n> index f6aaefffed52..9d89cf0160fc 100644\n> --- a/src/ipa/rkisp1/ipa_context.h\n> +++ b/src/ipa/rkisp1/ipa_context.h\n> @@ -91,14 +91,14 @@ struct IPAActiveState {\n>  \tunsigned int frameCount;\n>  };\n>\n> -struct IPAFrameContext : public FrameContext {\n> +struct RkISP1FrameContext : public FrameContext {\n>  };\n>\n>  struct IPAContext {\n>  \tIPASessionConfiguration configuration;\n>  \tIPAActiveState activeState;\n>\n> -\tFCQueue<IPAFrameContext> frameContexts;\n> +\tFCQueue<RkISP1FrameContext> frameContexts;\n>  };\n>\n>  } /* namespace ipa::rkisp1 */\n> diff --git a/src/ipa/rkisp1/module.h b/src/ipa/rkisp1/module.h\n> index 89f83208a75c..594d5c9d685a 100644\n> --- a/src/ipa/rkisp1/module.h\n> +++ b/src/ipa/rkisp1/module.h\n> @@ -19,7 +19,7 @@ namespace libcamera {\n>\n>  namespace ipa::rkisp1 {\n>\n> -using Module = ipa::Module<IPAContext, IPAFrameContext, IPACameraSensorInfo,\n> +using Module = ipa::Module<IPAContext, RkISP1FrameContext, IPACameraSensorInfo,\n>  \t\t\t   rkisp1_params_cfg, rkisp1_stat_buffer>;\n>\n>  } /* namespace ipa::rkisp1 */\n> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\n> index c5ed0bb21f67..538401ac89ac 100644\n> --- a/src/ipa/rkisp1/rkisp1.cpp\n> +++ b/src/ipa/rkisp1/rkisp1.cpp\n> @@ -304,7 +304,7 @@ void IPARkISP1::unmapBuffers(const std::vector<unsigned int> &ids)\n>\n>  void IPARkISP1::queueRequest(const uint32_t frame, const ControlList &controls)\n>  {\n> -\tIPAFrameContext &frameContext = context_.frameContexts.init(frame);\n> +\tRkISP1FrameContext &frameContext = context_.frameContexts.init(frame);\n>\n>  \tfor (auto const &algo : algorithms())\n>  \t\talgo->queueRequest(context_, frame, frameContext, controls);\n> @@ -312,7 +312,7 @@ void IPARkISP1::queueRequest(const uint32_t frame, const ControlList &controls)\n>\n>  void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)\n>  {\n> -\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> +\tRkISP1FrameContext &frameContext = context_.frameContexts.get(frame);\n>\n>  \trkisp1_params_cfg *params =\n>  \t\treinterpret_cast<rkisp1_params_cfg *>(\n> @@ -331,7 +331,7 @@ void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)\n>  void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId,\n>  \t\t\t\t   const ControlList &sensorControls)\n>  {\n> -\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> +\tRkISP1FrameContext &frameContext = context_.frameContexts.get(frame);\n>\n>  \tconst rkisp1_stat_buffer *stats =\n>  \t\treinterpret_cast<rkisp1_stat_buffer *>(\n> --\n> Regards,\n>\n> Laurent Pinchart\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id E352BC3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 21 Sep 2022 18:39:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 99EAF621F5;\n\tWed, 21 Sep 2022 20:39:05 +0200 (CEST)","from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net\n\t[IPv6:2001:4b98:dc4:8::227])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A58E1600AA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 21 Sep 2022 20:39:03 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 21D8320009;\n\tWed, 21 Sep 2022 18:39:02 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1663785545;\n\tbh=MfPsBuxqPUvxYyz1llLJU2ep60xUf/pgYfZiwVYeejU=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=uzQ2zvjn28EIwnFA9vvRf82EpFbSoTjB4Hubsw1JE1YaeUr5+IU/RwpvQv7Ad5ERa\n\tutx4lqrDDJw9iRzr69n8aTvYsYYdfpZBI+RdtJOjZsReSucr228FjBc3S5rvMByRH/\n\tVwdOSjHnOyoJqS69SDJvfXlGJ+nrjGQu7wMYu4SW5hdn1pbMki3ftD6YYh0KGKYqlU\n\tq2z+EkT4K1fhIHzdToTDGBKX4dKAFZf470zcgkbMGsXfeg56X3HwRIhotQlwcqGBUv\n\tj34wP3ohzv5HSFxgSz5naCcSrpzx9njWo6hU11N9LDgd46ECXwHIuubb70odi6oaGR\n\toarREuj4a1Pzw==","Date":"Wed, 21 Sep 2022 20:39:01 +0200","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20220921183901.4nm5nwnqu3i3mhv7@uno.localdomain>","References":"<20220908014200.28728-1-laurent.pinchart@ideasonboard.com>\n\t<20220908014200.28728-18-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220908014200.28728-18-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v4 17/32] ipa: Rename IPAFrameContext\n\tstructures","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":25091,"web_url":"https://patchwork.libcamera.org/comment/25091/","msgid":"<YyzAOHKn8Tr8w864@pendragon.ideasonboard.com>","date":"2022-09-22T20:06:16","subject":"Re: [libcamera-devel] [PATCH v4 17/32] ipa: Rename IPAFrameContext\n\tstructures","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Wed, Sep 21, 2022 at 08:39:01PM +0200, Jacopo Mondi wrote:\n> On Thu, Sep 08, 2022 at 04:41:45AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> > From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > Rename the IPAFrameContext structures in the IPU3 and RkISP1 IPA modules\n> > to IPU3FrameContext and RkISP1FrameContext respectively, to avoid\n> > ambiguities.\n> >\n> > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> $ git grep IPAFra* src/ipa/ipu3/\n> src/ipa/ipu3/ipu3-ipa-design-guide.rst:        FC: IPAFrameContext(s)\n> src/ipa/ipu3/ipu3-ipa-design-guide.rst:The ``IPAFrameContext`` structure may be extended to an array, list, or\n> src/ipa/ipu3/ipu3-ipa-design-guide.rst:Presently there is a single ``IPAFrameContext`` without historical data,\n> \n> Maybe the guide needs to be updated too.\n\nThe guide needs updates indeed.\n\nI'm not too fond of this patch to be honest, as I like having consistent\nnaming across IPA modules. The different IPAFrameContext classes are in\ndifferent namespaces, so they won't clas. The drawback is that it may be\nconfusing for some readers. If we want to have names specific to each\nIPA modules, then I'd argue we should also rename the IPAContext,\nIPASessionConfiguration and IPAActiveState classes, which would then\npretty much defeat the purpose of having separate namespaces. I think\nI'd rahter rename IPARkISP1 and IPAIPU3 to drop the module-specific\nsuffix and rely on namespaces only.\n\n> That apart\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n> > ---\n> >  src/ipa/ipu3/algorithms/af.cpp           |  4 ++--\n> >  src/ipa/ipu3/algorithms/af.h             |  4 ++--\n> >  src/ipa/ipu3/algorithms/agc.cpp          |  4 ++--\n> >  src/ipa/ipu3/algorithms/agc.h            |  4 ++--\n> >  src/ipa/ipu3/algorithms/awb.cpp          |  4 ++--\n> >  src/ipa/ipu3/algorithms/awb.h            |  4 ++--\n> >  src/ipa/ipu3/algorithms/blc.cpp          |  2 +-\n> >  src/ipa/ipu3/algorithms/blc.h            |  2 +-\n> >  src/ipa/ipu3/algorithms/tone_mapping.cpp |  4 ++--\n> >  src/ipa/ipu3/algorithms/tone_mapping.h   |  4 ++--\n> >  src/ipa/ipu3/ipa_context.cpp             | 10 +++++-----\n> >  src/ipa/ipu3/ipa_context.h               |  4 ++--\n> >  src/ipa/ipu3/ipu3.cpp                    |  6 +++---\n> >  src/ipa/ipu3/module.h                    |  2 +-\n> >  src/ipa/rkisp1/algorithms/agc.cpp        |  4 ++--\n> >  src/ipa/rkisp1/algorithms/agc.h          |  4 ++--\n> >  src/ipa/rkisp1/algorithms/awb.cpp        |  6 +++---\n> >  src/ipa/rkisp1/algorithms/awb.h          |  6 +++---\n> >  src/ipa/rkisp1/algorithms/blc.cpp        |  2 +-\n> >  src/ipa/rkisp1/algorithms/blc.h          |  2 +-\n> >  src/ipa/rkisp1/algorithms/cproc.cpp      |  4 ++--\n> >  src/ipa/rkisp1/algorithms/cproc.h        |  4 ++--\n> >  src/ipa/rkisp1/algorithms/dpcc.cpp       |  2 +-\n> >  src/ipa/rkisp1/algorithms/dpcc.h         |  2 +-\n> >  src/ipa/rkisp1/algorithms/dpf.cpp        |  4 ++--\n> >  src/ipa/rkisp1/algorithms/dpf.h          |  4 ++--\n> >  src/ipa/rkisp1/algorithms/filter.cpp     |  4 ++--\n> >  src/ipa/rkisp1/algorithms/filter.h       |  4 ++--\n> >  src/ipa/rkisp1/algorithms/gsl.cpp        |  2 +-\n> >  src/ipa/rkisp1/algorithms/gsl.h          |  2 +-\n> >  src/ipa/rkisp1/algorithms/lsc.cpp        |  2 +-\n> >  src/ipa/rkisp1/algorithms/lsc.h          |  2 +-\n> >  src/ipa/rkisp1/ipa_context.cpp           |  2 +-\n> >  src/ipa/rkisp1/ipa_context.h             |  4 ++--\n> >  src/ipa/rkisp1/module.h                  |  2 +-\n> >  src/ipa/rkisp1/rkisp1.cpp                |  6 +++---\n> >  36 files changed, 66 insertions(+), 66 deletions(-)\n> >\n> > diff --git a/src/ipa/ipu3/algorithms/af.cpp b/src/ipa/ipu3/algorithms/af.cpp\n> > index b00a34f9e090..0370619fb0d7 100644\n> > --- a/src/ipa/ipu3/algorithms/af.cpp\n> > +++ b/src/ipa/ipu3/algorithms/af.cpp\n> > @@ -118,7 +118,7 @@ Af::Af()\n> >   */\n> >  void Af::prepare(IPAContext &context,\n> >  \t\t [[maybe_unused]] const uint32_t frame,\n> > -\t\t [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t [[maybe_unused]] IPU3FrameContext &frameContext,\n> >  \t\t ipu3_uapi_params *params)\n> >  {\n> >  \tconst struct ipu3_uapi_grid_config &grid = context.configuration.af.afGrid;\n> > @@ -422,7 +422,7 @@ bool Af::afIsOutOfFocus(IPAContext &context)\n> >   * [1] Hill Climbing Algorithm, https://en.wikipedia.org/wiki/Hill_climbing\n> >   */\n> >  void Af::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> > -\t\t [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t [[maybe_unused]] IPU3FrameContext &frameContext,\n> >  \t\t const ipu3_uapi_stats_3a *stats)\n> >  {\n> >  \t/* Evaluate the AF buffer length */\n> > diff --git a/src/ipa/ipu3/algorithms/af.h b/src/ipa/ipu3/algorithms/af.h\n> > index 89d37ac18615..4727221b595a 100644\n> > --- a/src/ipa/ipu3/algorithms/af.h\n> > +++ b/src/ipa/ipu3/algorithms/af.h\n> > @@ -32,10 +32,10 @@ public:\n> >\n> >  \tint configure(IPAContext &context, const IPAConfigInfo &configInfo) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     IPU3FrameContext &frameContext,\n> >  \t\t     ipu3_uapi_params *params) override;\n> >  \tvoid process(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     IPU3FrameContext &frameContext,\n> >  \t\t     const ipu3_uapi_stats_3a *stats) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp\n> > index a1a3c38ffe84..fc5810218a4a 100644\n> > --- a/src/ipa/ipu3/algorithms/agc.cpp\n> > +++ b/src/ipa/ipu3/algorithms/agc.cpp\n> > @@ -183,7 +183,7 @@ utils::Duration Agc::filterExposure(utils::Duration exposureValue)\n> >   * \\param[in] yGain The gain calculated based on the relative luminance target\n> >   * \\param[in] iqMeanGain The gain calculated based on the relative luminance target\n> >   */\n> > -void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n> > +void Agc::computeExposure(IPAContext &context, IPU3FrameContext &frameContext,\n> >  \t\t\t  double yGain, double iqMeanGain)\n> >  {\n> >  \tconst IPASessionConfiguration &configuration = context.configuration;\n> > @@ -325,7 +325,7 @@ double Agc::estimateLuminance(IPAActiveState &activeState,\n> >   * new exposure and gain for the scene.\n> >   */\n> >  void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> > -\t\t  IPAFrameContext &frameContext,\n> > +\t\t  IPU3FrameContext &frameContext,\n> >  \t\t  const ipu3_uapi_stats_3a *stats)\n> >  {\n> >  \t/*\n> > diff --git a/src/ipa/ipu3/algorithms/agc.h b/src/ipa/ipu3/algorithms/agc.h\n> > index 59b4b9843c2f..726c9d905026 100644\n> > --- a/src/ipa/ipu3/algorithms/agc.h\n> > +++ b/src/ipa/ipu3/algorithms/agc.h\n> > @@ -29,14 +29,14 @@ public:\n> >\n> >  \tint configure(IPAContext &context, const IPAConfigInfo &configInfo) override;\n> >  \tvoid process(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     IPU3FrameContext &frameContext,\n> >  \t\t     const ipu3_uapi_stats_3a *stats) override;\n> >\n> >  private:\n> >  \tdouble measureBrightness(const ipu3_uapi_stats_3a *stats,\n> >  \t\t\t\t const ipu3_uapi_grid_config &grid) const;\n> >  \tutils::Duration filterExposure(utils::Duration currentExposure);\n> > -\tvoid computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n> > +\tvoid computeExposure(IPAContext &context, IPU3FrameContext &frameContext,\n> >  \t\t\t     double yGain, double iqMeanGain);\n> >  \tdouble estimateLuminance(IPAActiveState &activeState,\n> >  \t\t\t\t const ipu3_uapi_grid_config &grid,\n> > diff --git a/src/ipa/ipu3/algorithms/awb.cpp b/src/ipa/ipu3/algorithms/awb.cpp\n> > index 0dbd7d4c374f..289e9a05f08a 100644\n> > --- a/src/ipa/ipu3/algorithms/awb.cpp\n> > +++ b/src/ipa/ipu3/algorithms/awb.cpp\n> > @@ -388,7 +388,7 @@ void Awb::calculateWBGains(const ipu3_uapi_stats_3a *stats)\n> >   * \\copydoc libcamera::ipa::Algorithm::process\n> >   */\n> >  void Awb::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> > -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t  [[maybe_unused]] IPU3FrameContext &frameContext,\n> >  \t\t  const ipu3_uapi_stats_3a *stats)\n> >  {\n> >  \tcalculateWBGains(stats);\n> > @@ -432,7 +432,7 @@ constexpr uint16_t Awb::gainValue(double gain)\n> >   */\n> >  void Awb::prepare(IPAContext &context,\n> >  \t\t  [[maybe_unused]] const uint32_t frame,\n> > -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t  [[maybe_unused]] IPU3FrameContext &frameContext,\n> >  \t\t  ipu3_uapi_params *params)\n> >  {\n> >  \t/*\n> > diff --git a/src/ipa/ipu3/algorithms/awb.h b/src/ipa/ipu3/algorithms/awb.h\n> > index 28e2d38a711c..6662aa6ffe04 100644\n> > --- a/src/ipa/ipu3/algorithms/awb.h\n> > +++ b/src/ipa/ipu3/algorithms/awb.h\n> > @@ -40,10 +40,10 @@ public:\n> >\n> >  \tint configure(IPAContext &context, const IPAConfigInfo &configInfo) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     IPU3FrameContext &frameContext,\n> >  \t\t     ipu3_uapi_params *params) override;\n> >  \tvoid process(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     IPU3FrameContext &frameContext,\n> >  \t\t     const ipu3_uapi_stats_3a *stats) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/ipu3/algorithms/blc.cpp b/src/ipa/ipu3/algorithms/blc.cpp\n> > index e838072a344c..ca03b280b66c 100644\n> > --- a/src/ipa/ipu3/algorithms/blc.cpp\n> > +++ b/src/ipa/ipu3/algorithms/blc.cpp\n> > @@ -48,7 +48,7 @@ BlackLevelCorrection::BlackLevelCorrection()\n> >   */\n> >  void BlackLevelCorrection::prepare([[maybe_unused]] IPAContext &context,\n> >  \t\t\t\t   [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t\t   [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t\t   [[maybe_unused]] IPU3FrameContext &frameContext,\n> >  \t\t\t\t   ipu3_uapi_params *params)\n> >  {\n> >  \t/*\n> > diff --git a/src/ipa/ipu3/algorithms/blc.h b/src/ipa/ipu3/algorithms/blc.h\n> > index 292bf67b02ff..b7cc55909e71 100644\n> > --- a/src/ipa/ipu3/algorithms/blc.h\n> > +++ b/src/ipa/ipu3/algorithms/blc.h\n> > @@ -19,7 +19,7 @@ public:\n> >  \tBlackLevelCorrection();\n> >\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     IPU3FrameContext &frameContext,\n> >  \t\t     ipu3_uapi_params *params) override;\n> >  };\n> >\n> > diff --git a/src/ipa/ipu3/algorithms/tone_mapping.cpp b/src/ipa/ipu3/algorithms/tone_mapping.cpp\n> > index eac3d4064443..a8bd05d935cf 100644\n> > --- a/src/ipa/ipu3/algorithms/tone_mapping.cpp\n> > +++ b/src/ipa/ipu3/algorithms/tone_mapping.cpp\n> > @@ -59,7 +59,7 @@ int ToneMapping::configure(IPAContext &context,\n> >   */\n> >  void ToneMapping::prepare([[maybe_unused]] IPAContext &context,\n> >  \t\t\t  [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t  [[maybe_unused]] IPU3FrameContext &frameContext,\n> >  \t\t\t  ipu3_uapi_params *params)\n> >  {\n> >  \t/* Copy the calculated LUT into the parameters buffer. */\n> > @@ -84,7 +84,7 @@ void ToneMapping::prepare([[maybe_unused]] IPAContext &context,\n> >   * our gamma setting.\n> >   */\n> >  void ToneMapping::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t  [[maybe_unused]] IPU3FrameContext &frameContext,\n> >  \t\t\t  [[maybe_unused]] const ipu3_uapi_stats_3a *stats)\n> >  {\n> >  \t/*\n> > diff --git a/src/ipa/ipu3/algorithms/tone_mapping.h b/src/ipa/ipu3/algorithms/tone_mapping.h\n> > index 822e5168df82..e8d7f593d513 100644\n> > --- a/src/ipa/ipu3/algorithms/tone_mapping.h\n> > +++ b/src/ipa/ipu3/algorithms/tone_mapping.h\n> > @@ -20,9 +20,9 @@ public:\n> >\n> >  \tint configure(IPAContext &context, const IPAConfigInfo &configInfo) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext, ipu3_uapi_params *params) override;\n> > +\t\t     IPU3FrameContext &frameContext, ipu3_uapi_params *params) override;\n> >  \tvoid process(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     IPU3FrameContext &frameContext,\n> >  \t\t     const ipu3_uapi_stats_3a *stats) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/ipu3/ipa_context.cpp b/src/ipa/ipu3/ipa_context.cpp\n> > index bd71b615365d..89cb87c66d9f 100644\n> > --- a/src/ipa/ipu3/ipa_context.cpp\n> > +++ b/src/ipa/ipu3/ipa_context.cpp\n> > @@ -43,7 +43,7 @@ namespace libcamera::ipa::ipu3 {\n> >   * \\brief The IPA session configuration, immutable during the session\n> >   *\n> >   * \\var IPAContext::frameContexts\n> > - * \\brief Ring buffer of the IPAFrameContext(s)\n> > + * \\brief Ring buffer of the IPU3FrameContext(s)\n> >   *\n> >   * \\var IPAContext::activeState\n> >   * \\brief The current state of IPA algorithms\n> > @@ -165,16 +165,16 @@ namespace libcamera::ipa::ipu3 {\n> >   */\n> >\n> >  /**\n> > - * \\struct IPAFrameContext\n> > + * \\struct IPU3FrameContext\n> >   * \\brief IPU3-specific FrameContext\n> >   *\n> > - * \\var IPAFrameContext::sensor\n> > + * \\var IPU3FrameContext::sensor\n> >   * \\brief Effective sensor values that were applied for the frame\n> >   *\n> > - * \\var IPAFrameContext::sensor.exposure\n> > + * \\var IPU3FrameContext::sensor.exposure\n> >   * \\brief Exposure time expressed as a number of lines\n> >   *\n> > - * \\var IPAFrameContext::sensor.gain\n> > + * \\var IPU3FrameContext::sensor.gain\n> >   * \\brief Analogue gain multiplier\n> >   */\n> >\n> > diff --git a/src/ipa/ipu3/ipa_context.h b/src/ipa/ipu3/ipa_context.h\n> > index 36099353e9f2..b8a7ad24a032 100644\n> > --- a/src/ipa/ipu3/ipa_context.h\n> > +++ b/src/ipa/ipu3/ipa_context.h\n> > @@ -72,7 +72,7 @@ struct IPAActiveState {\n> >  \t} toneMapping;\n> >  };\n> >\n> > -struct IPAFrameContext : public FrameContext {\n> > +struct IPU3FrameContext : public FrameContext {\n> >  \tstruct {\n> >  \t\tuint32_t exposure;\n> >  \t\tdouble gain;\n> > @@ -83,7 +83,7 @@ struct IPAContext {\n> >  \tIPASessionConfiguration configuration;\n> >  \tIPAActiveState activeState;\n> >\n> > -\tFCQueue<IPAFrameContext> frameContexts;\n> > +\tFCQueue<IPU3FrameContext> frameContexts;\n> >  };\n> >\n> >  } /* namespace ipa::ipu3 */\n> > diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\n> > index 844ab6de03c7..d850aa46bc28 100644\n> > --- a/src/ipa/ipu3/ipu3.cpp\n> > +++ b/src/ipa/ipu3/ipu3.cpp\n> > @@ -585,7 +585,7 @@ void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)\n> >  \t */\n> >  \tparams->use = {};\n> >\n> > -\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> > +\tIPU3FrameContext &frameContext = context_.frameContexts.get(frame);\n> >\n> >  \tfor (auto const &algo : algorithms())\n> >  \t\talgo->prepare(context_, frame, frameContext, params);\n> > @@ -618,7 +618,7 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,\n> >  \tconst ipu3_uapi_stats_3a *stats =\n> >  \t\treinterpret_cast<ipu3_uapi_stats_3a *>(mem.data());\n> >\n> > -\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> > +\tIPU3FrameContext &frameContext = context_.frameContexts.get(frame);\n> >\n> >  \tframeContext.sensor.exposure = sensorControls.get(V4L2_CID_EXPOSURE).get<int32_t>();\n> >  \tframeContext.sensor.gain = camHelper_->gain(sensorControls.get(V4L2_CID_ANALOGUE_GAIN).get<int32_t>());\n> > @@ -664,7 +664,7 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,\n> >  void IPAIPU3::queueRequest(const uint32_t frame, const ControlList &controls)\n> >  {\n> >  \t/* \\todo Start processing for 'frame' based on 'controls'. */\n> > -\tIPAFrameContext &frameContext = context_.frameContexts.init(frame);\n> > +\tIPU3FrameContext &frameContext = context_.frameContexts.init(frame);\n> >\n> >  \tfor (auto const &algo : algorithms())\n> >  \t\talgo->queueRequest(context_, frame, frameContext, controls);\n> > diff --git a/src/ipa/ipu3/module.h b/src/ipa/ipu3/module.h\n> > index d94fc4594871..6d0d50f615d8 100644\n> > --- a/src/ipa/ipu3/module.h\n> > +++ b/src/ipa/ipu3/module.h\n> > @@ -19,7 +19,7 @@ namespace libcamera {\n> >\n> >  namespace ipa::ipu3 {\n> >\n> > -using Module = ipa::Module<IPAContext, IPAFrameContext, IPAConfigInfo,\n> > +using Module = ipa::Module<IPAContext, IPU3FrameContext, IPAConfigInfo,\n> >  \t\t\t   ipu3_uapi_params, ipu3_uapi_stats_3a>;\n> >\n> >  } /* namespace ipa::ipu3 */\n> > diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\n> > index 606f13e776a3..e9fab0222ac3 100644\n> > --- a/src/ipa/rkisp1/algorithms/agc.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/agc.cpp\n> > @@ -285,7 +285,7 @@ double Agc::measureBrightness(const rkisp1_cif_isp_hist_stat *hist) const\n> >   * new exposure and gain for the scene.\n> >   */\n> >  void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> > -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t  const rkisp1_stat_buffer *stats)\n> >  {\n> >  \tconst rkisp1_cif_isp_stat *params = &stats->params;\n> > @@ -328,7 +328,7 @@ void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> >   */\n> >  void Agc::prepare(IPAContext &context,\n> >  \t\t  [[maybe_unused]] const uint32_t frame,\n> > -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t  rkisp1_params_cfg *params)\n> >  {\n> >  \tif (context.activeState.frameCount > 0)\n> > diff --git a/src/ipa/rkisp1/algorithms/agc.h b/src/ipa/rkisp1/algorithms/agc.h\n> > index f115ba2ed85c..be8932040c8e 100644\n> > --- a/src/ipa/rkisp1/algorithms/agc.h\n> > +++ b/src/ipa/rkisp1/algorithms/agc.h\n> > @@ -27,10 +27,10 @@ public:\n> >\n> >  \tint configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >  \tvoid process(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     const rkisp1_stat_buffer *stats) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp\n> > index 2bd9ef779bc3..d3e9aa5334cf 100644\n> > --- a/src/ipa/rkisp1/algorithms/awb.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/awb.cpp\n> > @@ -76,7 +76,7 @@ uint32_t Awb::estimateCCT(double red, double green, double blue)\n> >   */\n> >  void Awb::prepare(IPAContext &context,\n> >  \t\t  [[maybe_unused]] const uint32_t frame,\n> > -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t  rkisp1_params_cfg *params)\n> >  {\n> >  \tparams->others.awb_gain_config.gain_green_b = 256 * context.activeState.awb.gains.green;\n> > @@ -128,7 +128,7 @@ void Awb::prepare(IPAContext &context,\n> >   */\n> >  void Awb::queueRequest(IPAContext &context,\n> >  \t\t       [[maybe_unused]] const uint32_t frame,\n> > -\t\t       [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t       [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t       const ControlList &controls)\n> >  {\n> >  \tauto &awb = context.activeState.awb;\n> > @@ -157,7 +157,7 @@ void Awb::queueRequest(IPAContext &context,\n> >   */\n> >  void Awb::process([[maybe_unused]] IPAContext &context,\n> >  \t\t  [[maybe_unused]] const uint32_t frame,\n> > -\t\t  [[maybe_unused]] IPAFrameContext &frameCtx,\n> > +\t\t  [[maybe_unused]] RkISP1FrameContext &frameCtx,\n> >  \t\t  const rkisp1_stat_buffer *stats)\n> >  {\n> >  \tconst rkisp1_cif_isp_stat *params = &stats->params;\n> > diff --git a/src/ipa/rkisp1/algorithms/awb.h b/src/ipa/rkisp1/algorithms/awb.h\n> > index 6d4a39467038..9fd156d8aff9 100644\n> > --- a/src/ipa/rkisp1/algorithms/awb.h\n> > +++ b/src/ipa/rkisp1/algorithms/awb.h\n> > @@ -21,13 +21,13 @@ public:\n> >\n> >  \tint configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >  \tvoid queueRequest(IPAContext &context, const uint32_t frame,\n> > -\t\t\t  IPAFrameContext &frameContext,\n> > +\t\t\t  RkISP1FrameContext &frameContext,\n> >  \t\t\t  const ControlList &controls) override;\n> >  \tvoid process(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameCtx,\n> > +\t\t     RkISP1FrameContext &frameCtx,\n> >  \t\t     const rkisp1_stat_buffer *stats) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/rkisp1/algorithms/blc.cpp b/src/ipa/rkisp1/algorithms/blc.cpp\n> > index 0f7226cf217d..c4aea0e828ca 100644\n> > --- a/src/ipa/rkisp1/algorithms/blc.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/blc.cpp\n> > @@ -67,7 +67,7 @@ int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context,\n> >   */\n> >  void BlackLevelCorrection::prepare(IPAContext &context,\n> >  \t\t\t\t   [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t\t   [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t\t   [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t\t\t   rkisp1_params_cfg *params)\n> >  {\n> >  \tif (context.activeState.frameCount > 0)\n> > diff --git a/src/ipa/rkisp1/algorithms/blc.h b/src/ipa/rkisp1/algorithms/blc.h\n> > index 0b1a2d436869..e57c8c7a95c5 100644\n> > --- a/src/ipa/rkisp1/algorithms/blc.h\n> > +++ b/src/ipa/rkisp1/algorithms/blc.h\n> > @@ -21,7 +21,7 @@ public:\n> >\n> >  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/rkisp1/algorithms/cproc.cpp b/src/ipa/rkisp1/algorithms/cproc.cpp\n> > index ea819b2acfcb..22a70e0b70c7 100644\n> > --- a/src/ipa/rkisp1/algorithms/cproc.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/cproc.cpp\n> > @@ -38,7 +38,7 @@ LOG_DEFINE_CATEGORY(RkISP1CProc)\n> >   */\n> >  void ColorProcessing::queueRequest(IPAContext &context,\n> >  \t\t\t\t   [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t\t   [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t\t   [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t\t\t   const ControlList &controls)\n> >  {\n> >  \tauto &cproc = context.activeState.cproc;\n> > @@ -73,7 +73,7 @@ void ColorProcessing::queueRequest(IPAContext &context,\n> >   */\n> >  void ColorProcessing::prepare(IPAContext &context,\n> >  \t\t\t      [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t      [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t      [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t\t      rkisp1_params_cfg *params)\n> >  {\n> >  \tauto &cproc = context.activeState.cproc;\n> > diff --git a/src/ipa/rkisp1/algorithms/cproc.h b/src/ipa/rkisp1/algorithms/cproc.h\n> > index ba6e901ae110..4e9a17a58800 100644\n> > --- a/src/ipa/rkisp1/algorithms/cproc.h\n> > +++ b/src/ipa/rkisp1/algorithms/cproc.h\n> > @@ -22,10 +22,10 @@ public:\n> >  \t~ColorProcessing() = default;\n> >\n> >  \tvoid queueRequest(IPAContext &context, const uint32_t frame,\n> > -\t\t\t  IPAFrameContext &frameContext,\n> > +\t\t\t  RkISP1FrameContext &frameContext,\n> >  \t\t\t  const ControlList &controls) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >  };\n> >\n> > diff --git a/src/ipa/rkisp1/algorithms/dpcc.cpp b/src/ipa/rkisp1/algorithms/dpcc.cpp\n> > index 7c14ace0abee..b61eee022a68 100644\n> > --- a/src/ipa/rkisp1/algorithms/dpcc.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/dpcc.cpp\n> > @@ -260,7 +260,7 @@ int DefectPixelClusterCorrection::init([[maybe_unused]] IPAContext &context,\n> >   */\n> >  void DefectPixelClusterCorrection::prepare(IPAContext &context,\n> >  \t\t\t\t\t   [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t\t\t   [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t\t\t   [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t\t\t\t   rkisp1_params_cfg *params)\n> >  {\n> >  \tif (context.activeState.frameCount > 0)\n> > diff --git a/src/ipa/rkisp1/algorithms/dpcc.h b/src/ipa/rkisp1/algorithms/dpcc.h\n> > index 894c0249f35d..4c242e99f8ce 100644\n> > --- a/src/ipa/rkisp1/algorithms/dpcc.h\n> > +++ b/src/ipa/rkisp1/algorithms/dpcc.h\n> > @@ -21,7 +21,7 @@ public:\n> >\n> >  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/rkisp1/algorithms/dpf.cpp b/src/ipa/rkisp1/algorithms/dpf.cpp\n> > index b8c837c21243..8eafbbf85124 100644\n> > --- a/src/ipa/rkisp1/algorithms/dpf.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/dpf.cpp\n> > @@ -176,7 +176,7 @@ int Dpf::init([[maybe_unused]] IPAContext &context,\n> >   */\n> >  void Dpf::queueRequest(IPAContext &context,\n> >  \t\t       [[maybe_unused]] const uint32_t frame,\n> > -\t\t       [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t       [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t       const ControlList &controls)\n> >  {\n> >  \tauto &dpf = context.activeState.dpf;\n> > @@ -208,7 +208,7 @@ void Dpf::queueRequest(IPAContext &context,\n> >   * \\copydoc libcamera::ipa::Algorithm::prepare\n> >   */\n> >  void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,\n> > -\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t  rkisp1_params_cfg *params)\n> >  {\n> >  \tif (!initialized_)\n> > diff --git a/src/ipa/rkisp1/algorithms/dpf.h b/src/ipa/rkisp1/algorithms/dpf.h\n> > index e232cad4ee87..dd465a52ba0a 100644\n> > --- a/src/ipa/rkisp1/algorithms/dpf.h\n> > +++ b/src/ipa/rkisp1/algorithms/dpf.h\n> > @@ -23,10 +23,10 @@ public:\n> >\n> >  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n> >  \tvoid queueRequest(IPAContext &context, const uint32_t frame,\n> > -\t\t\t  IPAFrameContext &frameContext,\n> > +\t\t\t  RkISP1FrameContext &frameContext,\n> >  \t\t\t  const ControlList &controls) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/rkisp1/algorithms/filter.cpp b/src/ipa/rkisp1/algorithms/filter.cpp\n> > index 837560eb20a6..e64bd6a6d68f 100644\n> > --- a/src/ipa/rkisp1/algorithms/filter.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/filter.cpp\n> > @@ -44,7 +44,7 @@ static constexpr uint32_t kFiltModeDefault = 0x000004f2;\n> >   */\n> >  void Filter::queueRequest(IPAContext &context,\n> >  \t\t\t  [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t  [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t\t  const ControlList &controls)\n> >  {\n> >  \tauto &filter = context.activeState.filter;\n> > @@ -88,7 +88,7 @@ void Filter::queueRequest(IPAContext &context,\n> >   */\n> >  void Filter::prepare(IPAContext &context,\n> >  \t\t     [[maybe_unused]] const uint32_t frame,\n> > -\t\t     [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t     [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params)\n> >  {\n> >  \tauto &filter = context.activeState.filter;\n> > diff --git a/src/ipa/rkisp1/algorithms/filter.h b/src/ipa/rkisp1/algorithms/filter.h\n> > index 3fd882ea41dc..c340e824722d 100644\n> > --- a/src/ipa/rkisp1/algorithms/filter.h\n> > +++ b/src/ipa/rkisp1/algorithms/filter.h\n> > @@ -22,10 +22,10 @@ public:\n> >  \t~Filter() = default;\n> >\n> >  \tvoid queueRequest(IPAContext &context, const uint32_t frame,\n> > -\t\t\t  IPAFrameContext &frameContext,\n> > +\t\t\t  RkISP1FrameContext &frameContext,\n> >  \t\t\t  const ControlList &controls) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >  };\n> >\n> > diff --git a/src/ipa/rkisp1/algorithms/gsl.cpp b/src/ipa/rkisp1/algorithms/gsl.cpp\n> > index 879ca2973e8a..ed3104c98e48 100644\n> > --- a/src/ipa/rkisp1/algorithms/gsl.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/gsl.cpp\n> > @@ -120,7 +120,7 @@ int GammaSensorLinearization::init([[maybe_unused]] IPAContext &context,\n> >   */\n> >  void GammaSensorLinearization::prepare(IPAContext &context,\n> >  \t\t\t\t       [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t\t       [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t\t       [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t\t\t       rkisp1_params_cfg *params)\n> >  {\n> >  \tif (context.activeState.frameCount > 0)\n> > diff --git a/src/ipa/rkisp1/algorithms/gsl.h b/src/ipa/rkisp1/algorithms/gsl.h\n> > index 5024b6835949..5a951f07e56d 100644\n> > --- a/src/ipa/rkisp1/algorithms/gsl.h\n> > +++ b/src/ipa/rkisp1/algorithms/gsl.h\n> > @@ -21,7 +21,7 @@ public:\n> >\n> >  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp\n> > index 9c717bc5f99e..ed5b988599b8 100644\n> > --- a/src/ipa/rkisp1/algorithms/lsc.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/lsc.cpp\n> > @@ -134,7 +134,7 @@ int LensShadingCorrection::configure(IPAContext &context,\n> >   */\n> >  void LensShadingCorrection::prepare(IPAContext &context,\n> >  \t\t\t\t    [[maybe_unused]] const uint32_t frame,\n> > -\t\t\t\t    [[maybe_unused]] IPAFrameContext &frameContext,\n> > +\t\t\t\t    [[maybe_unused]] RkISP1FrameContext &frameContext,\n> >  \t\t\t\t    rkisp1_params_cfg *params)\n> >  {\n> >  \tif (context.activeState.frameCount > 0)\n> > diff --git a/src/ipa/rkisp1/algorithms/lsc.h b/src/ipa/rkisp1/algorithms/lsc.h\n> > index da957d3e3103..b4f18e565085 100644\n> > --- a/src/ipa/rkisp1/algorithms/lsc.h\n> > +++ b/src/ipa/rkisp1/algorithms/lsc.h\n> > @@ -22,7 +22,7 @@ public:\n> >  \tint init(IPAContext &context, const YamlObject &tuningData) override;\n> >  \tint configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;\n> >  \tvoid prepare(IPAContext &context, const uint32_t frame,\n> > -\t\t     IPAFrameContext &frameContext,\n> > +\t\t     RkISP1FrameContext &frameContext,\n> >  \t\t     rkisp1_params_cfg *params) override;\n> >\n> >  private:\n> > diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp\n> > index e9846742ee4f..80fae271a6dc 100644\n> > --- a/src/ipa/rkisp1/ipa_context.cpp\n> > +++ b/src/ipa/rkisp1/ipa_context.cpp\n> > @@ -202,7 +202,7 @@ namespace libcamera::ipa::rkisp1 {\n> >   */\n> >\n> >  /**\n> > - * \\struct IPAFrameContext\n> > + * \\struct RkISP1FrameContext\n> >   * \\brief Per-frame context for algorithms\n> >   *\n> >   * \\todo Populate the frame context for all algorithms\n> > diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h\n> > index f6aaefffed52..9d89cf0160fc 100644\n> > --- a/src/ipa/rkisp1/ipa_context.h\n> > +++ b/src/ipa/rkisp1/ipa_context.h\n> > @@ -91,14 +91,14 @@ struct IPAActiveState {\n> >  \tunsigned int frameCount;\n> >  };\n> >\n> > -struct IPAFrameContext : public FrameContext {\n> > +struct RkISP1FrameContext : public FrameContext {\n> >  };\n> >\n> >  struct IPAContext {\n> >  \tIPASessionConfiguration configuration;\n> >  \tIPAActiveState activeState;\n> >\n> > -\tFCQueue<IPAFrameContext> frameContexts;\n> > +\tFCQueue<RkISP1FrameContext> frameContexts;\n> >  };\n> >\n> >  } /* namespace ipa::rkisp1 */\n> > diff --git a/src/ipa/rkisp1/module.h b/src/ipa/rkisp1/module.h\n> > index 89f83208a75c..594d5c9d685a 100644\n> > --- a/src/ipa/rkisp1/module.h\n> > +++ b/src/ipa/rkisp1/module.h\n> > @@ -19,7 +19,7 @@ namespace libcamera {\n> >\n> >  namespace ipa::rkisp1 {\n> >\n> > -using Module = ipa::Module<IPAContext, IPAFrameContext, IPACameraSensorInfo,\n> > +using Module = ipa::Module<IPAContext, RkISP1FrameContext, IPACameraSensorInfo,\n> >  \t\t\t   rkisp1_params_cfg, rkisp1_stat_buffer>;\n> >\n> >  } /* namespace ipa::rkisp1 */\n> > diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\n> > index c5ed0bb21f67..538401ac89ac 100644\n> > --- a/src/ipa/rkisp1/rkisp1.cpp\n> > +++ b/src/ipa/rkisp1/rkisp1.cpp\n> > @@ -304,7 +304,7 @@ void IPARkISP1::unmapBuffers(const std::vector<unsigned int> &ids)\n> >\n> >  void IPARkISP1::queueRequest(const uint32_t frame, const ControlList &controls)\n> >  {\n> > -\tIPAFrameContext &frameContext = context_.frameContexts.init(frame);\n> > +\tRkISP1FrameContext &frameContext = context_.frameContexts.init(frame);\n> >\n> >  \tfor (auto const &algo : algorithms())\n> >  \t\talgo->queueRequest(context_, frame, frameContext, controls);\n> > @@ -312,7 +312,7 @@ void IPARkISP1::queueRequest(const uint32_t frame, const ControlList &controls)\n> >\n> >  void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)\n> >  {\n> > -\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> > +\tRkISP1FrameContext &frameContext = context_.frameContexts.get(frame);\n> >\n> >  \trkisp1_params_cfg *params =\n> >  \t\treinterpret_cast<rkisp1_params_cfg *>(\n> > @@ -331,7 +331,7 @@ void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)\n> >  void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId,\n> >  \t\t\t\t   const ControlList &sensorControls)\n> >  {\n> > -\tIPAFrameContext &frameContext = context_.frameContexts.get(frame);\n> > +\tRkISP1FrameContext &frameContext = context_.frameContexts.get(frame);\n> >\n> >  \tconst rkisp1_stat_buffer *stats =\n> >  \t\treinterpret_cast<rkisp1_stat_buffer *>(","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id CEC31BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 22 Sep 2022 20:06:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 286F262217;\n\tThu, 22 Sep 2022 22:06:35 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 668BE6219A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 22 Sep 2022 22:06:33 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 85F116BE;\n\tThu, 22 Sep 2022 22:06:32 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1663877195;\n\tbh=0/7F72hIitY6fs8S58sQ31bm2xumJn/mVRK7ibLEf5U=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=C3cDKIdXmTMtixIxCtCXxsYbbTtYzQGiVndZbySn0uiiGcMPmnSiAxVY/ziVpm7G6\n\t0nSX7Pjeswbc1CuxeI/U2efDLVzSE3BJrydl7efdJOUCgfxjOJ1CouSdtwu199h483\n\tx5LJqoDIYGEVcNzwmxXK3G399xcG8SKef9uhkz81iO0i37R855TKy5zX7na/9IQy3g\n\tDo7ZmlNrtjhtFxbh7U3bDTRTVzrEX/Nf5TMOrUrpiqa+dJFdcMQyoseatYX+mTS6W+\n\tDQPz8GAMXSSo37PWevNUEC/5YwFVgCIR5zYxbanhPgZiBVKYOS1D0F6L2p+poi8v/n\n\ti+ng4h+OSvGDw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1663877193;\n\tbh=0/7F72hIitY6fs8S58sQ31bm2xumJn/mVRK7ibLEf5U=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=BWKASxR/T/oxcOAcPpo3/biZFoCAIq2D6eimmNzqQgGhS1LbAlpofzRbSowt7iAb3\n\t8zAKGTICSITlTzto45ELc3E42No6xX6wkrcuQhv/o5DfzDZ289TIhyU5ISzDolL9Hk\n\tMBJz4uSy2c6FlmWg6UWN+k3g6k8bB1bfjZuktCkc="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"BWKASxR/\"; dkim-atps=neutral","Date":"Thu, 22 Sep 2022 23:06:16 +0300","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YyzAOHKn8Tr8w864@pendragon.ideasonboard.com>","References":"<20220908014200.28728-1-laurent.pinchart@ideasonboard.com>\n\t<20220908014200.28728-18-laurent.pinchart@ideasonboard.com>\n\t<20220921183901.4nm5nwnqu3i3mhv7@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220921183901.4nm5nwnqu3i3mhv7@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH v4 17/32] ipa: Rename IPAFrameContext\n\tstructures","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]