diff options
author | Naushir Patuck <naush@raspberrypi.com> | 2023-06-05 09:26:05 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2023-06-05 11:40:31 +0300 |
commit | a0271e72a86da5796891795565f43f20f7024a8d (patch) | |
tree | e097285a4c70d3167c814df487241ebec3e3b5f7 /src/libcamera/pipeline/rpi/common | |
parent | 54340ef70f7ece5354dd4b62cecf833da400fdd9 (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/rpi/common')
-rw-r--r-- | src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 10 |
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(¶ms.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; |