@@ -160,20 +160,20 @@ int Agc::configure(IPAContext &context,
* minimum analogue gain. AEGC is _active_ by default.
*/
context.activeState.agc.autoEnabled = true;
- context.activeState.agc.automatic.sensorGain = context.configuration.agc.minAnalogueGain;
+ context.activeState.agc.automatic.sensorGain = context.configuration.sensor.minAnalogueGain;
context.activeState.agc.automatic.exposure = context.configuration.agc.defaultExposure;
context.activeState.agc.automatic.ispGain = kMinDigitalGain;
- context.activeState.agc.manual.sensorGain = context.configuration.agc.minAnalogueGain;
+ context.activeState.agc.manual.sensorGain = context.configuration.sensor.minAnalogueGain;
context.activeState.agc.manual.exposure = context.configuration.agc.defaultExposure;
context.activeState.agc.manual.ispGain = kMinDigitalGain;
context.activeState.agc.constraintMode = constraintModes().begin()->first;
context.activeState.agc.exposureMode = exposureModeHelpers().begin()->first;
/* \todo Run this again when FrameDurationLimits is passed in */
- setLimits(context.configuration.agc.minShutterSpeed,
- context.configuration.agc.maxShutterSpeed,
- context.configuration.agc.minAnalogueGain,
- context.configuration.agc.maxAnalogueGain,
+ setLimits(context.configuration.sensor.minShutterSpeed,
+ context.configuration.sensor.maxShutterSpeed,
+ context.configuration.sensor.minAnalogueGain,
+ context.configuration.sensor.maxAnalogueGain,
{});
resetFrameCount();
@@ -21,17 +21,17 @@ namespace ipa::mali_c55 {
struct IPASessionConfiguration {
struct {
- utils::Duration minShutterSpeed;
- utils::Duration maxShutterSpeed;
uint32_t defaultExposure;
- double minAnalogueGain;
- double maxAnalogueGain;
} agc;
struct {
BayerFormat::Order bayerOrder;
utils::Duration lineDuration;
uint32_t blackLevel;
+ utils::Duration minShutterSpeed;
+ utils::Duration maxShutterSpeed;
+ double minAnalogueGain;
+ double maxAnalogueGain;
} sensor;
};
@@ -185,11 +185,12 @@ void IPAMaliC55::updateSessionConfiguration(const IPACameraSensorInfo &info,
* \todo take VBLANK into account for maximum shutter speed
*/
context_.configuration.sensor.lineDuration = info.minLineLength * 1.0s / info.pixelRate;
- context_.configuration.agc.minShutterSpeed = minExposure * context_.configuration.sensor.lineDuration;
- context_.configuration.agc.maxShutterSpeed = maxExposure * context_.configuration.sensor.lineDuration;
+ context_.configuration.sensor.minShutterSpeed = minExposure * context_.configuration.sensor.lineDuration;
+ context_.configuration.sensor.maxShutterSpeed = maxExposure * context_.configuration.sensor.lineDuration;
+ context_.configuration.sensor.minAnalogueGain = context_.camHelper->gain(minGain);
+ context_.configuration.sensor.maxAnalogueGain = context_.camHelper->gain(maxGain);
+
context_.configuration.agc.defaultExposure = defExposure;
- context_.configuration.agc.minAnalogueGain = context_.camHelper->gain(minGain);
- context_.configuration.agc.maxAnalogueGain = context_.camHelper->gain(maxGain);
if (context_.camHelper->blackLevel().has_value()) {
/*
Move the exposure limits (shutter time and gains) in the IPAContext sensor configuration and not in the 'agc' member. This aligns the Mali IPA with the RkISP1 and will help unifying the handling of sensor configuration data through a common type. Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> --- src/ipa/mali-c55/algorithms/agc.cpp | 12 ++++++------ src/ipa/mali-c55/ipa_context.h | 8 ++++---- src/ipa/mali-c55/mali-c55.cpp | 9 +++++---- 3 files changed, 15 insertions(+), 14 deletions(-)