Skip to content

Commit

Permalink
ipa: rpi: Apply default ControlInfo values for sensor controls
Browse files Browse the repository at this point in the history
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]>
  • Loading branch information
naushir committed Feb 10, 2025
1 parent 83cb810 commit ca36c77
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/ipa/rpi/common/ipa_base.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -255,15 +255,18 @@ int32_t IpaBase::configure(const IPACameraSensorInfo &sensorInfo, const ConfigPa
ControlInfoMap::Map ctrlMap = ipaControls;
ctrlMap[&controls::FrameDurationLimits] =
ControlInfo(static_cast<int64_t>(mode_.minFrameDuration.get<std::micro>()),
static_cast<int64_t>(mode_.maxFrameDuration.get<std::micro>()));
static_cast<int64_t>(mode_.maxFrameDuration.get<std::micro>()),
static_cast<int64_t>(defaultMinFrameDuration.get<std::micro>()));

ctrlMap[&controls::AnalogueGain] =
ControlInfo(static_cast<float>(mode_.minAnalogueGain),
static_cast<float>(mode_.maxAnalogueGain));
static_cast<float>(mode_.maxAnalogueGain),
static_cast<float>(defaultAnalogueGain));

ctrlMap[&controls::ExposureTime] =
ControlInfo(static_cast<int32_t>(mode_.minExposureTime.get<std::micro>()),
static_cast<int32_t>(mode_.maxExposureTime.get<std::micro>()));
static_cast<int32_t>(mode_.maxExposureTime.get<std::micro>()),
static_cast<int32_t>(defaultExposureTime.get<std::micro>()));

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

0 comments on commit ca36c77

Please sign in to comment.