pipeline: ipa: rpi: Return lens controls from ipa->configure()

In addition to sensor controls, return lens controls from
IpaBase::configure() back to the pipeline handler. If there are lens
controls present in the ControlList, action them in the pipeline handler
as part of the configure routine.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2023-06-05 10:14:05 +01:00 committed by Laurent Pinchart
parent bdba31cc02
commit d66ff77759
3 changed files with 7 additions and 4 deletions

View file

@ -47,7 +47,8 @@ struct ConfigParams {
struct ConfigResult {
float modeSensitivity;
libcamera.ControlInfoMap controlInfo;
libcamera.ControlList controls;
libcamera.ControlList sensorControls;
libcamera.ControlList lensControls;
};
struct StartResult {

View file

@ -210,7 +210,7 @@ int32_t IpaBase::configure(const IPACameraSensorInfo &sensorInfo, const ConfigPa
applyAGC(&agcStatus, ctrls);
}
result->controls = std::move(ctrls);
result->sensorControls = std::move(ctrls);
/*
* Apply the correct limits to the exposure, gain and frame duration controls

View file

@ -1200,8 +1200,10 @@ int CameraData::configureIPA(const CameraConfiguration *config, ipa::RPi::Config
return -EPIPE;
}
if (!result->controls.empty())
setSensorControls(result->controls);
if (!result->sensorControls.empty())
setSensorControls(result->sensorControls);
if (!result->lensControls.empty())
setLensControls(result->lensControls);
return 0;
}