Skip to content

Commit ca36c77

Browse files
committed
ipa: rpi: Apply default ControlInfo values for sensor controls
The existing IPA initialisation code did not set default values for some sensor related controls. This caused a crash using libcamerify when the it was trying to access the default value for controls::FrameDurationLimits as part of a recent change. Ensure controls::FrameDurationLimits, controls::AnalogueGain and controls::ExposureTime advertise default values along with the existing min/max values. The default is set to the defaults defined in the IPA set during initialisation. Bug: https://bugs.libcamera.org/show_bug.cgi?id=253 Signed-off-by: Naushir Patuck <[email protected]>
1 parent 83cb810 commit ca36c77

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/ipa/rpi/common/ipa_base.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -255,15 +255,18 @@ int32_t IpaBase::configure(const IPACameraSensorInfo &sensorInfo, const ConfigPa
255255
ControlInfoMap::Map ctrlMap = ipaControls;
256256
ctrlMap[&controls::FrameDurationLimits] =
257257
ControlInfo(static_cast<int64_t>(mode_.minFrameDuration.get<std::micro>()),
258-
static_cast<int64_t>(mode_.maxFrameDuration.get<std::micro>()));
258+
static_cast<int64_t>(mode_.maxFrameDuration.get<std::micro>()),
259+
static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()));
259260

260261
ctrlMap[&controls::AnalogueGain] =
261262
ControlInfo(static_cast<float>(mode_.minAnalogueGain),
262-
static_cast<float>(mode_.maxAnalogueGain));
263+
static_cast<float>(mode_.maxAnalogueGain),
264+
static_cast<float>(defaultAnalogueGain));
263265

264266
ctrlMap[&controls::ExposureTime] =
265267
ControlInfo(static_cast<int32_t>(mode_.minExposureTime.get<std::micro>()),
266-
static_cast<int32_t>(mode_.maxExposureTime.get<std::micro>()));
268+
static_cast<int32_t>(mode_.maxExposureTime.get<std::micro>()),
269+
static_cast<int32_t>(defaultExposureTime.get<std::micro>()));
267270

268271
/* Declare colour processing related controls for non-mono sensors. */
269272
if (!monoSensor_)

0 commit comments

Comments
 (0)