@@ -101,12 +101,12 @@ int Agc::configure(IPAContext &context,
stride_ = configuration.grid.stride;
bdsGrid_ = configuration.grid.bdsGrid;
- minExposureTime_ = configuration.agc.minExposureTime;
- maxExposureTime_ = std::min(configuration.agc.maxExposureTime,
+ minExposureTime_ = configuration.sensor.minExposureTime;
+ maxExposureTime_ = std::min(configuration.sensor.maxExposureTime,
kMaxExposureTime);
- minAnalogueGain_ = std::max(configuration.agc.minAnalogueGain, kMinAnalogueGain);
- maxAnalogueGain_ = configuration.agc.maxAnalogueGain;
+ minAnalogueGain_ = std::max(configuration.sensor.minAnalogueGain, kMinAnalogueGain);
+ maxAnalogueGain_ = configuration.sensor.maxAnalogueGain;
/* Configure the default exposure and gain. */
activeState.agc.gain = minAnalogueGain_;
@@ -96,8 +96,17 @@ namespace libcamera::ipa::ipu3 {
*/
/**
- * \var IPASessionConfiguration::agc
- * \brief AGC parameters configuration of the IPA
+ * \var IPASessionConfiguration::sensor
+ * \brief Sensor-specific configuration of the IPA
+ *
+ * \var IPASessionConfiguration::sensor.lineDuration
+ * \brief Line duration in microseconds
+ *
+ * \var IPASessionConfiguration::sensor.defVBlank
+ * \brief The default vblank value of the sensor
+ *
+ * \var IPASessionConfiguration::sensor.size
+ * \brief Sensor output resolution
*
* \var IPASessionConfiguration::agc.minExposureTime
* \brief Minimum exposure time supported with the configured sensor
@@ -112,20 +121,6 @@ namespace libcamera::ipa::ipu3 {
* \brief Maximum analogue gain supported with the configured sensor
*/
-/**
- * \var IPASessionConfiguration::sensor
- * \brief Sensor-specific configuration of the IPA
- *
- * \var IPASessionConfiguration::sensor.lineDuration
- * \brief Line duration in microseconds
- *
- * \var IPASessionConfiguration::sensor.defVBlank
- * \brief The default vblank value of the sensor
- *
- * \var IPASessionConfiguration::sensor.size
- * \brief Sensor output resolution
- */
-
/**
* \var IPAActiveState::agc
* \brief Context for the Automatic Gain Control algorithm
@@ -34,16 +34,13 @@ struct IPASessionConfiguration {
} af;
struct {
+ int32_t defVBlank;
+ utils::Duration lineDuration;
+ Size size;
utils::Duration minExposureTime;
utils::Duration maxExposureTime;
double minAnalogueGain;
double maxAnalogueGain;
- } agc;
-
- struct {
- int32_t defVBlank;
- utils::Duration lineDuration;
- Size size;
} sensor;
};
@@ -217,10 +217,10 @@ void IPAIPU3::updateSessionConfiguration(const ControlInfoMap &sensorControls)
*
* \todo take VBLANK into account for maximum exposure time
*/
- context_.configuration.agc.minExposureTime = minExposure * context_.configuration.sensor.lineDuration;
- context_.configuration.agc.maxExposureTime = maxExposure * context_.configuration.sensor.lineDuration;
- context_.configuration.agc.minAnalogueGain = context_.camHelper->gain(minGain);
- context_.configuration.agc.maxAnalogueGain = context_.camHelper->gain(maxGain);
+ context_.configuration.sensor.minExposureTime = minExposure * context_.configuration.sensor.lineDuration;
+ context_.configuration.sensor.maxExposureTime = maxExposure * context_.configuration.sensor.lineDuration;
+ context_.configuration.sensor.minAnalogueGain = context_.camHelper->gain(minGain);
+ context_.configuration.sensor.maxAnalogueGain = context_.camHelper->gain(maxGain);
}
/**
Move the exposure limits (shutter time and gains) in the IPAContext sensor configuration and not in the 'agc' member. This aligns the IPU3 IPA with the RkISP1 and Mali ones 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/ipu3/algorithms/agc.cpp | 8 ++++---- src/ipa/ipu3/ipa_context.cpp | 27 +++++++++++---------------- src/ipa/ipu3/ipa_context.h | 9 +++------ src/ipa/ipu3/ipu3.cpp | 8 ++++---- 4 files changed, 22 insertions(+), 30 deletions(-)