summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ipa/simple/algorithms/agc.cpp8
-rw-r--r--src/ipa/simple/algorithms/agc.h2
-rw-r--r--src/ipa/simple/algorithms/blc.h2
-rw-r--r--src/ipa/simple/ipa_context.h2
-rw-r--r--src/ipa/simple/soft_simple.cpp4
5 files changed, 9 insertions, 9 deletions
diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp
index df92edd7..72aade14 100644
--- a/src/ipa/simple/algorithms/agc.cpp
+++ b/src/ipa/simple/algorithms/agc.cpp
@@ -39,7 +39,7 @@ Agc::Agc()
{
}
-void Agc::updateExposure(IPAContext &context, double exposureMSV)
+void Agc::updateExposure(IPAContext &context, IPAFrameContext &frameContext, double exposureMSV)
{
/*
* kExpDenominator of 10 gives ~10% increment/decrement;
@@ -50,8 +50,8 @@ void Agc::updateExposure(IPAContext &context, double exposureMSV)
static constexpr uint8_t kExpNumeratorDown = kExpDenominator - 1;
double next;
- int32_t &exposure = context.activeState.agc.exposure;
- double &again = context.activeState.agc.again;
+ int32_t &exposure = frameContext.sensor.exposure;
+ double &again = frameContext.sensor.gain;
if (exposureMSV < kExposureOptimal - kExposureSatisfactory) {
next = exposure * kExpNumeratorUp / kExpDenominator;
@@ -129,7 +129,7 @@ void Agc::process(IPAContext &context,
}
float exposureMSV = (denom == 0 ? 0 : static_cast<float>(num) / denom);
- updateExposure(context, exposureMSV);
+ updateExposure(context, frameContext, exposureMSV);
}
REGISTER_IPA_ALGORITHM(Agc, "Agc")
diff --git a/src/ipa/simple/algorithms/agc.h b/src/ipa/simple/algorithms/agc.h
index ad5fca9f..112d9f5a 100644
--- a/src/ipa/simple/algorithms/agc.h
+++ b/src/ipa/simple/algorithms/agc.h
@@ -25,7 +25,7 @@ public:
ControlList &metadata) override;
private:
- void updateExposure(IPAContext &context, double exposureMSV);
+ void updateExposure(IPAContext &context, IPAFrameContext &frameContext, double exposureMSV);
};
} /* namespace ipa::soft::algorithms */
diff --git a/src/ipa/simple/algorithms/blc.h b/src/ipa/simple/algorithms/blc.h
index 2cf2a877..67c688ae 100644
--- a/src/ipa/simple/algorithms/blc.h
+++ b/src/ipa/simple/algorithms/blc.h
@@ -27,7 +27,7 @@ public:
ControlList &metadata) override;
private:
- uint32_t exposure_;
+ int32_t exposure_;
double gain_;
};
diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/simple/ipa_context.h
index fd121eeb..c510c436 100644
--- a/src/ipa/simple/ipa_context.h
+++ b/src/ipa/simple/ipa_context.h
@@ -53,7 +53,7 @@ struct IPAActiveState {
struct IPAFrameContext : public FrameContext {
struct {
- uint32_t exposure;
+ int32_t exposure;
double gain;
} sensor;
};
diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp
index ac2a9421..ba3d5265 100644
--- a/src/ipa/simple/soft_simple.cpp
+++ b/src/ipa/simple/soft_simple.cpp
@@ -310,8 +310,8 @@ void IPASoftSimple::processStats(const uint32_t frame,
ControlList ctrls(sensorInfoMap_);
- auto &againNew = context_.activeState.agc.again;
- ctrls.set(V4L2_CID_EXPOSURE, context_.activeState.agc.exposure);
+ auto &againNew = frameContext.sensor.gain;
+ ctrls.set(V4L2_CID_EXPOSURE, frameContext.sensor.exposure);
ctrls.set(V4L2_CID_ANALOGUE_GAIN,
static_cast<int32_t>(camHelper_ ? camHelper_->gainCode(againNew) : againNew));