Message ID | 20220926122911.13412-3-naush@raspberrypi.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
On Mon, Sep 26, 2022 at 01:29:09PM +0100, Naushir Patuck via libcamera-devel 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@raspberrypi.com> > --- > .../data/{imx296.json => imx296_mono.json} | 0 > src/ipa/raspberrypi/data/meson.build | 2 +- > .../pipeline/raspberrypi/raspberrypi.cpp | 19 +++++++++++++++---- > 3 files changed, 16 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..c068b07b31fe 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]; > + BayerFormat bayer = BayerFormat::fromMbusCode(mbusCode); const Bayerformat &bayer ? > + > + return bayer.order == BayerFormat::Order::MONO; > +} > + > PixelFormat mbusCodeToPixelFormat(unsigned int mbus_code, > BayerFormat::Packing packingReq) > { > @@ -1551,10 +1559,13 @@ 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 > - configurationFile = std::string(configFromEnv); > + std::string sensorStr = sensor_->model(); const std::string &sensorStr = and maybe s/sensorStr/model ? > + if (!configFromEnv || *configFromEnv == '\0') { > + if (isMonoSensor(sensor_)) > + configurationFile += "_mono"; > + configurationFile = ipa_->configurationFile(sensorStr + ".json"); > + } else > + configurationFile = sensorStr; Don't you need to append "_mono" in this case ? Also the else branch needs braces too > > IPASettings settings(configurationFile, sensor_->model()); As you now get a reference to sensor_->model() you can avoid the function call and reuse sensorStr (or 'model' if you like the rename). Thanks j > > -- > 2.25.1 >
Hi Jacopo, Thank you for the review. On Wed, 28 Sept 2022 at 08:21, Jacopo Mondi <jacopo@jmondi.org> wrote: > On Mon, Sep 26, 2022 at 01:29:09PM +0100, Naushir Patuck via > libcamera-devel 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@raspberrypi.com> > > --- > > .../data/{imx296.json => imx296_mono.json} | 0 > > src/ipa/raspberrypi/data/meson.build | 2 +- > > .../pipeline/raspberrypi/raspberrypi.cpp | 19 +++++++++++++++---- > > 3 files changed, 16 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..c068b07b31fe 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]; > > + BayerFormat bayer = BayerFormat::fromMbusCode(mbusCode); > > const Bayerformat &bayer ? > > > + > > + return bayer.order == BayerFormat::Order::MONO; > > +} > > + > > PixelFormat mbusCodeToPixelFormat(unsigned int mbus_code, > > BayerFormat::Packing packingReq) > > { > > @@ -1551,10 +1559,13 @@ 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 > > - configurationFile = std::string(configFromEnv); > > + std::string sensorStr = sensor_->model(); > > const std::string &sensorStr = > > and maybe s/sensorStr/model ? > > > > + if (!configFromEnv || *configFromEnv == '\0') { > > + if (isMonoSensor(sensor_)) > > + configurationFile += "_mono"; > > + configurationFile = ipa_->configurationFile(sensorStr + > ".json"); > > + } else > > + configurationFile = sensorStr; > > Don't you need to append "_mono" in this case ? > I don't want to append _mono here as I want to load the user specified file without any modifications to the name. It's up to the user/app to get this right if they want to override the tuning file :) > > Also the else branch needs braces too > > > > > IPASettings settings(configurationFile, sensor_->model()); > > As you now get a reference to sensor_->model() you can avoid the > function call and reuse sensorStr (or 'model' if you like the rename). > I'll apply your suggestions for the next revision. Thanks! Naush > > Thanks > j > > > > > -- > > 2.25.1 > > >
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..c068b07b31fe 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]; + BayerFormat bayer = BayerFormat::fromMbusCode(mbusCode); + + return bayer.order == BayerFormat::Order::MONO; +} + PixelFormat mbusCodeToPixelFormat(unsigned int mbus_code, BayerFormat::Packing packingReq) { @@ -1551,10 +1559,13 @@ 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 - configurationFile = std::string(configFromEnv); + std::string sensorStr = sensor_->model(); + if (!configFromEnv || *configFromEnv == '\0') { + if (isMonoSensor(sensor_)) + configurationFile += "_mono"; + configurationFile = ipa_->configurationFile(sensorStr + ".json"); + } else + configurationFile = sensorStr; IPASettings settings(configurationFile, sensor_->model());
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@raspberrypi.com> --- .../data/{imx296.json => imx296_mono.json} | 0 src/ipa/raspberrypi/data/meson.build | 2 +- .../pipeline/raspberrypi/raspberrypi.cpp | 19 +++++++++++++++---- 3 files changed, 16 insertions(+), 5 deletions(-) rename src/ipa/raspberrypi/data/{imx296.json => imx296_mono.json} (100%)