summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline
diff options
context:
space:
mode:
authorNaushir Patuck <naush@raspberrypi.com>2023-06-05 09:26:05 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2023-06-05 11:40:31 +0300
commita0271e72a86da5796891795565f43f20f7024a8d (patch)
treee097285a4c70d3167c814df487241ebec3e3b5f7 /src/libcamera/pipeline
parent54340ef70f7ece5354dd4b62cecf833da400fdd9 (diff)
ipa: rpi: Handle controls for mono variant sensors
Do not advertise colour related controls (i.e. [A]WB, colour saturation) in the ControlInfoMap of available controls returned out to the application. Silently ignore these controls in the control handler in case applications don't use the advertised ControlInfoMap to validate controls. As a drive-by fix, don't advertise controls::ColourCorrectionMatrix in the ControlInfoMap as it is not handled by the IPA. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/libcamera/pipeline')
-rw-r--r--src/libcamera/pipeline/rpi/common/pipeline_base.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
index 3bb5ec53..3aef1f43 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
@@ -1130,6 +1130,8 @@ int CameraData::loadPipelineConfiguration()
int CameraData::loadIPA(ipa::RPi::InitResult *result)
{
+ int ret;
+
ipa_ = IPAManager::createIPA<ipa::RPi::IPAProxyRPi>(pipe(), 1, 1);
if (!ipa_)
@@ -1153,8 +1155,14 @@ int CameraData::loadIPA(ipa::RPi::InitResult *result)
IPASettings settings(configurationFile, sensor_->model());
ipa::RPi::InitParams params;
+ ret = sensor_->sensorInfo(&params.sensorInfo);
+ if (ret) {
+ LOG(RPI, Error) << "Failed to retrieve camera sensor info";
+ return ret;
+ }
+
params.lensPresent = !!sensor_->focusLens();
- int ret = platformInitIpa(params);
+ ret = platformInitIpa(params);
if (ret)
return ret;