@@ -100,6 +100,9 @@ LOG_DEFINE_CATEGORY(Agc)
* \var agc::ActiveState::automatic.quantizationGain
* \brief Automatic quantization gain multiplier
*
+ * \var agc::ActiveState::automatic.digitalGain
+ * \brief Automatic digital gain multiplier
+ *
* \var agc::ActiveState::automatic.yTarget
* \brief Automatically determined luminance target
*
@@ -322,6 +325,7 @@ int AgcAlgorithm::configure(agc::Session &session, agc::ActiveState &state,
state.automatic.gain = session.minAnalogueGain;
state.automatic.exposure = defExposure;
state.automatic.quantizationGain = 1;
+ state.automatic.digitalGain = 1;
state.automatic.yTarget = impl_.effectiveYTarget(0, 1);
state.manual.gain = state.automatic.gain;
state.manual.exposure = state.automatic.exposure;
@@ -598,6 +602,7 @@ void AgcAlgorithm::process(const agc::Session &session, agc::ActiveState &state,
state.automatic.exposure = newEv.exposureTime / lineDuration;
state.automatic.gain = newEv.analogueGain;
state.automatic.quantizationGain = newEv.quantizationGain;
+ state.automatic.digitalGain = newEv.digitalGain;
state.automatic.yTarget = newEv.yTarget;
newExposureTime = newEv.exposureTime;
@@ -606,7 +611,7 @@ void AgcAlgorithm::process(const agc::Session &session, agc::ActiveState &state,
<< "exposure-time:" << utils::Duration(state.automatic.exposure * lineDuration)
<< " analogue-gain:" << state.automatic.gain
<< " quantization-gain:" << state.automatic.quantizationGain
- << " digital-gain:" << newEv.digitalGain;
+ << " digital-gain:" << state.automatic.digitalGain;
}
/*
@@ -74,6 +74,7 @@ struct ActiveState {
uint32_t exposure;
double gain;
double quantizationGain;
+ double digitalGain;
double yTarget;
} automatic;
While digital gain support is not implemented yet, start by storing the suggested digital gain in the active state. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- src/ipa/libipa/agc.cpp | 7 ++++++- src/ipa/libipa/agc.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-)