@@ -260,6 +260,8 @@ int AgcConfig::read(const libcamera::YamlObject ¶ms)
desaturate = params["desaturate"].get<int>(1);
+ maxDigitalGain = params["max_digital_gain"].get<double>(4.0);
+
return 0;
}
@@ -508,7 +510,8 @@ void AgcChannel::prepare(Metadata *imageMetadata)
* Never ask for a gain < 1.0, and also impose
* some upper limit. Make it customisable?
*/
- prepareStatus.digitalGain = std::max(1.0, std::min(digitalGain, 4.0));
+ prepareStatus.digitalGain = std::max(1.0, std::min(digitalGain,
+ config_.maxDigitalGain));
LOG(RPiAgc, Debug) << "Actual exposure " << actualExposure;
LOG(RPiAgc, Debug) << "Use digitalGain " << prepareStatus.digitalGain;
LOG(RPiAgc, Debug) << "Effective exposure "
@@ -78,6 +78,7 @@ struct AgcConfig {
double defaultAnalogueGain;
double stableRegion;
bool desaturate;
+ double maxDigitalGain;
};
class AgcChannel
The maximum allowed digital gain is hard-coded to 4. Make it a configurable parameter. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> --- src/ipa/rpi/controller/rpi/agc_channel.cpp | 5 ++++- src/ipa/rpi/controller/rpi/agc_channel.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-)