[libcamera-devel] [PATCH v3 2/4] pipeline: raspberrypi: Update naming convention for tuning files

David Plowman david.plowman at raspberrypi.com
Mon Oct 3 11:57:54 CEST 2022


Hi Naush

Thanks for fixing the typo!

On Mon, 3 Oct 2022 at 10:56, Naushir Patuck via libcamera-devel
<libcamera-devel at lists.libcamera.org> wrote:
>
> Append "_mono" to the sensor name when generating the tuning filename for
> monochrome sensor variants. So the new naming convention is as follows:
>
> <sensor_name>.json - Standard colour sensor variant
> <sensor_name>_mono.json - Monochrom sensor variant
>
> Rename the existing imx296.json file to imx296_mono.json as this tuning file
> is based on the monochrome variant of the IMX296.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

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

Thanks!
David

> ---
>  .../data/{imx296.json => imx296_mono.json}    |  0
>  src/ipa/raspberrypi/data/meson.build          |  2 +-
>  .../pipeline/raspberrypi/raspberrypi.cpp      | 20 +++++++++++++++----
>  3 files changed, 17 insertions(+), 5 deletions(-)
>  rename src/ipa/raspberrypi/data/{imx296.json => imx296_mono.json} (100%)
>
> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296_mono.json
> similarity index 100%
> rename from src/ipa/raspberrypi/data/imx296.json
> rename to src/ipa/raspberrypi/data/imx296_mono.json
> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build
> index 211811cfa915..465a7a17ce6f 100644
> --- a/src/ipa/raspberrypi/data/meson.build
> +++ b/src/ipa/raspberrypi/data/meson.build
> @@ -4,7 +4,7 @@ conf_files = files([
>      'imx219.json',
>      'imx219_noir.json',
>      'imx290.json',
> -    'imx296.json',
> +    'imx296_mono.json',
>      'imx378.json',
>      'imx477.json',
>      'imx477_noir.json',
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index dcd81650c32d..39a1c798df2e 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -67,6 +67,14 @@ SensorFormats populateSensorFormats(std::unique_ptr<CameraSensor> &sensor)
>         return formats;
>  }
>
> +bool isMonoSensor(std::unique_ptr<CameraSensor> &sensor)
> +{
> +       unsigned int mbusCode = sensor->mbusCodes()[0];
> +       const BayerFormat &bayer = BayerFormat::fromMbusCode(mbusCode);
> +
> +       return bayer.order == BayerFormat::Order::MONO;
> +}
> +
>  PixelFormat mbusCodeToPixelFormat(unsigned int mbus_code,
>                                   BayerFormat::Packing packingReq)
>  {
> @@ -1551,12 +1559,16 @@ int RPiCameraData::loadIPA(ipa::RPi::IPAInitResult *result)
>          */
>         std::string configurationFile;
>         char const *configFromEnv = utils::secure_getenv("LIBCAMERA_RPI_TUNING_FILE");
> -       if (!configFromEnv || *configFromEnv == '\0')
> -               configurationFile = ipa_->configurationFile(sensor_->model() + ".json");
> -       else
> +       std::string model = sensor_->model();
> +       if (!configFromEnv || *configFromEnv == '\0') {
> +               if (isMonoSensor(sensor_))
> +                       model += "_mono";
> +               configurationFile = ipa_->configurationFile(model + ".json");
> +       } else {
>                 configurationFile = std::string(configFromEnv);
> +       }
>
> -       IPASettings settings(configurationFile, sensor_->model());
> +       IPASettings settings(configurationFile, model);
>
>         return ipa_->init(settings, result);
>  }
> --
> 2.25.1
>


More information about the libcamera-devel mailing list