summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-09-08 00:31:23 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-09-28 05:41:14 +0300
commitb3724d3766ee1fefda4860334fe769334df1c869 (patch)
tree25fa5929be8e5c93ecb4773a750b34b4bd50fc90
parent05e6a1937388403a5e754352f94569ef3c4d85c9 (diff)
ipa: rkisp1: Use frame number passed to Algorithm::prepare()
Now that the Algorithm::prepare() function takes a frame number, we can use it to replace the IPAActiveState::frameCount member. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r--src/ipa/rkisp1/algorithms/agc.cpp5
-rw-r--r--src/ipa/rkisp1/algorithms/awb.cpp5
-rw-r--r--src/ipa/rkisp1/algorithms/blc.cpp6
-rw-r--r--src/ipa/rkisp1/algorithms/dpcc.cpp6
-rw-r--r--src/ipa/rkisp1/algorithms/dpf.cpp4
-rw-r--r--src/ipa/rkisp1/algorithms/gsl.cpp6
-rw-r--r--src/ipa/rkisp1/algorithms/lsc.cpp5
-rw-r--r--src/ipa/rkisp1/ipa_context.cpp9
-rw-r--r--src/ipa/rkisp1/ipa_context.h2
-rw-r--r--src/ipa/rkisp1/rkisp1.cpp3
10 files changed, 17 insertions, 34 deletions
diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
index d50ce495..10958a7e 100644
--- a/src/ipa/rkisp1/algorithms/agc.cpp
+++ b/src/ipa/rkisp1/algorithms/agc.cpp
@@ -327,12 +327,11 @@ void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
/**
* \copydoc libcamera::ipa::Algorithm::prepare
*/
-void Agc::prepare(IPAContext &context,
- [[maybe_unused]] const uint32_t frame,
+void Agc::prepare(IPAContext &context, const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
rkisp1_params_cfg *params)
{
- if (context.activeState.frameCount > 0)
+ if (frame > 0)
return;
/* Configure the measurement window. */
diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
index 2bd9ef77..78398927 100644
--- a/src/ipa/rkisp1/algorithms/awb.cpp
+++ b/src/ipa/rkisp1/algorithms/awb.cpp
@@ -74,8 +74,7 @@ uint32_t Awb::estimateCCT(double red, double green, double blue)
/**
* \copydoc libcamera::ipa::Algorithm::prepare
*/
-void Awb::prepare(IPAContext &context,
- [[maybe_unused]] const uint32_t frame,
+void Awb::prepare(IPAContext &context, const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
rkisp1_params_cfg *params)
{
@@ -88,7 +87,7 @@ void Awb::prepare(IPAContext &context,
params->module_cfg_update |= RKISP1_CIF_ISP_MODULE_AWB_GAIN;
/* If we already have configured the gains and window, return. */
- if (context.activeState.frameCount > 0)
+ if (frame > 0)
return;
/* Configure the gains to apply. */
diff --git a/src/ipa/rkisp1/algorithms/blc.cpp b/src/ipa/rkisp1/algorithms/blc.cpp
index 0f7226cf..15324fb1 100644
--- a/src/ipa/rkisp1/algorithms/blc.cpp
+++ b/src/ipa/rkisp1/algorithms/blc.cpp
@@ -65,12 +65,12 @@ int BlackLevelCorrection::init([[maybe_unused]] IPAContext &context,
/**
* \copydoc libcamera::ipa::Algorithm::prepare
*/
-void BlackLevelCorrection::prepare(IPAContext &context,
- [[maybe_unused]] const uint32_t frame,
+void BlackLevelCorrection::prepare([[maybe_unused]] IPAContext &context,
+ const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
rkisp1_params_cfg *params)
{
- if (context.activeState.frameCount > 0)
+ if (frame > 0)
return;
if (!tuningParameters_)
diff --git a/src/ipa/rkisp1/algorithms/dpcc.cpp b/src/ipa/rkisp1/algorithms/dpcc.cpp
index cf7de663..d2a015d0 100644
--- a/src/ipa/rkisp1/algorithms/dpcc.cpp
+++ b/src/ipa/rkisp1/algorithms/dpcc.cpp
@@ -231,12 +231,12 @@ int DefectPixelClusterCorrection::init([[maybe_unused]] IPAContext &context,
/**
* \copydoc libcamera::ipa::Algorithm::prepare
*/
-void DefectPixelClusterCorrection::prepare(IPAContext &context,
- [[maybe_unused]] const uint32_t frame,
+void DefectPixelClusterCorrection::prepare([[maybe_unused]] IPAContext &context,
+ const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
rkisp1_params_cfg *params)
{
- if (context.activeState.frameCount > 0)
+ if (frame > 0)
return;
if (!initialized_)
diff --git a/src/ipa/rkisp1/algorithms/dpf.cpp b/src/ipa/rkisp1/algorithms/dpf.cpp
index b8c837c2..b8d0c7b8 100644
--- a/src/ipa/rkisp1/algorithms/dpf.cpp
+++ b/src/ipa/rkisp1/algorithms/dpf.cpp
@@ -207,7 +207,7 @@ void Dpf::queueRequest(IPAContext &context,
/**
* \copydoc libcamera::ipa::Algorithm::prepare
*/
-void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
+void Dpf::prepare(IPAContext &context, const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
rkisp1_params_cfg *params)
{
@@ -216,7 +216,7 @@ void Dpf::prepare(IPAContext &context, [[maybe_unused]] const uint32_t frame,
auto &dpf = context.activeState.dpf;
- if (context.activeState.frameCount == 0) {
+ if (frame == 0) {
params->others.dpf_config = config_;
params->others.dpf_strength_config = strengthConfig_;
diff --git a/src/ipa/rkisp1/algorithms/gsl.cpp b/src/ipa/rkisp1/algorithms/gsl.cpp
index 879ca297..9cbad020 100644
--- a/src/ipa/rkisp1/algorithms/gsl.cpp
+++ b/src/ipa/rkisp1/algorithms/gsl.cpp
@@ -118,12 +118,12 @@ int GammaSensorLinearization::init([[maybe_unused]] IPAContext &context,
/**
* \copydoc libcamera::ipa::Algorithm::prepare
*/
-void GammaSensorLinearization::prepare(IPAContext &context,
- [[maybe_unused]] const uint32_t frame,
+void GammaSensorLinearization::prepare([[maybe_unused]] IPAContext &context,
+ const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
rkisp1_params_cfg *params)
{
- if (context.activeState.frameCount > 0)
+ if (frame > 0)
return;
if (!initialized_)
diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp
index 9c717bc5..44245caa 100644
--- a/src/ipa/rkisp1/algorithms/lsc.cpp
+++ b/src/ipa/rkisp1/algorithms/lsc.cpp
@@ -132,12 +132,11 @@ int LensShadingCorrection::configure(IPAContext &context,
/**
* \copydoc libcamera::ipa::Algorithm::prepare
*/
-void LensShadingCorrection::prepare(IPAContext &context,
- [[maybe_unused]] const uint32_t frame,
+void LensShadingCorrection::prepare(IPAContext &context, const uint32_t frame,
[[maybe_unused]] IPAFrameContext &frameContext,
rkisp1_params_cfg *params)
{
- if (context.activeState.frameCount > 0)
+ if (frame > 0)
return;
if (!initialized_)
diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
index e9846742..78a785f5 100644
--- a/src/ipa/rkisp1/ipa_context.cpp
+++ b/src/ipa/rkisp1/ipa_context.cpp
@@ -193,15 +193,6 @@ namespace libcamera::ipa::rkisp1 {
*/
/**
- * \var IPAActiveState::frameCount
- * \brief Counter of requests queued to the IPA module
- *
- * The counter is reset to 0 when the IPA module is configured, and is
- * incremented for each request being queued, after calling the
- * Algorithm::prepare() function of all algorithms.
- */
-
-/**
* \struct IPAFrameContext
* \brief Per-frame context for algorithms
*
diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
index f6aaefff..1390f803 100644
--- a/src/ipa/rkisp1/ipa_context.h
+++ b/src/ipa/rkisp1/ipa_context.h
@@ -87,8 +87,6 @@ struct IPAActiveState {
uint32_t exposure;
double gain;
} sensor;
-
- unsigned int frameCount;
};
struct IPAFrameContext : public FrameContext {
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 04956b2e..11fd8606 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -260,8 +260,6 @@ int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
context_.configuration.agc.minAnalogueGain = camHelper_->gain(minGain);
context_.configuration.agc.maxAnalogueGain = camHelper_->gain(maxGain);
- context_.activeState.frameCount = 0;
-
for (auto const &algo : algorithms()) {
int ret = algo->configure(context_, info);
if (ret)
@@ -324,7 +322,6 @@ void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
algo->prepare(context_, frame, frameContext, params);
paramsBufferReady.emit(frame);
- context_.activeState.frameCount++;
}
void IPARkISP1::processStatsBuffer(const uint32_t frame, const uint32_t bufferId,