summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ipa/raspberrypi/raspberrypi.cpp13
-rw-r--r--src/libcamera/pipeline/raspberrypi/raspberrypi.cpp3
2 files changed, 11 insertions, 5 deletions
diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
index 047123ab..fed82e22 100644
--- a/src/ipa/raspberrypi/raspberrypi.cpp
+++ b/src/ipa/raspberrypi/raspberrypi.cpp
@@ -389,21 +389,26 @@ int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,
/* Pass the camera mode to the CamHelper to setup algorithms. */
helper_->SetCameraMode(mode_);
+ /*
+ * Initialise this ControlList correctly, even if empty, in case the IPA is
+ * running is isolation mode (passing the ControlList through the IPC layer).
+ */
+ ControlList ctrls(sensorCtrls_);
+
if (firstStart_) {
/* Supply initial values for frame durations. */
applyFrameDurations(defaultMinFrameDuration, defaultMaxFrameDuration);
/* Supply initial values for gain and exposure. */
- ControlList ctrls(sensorCtrls_);
AgcStatus agcStatus;
agcStatus.shutter_time = defaultExposureTime;
agcStatus.analogue_gain = defaultAnalogueGain;
applyAGC(&agcStatus, ctrls);
-
- ASSERT(controls);
- *controls = std::move(ctrls);
}
+ ASSERT(controls);
+ *controls = std::move(ctrls);
+
return 0;
}
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 0bdfa727..1634ca98 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -825,7 +825,8 @@ int PipelineHandlerRPi::start(Camera *camera, const ControlList *controls)
/* Start the IPA. */
ipa::RPi::StartConfig startConfig;
- data->ipa_->start(controls ? *controls : ControlList{}, &startConfig);
+ data->ipa_->start(controls ? *controls : ControlList{ controls::controls },
+ &startConfig);
/* Apply any gain/exposure settings that the IPA may have passed back. */
if (!startConfig.controls.empty())