[libcamera-devel] [PATCH v1 1/2] pipeline: ipa: rpi: Flag if the sensor is a mono variant

David Plowman david.plowman at raspberrypi.com
Wed May 31 16:59:42 CEST 2023


Hi Naush

Thanks for the patch.

On Wed, 31 May 2023 at 15:39, Naushir Patuck via libcamera-devel
<libcamera-devel at lists.libcamera.org> wrote:
>
> Add a flag to the ipa->init() interface to indicate a mono sensor
> variant. This flag will be used in a future commit to handle controls
> that are invalid for mono sensors.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

All looks good to me.

Reviewed-by: David Plowman <david.plowman at raspberrypi.com>

Thanks!
David

> ---
>  include/libcamera/ipa/raspberrypi.mojom             | 1 +
>  src/ipa/rpi/common/ipa_base.cpp                     | 1 +
>  src/ipa/rpi/common/ipa_base.h                       | 1 +
>  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 4 +++-
>  4 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
> index ba786e647ca1..d35289ee6229 100644
> --- a/include/libcamera/ipa/raspberrypi.mojom
> +++ b/include/libcamera/ipa/raspberrypi.mojom
> @@ -21,6 +21,7 @@ struct SensorConfig {
>
>  struct InitParams {
>         bool lensPresent;
> +       bool monoSensor;
>  };
>
>  struct InitResult {
> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
> index db7a0eb3a1ca..150fe433d0df 100644
> --- a/src/ipa/rpi/common/ipa_base.cpp
> +++ b/src/ipa/rpi/common/ipa_base.cpp
> @@ -139,6 +139,7 @@ int32_t IpaBase::init(const IPASettings &settings, const InitParams &params, Ini
>         }
>
>         lensPresent_ = params.lensPresent;
> +       monoSensor_ = params.monoSensor;
>
>         controller_.initialise();
>
> diff --git a/src/ipa/rpi/common/ipa_base.h b/src/ipa/rpi/common/ipa_base.h
> index 6f9c46bb16b1..39d00760d012 100644
> --- a/src/ipa/rpi/common/ipa_base.h
> +++ b/src/ipa/rpi/common/ipa_base.h
> @@ -87,6 +87,7 @@ private:
>         std::map<unsigned int, MappedFrameBuffer> buffers_;
>
>         bool lensPresent_;
> +       bool monoSensor_;
>         ControlList libcameraMetadata_;
>
>         std::array<RPiController::Metadata, numMetadataContexts> rpiMetadata_;
> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> index 3bb5ec531e4f..12698056cda1 100644
> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> @@ -1131,6 +1131,7 @@ int CameraData::loadPipelineConfiguration()
>  int CameraData::loadIPA(ipa::RPi::InitResult *result)
>  {
>         ipa_ = IPAManager::createIPA<ipa::RPi::IPAProxyRPi>(pipe(), 1, 1);
> +       bool monoSensor = isMonoSensor(sensor_);
>
>         if (!ipa_)
>                 return -ENOENT;
> @@ -1143,7 +1144,7 @@ int CameraData::loadIPA(ipa::RPi::InitResult *result)
>         char const *configFromEnv = utils::secure_getenv("LIBCAMERA_RPI_TUNING_FILE");
>         if (!configFromEnv || *configFromEnv == '\0') {
>                 std::string model = sensor_->model();
> -               if (isMonoSensor(sensor_))
> +               if (monoSensor)
>                         model += "_mono";
>                 configurationFile = ipa_->configurationFile(model + ".json");
>         } else {
> @@ -1154,6 +1155,7 @@ int CameraData::loadIPA(ipa::RPi::InitResult *result)
>         ipa::RPi::InitParams params;
>
>         params.lensPresent = !!sensor_->focusLens();
> +       params.monoSensor = monoSensor;
>         int ret = platformInitIpa(params);
>         if (ret)
>                 return ret;
> --
> 2.34.1
>


More information about the libcamera-devel mailing list