<div dir="ltr"><div dir="ltr">Hi Jacopo,<div><br></div><div>Thank you for the review.</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 28 Sept 2022 at 08:21, Jacopo Mondi <<a href="mailto:jacopo@jmondi.org">jacopo@jmondi.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, Sep 26, 2022 at 01:29:09PM +0100, Naushir Patuck via libcamera-devel wrote:<br>
> Append "_mono" to the sensor name when generating the tuning filename for<br>
> monochrome sensor variants. So the new naming convention is as follows:<br>
><br>
> <sensor_name>.json - Standard colour sensor variant<br>
> <sensor_name>_mono.json - Monochrom sensor variant<br>
><br>
> Rename the existing imx296.json file to imx296_mono.json as this tuning file<br>
> is based on the monochrome variant of the IMX296.<br>
><br>
> Signed-off-by: Naushir Patuck <<a href="mailto:naush@raspberrypi.com" target="_blank">naush@raspberrypi.com</a>><br>
> ---<br>
> .../data/{imx296.json => imx296_mono.json} | 0<br>
> src/ipa/raspberrypi/data/meson.build | 2 +-<br>
> .../pipeline/raspberrypi/raspberrypi.cpp | 19 +++++++++++++++----<br>
> 3 files changed, 16 insertions(+), 5 deletions(-)<br>
> rename src/ipa/raspberrypi/data/{imx296.json => imx296_mono.json} (100%)<br>
><br>
> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296_mono.json<br>
> similarity index 100%<br>
> rename from src/ipa/raspberrypi/data/imx296.json<br>
> rename to src/ipa/raspberrypi/data/imx296_mono.json<br>
> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build<br>
> index 211811cfa915..465a7a17ce6f 100644<br>
> --- a/src/ipa/raspberrypi/data/meson.build<br>
> +++ b/src/ipa/raspberrypi/data/meson.build<br>
> @@ -4,7 +4,7 @@ conf_files = files([<br>
> 'imx219.json',<br>
> 'imx219_noir.json',<br>
> 'imx290.json',<br>
> - 'imx296.json',<br>
> + 'imx296_mono.json',<br>
> 'imx378.json',<br>
> 'imx477.json',<br>
> 'imx477_noir.json',<br>
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp<br>
> index dcd81650c32d..c068b07b31fe 100644<br>
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp<br>
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp<br>
> @@ -67,6 +67,14 @@ SensorFormats populateSensorFormats(std::unique_ptr<CameraSensor> &sensor)<br>
> return formats;<br>
> }<br>
><br>
> +bool isMonoSensor(std::unique_ptr<CameraSensor> &sensor)<br>
> +{<br>
> + unsigned int mbusCode = sensor->mbusCodes()[0];<br>
> + BayerFormat bayer = BayerFormat::fromMbusCode(mbusCode);<br>
<br>
const Bayerformat &bayer ?<br>
<br>
> +<br>
> + return bayer.order == BayerFormat::Order::MONO;<br>
> +}<br>
> +<br>
> PixelFormat mbusCodeToPixelFormat(unsigned int mbus_code,<br>
> BayerFormat::Packing packingReq)<br>
> {<br>
> @@ -1551,10 +1559,13 @@ int RPiCameraData::loadIPA(ipa::RPi::IPAInitResult *result)<br>
> */<br>
> std::string configurationFile;<br>
> char const *configFromEnv = utils::secure_getenv("LIBCAMERA_RPI_TUNING_FILE");<br>
> - if (!configFromEnv || *configFromEnv == '\0')<br>
> - configurationFile = ipa_->configurationFile(sensor_->model() + ".json");<br>
> - else<br>
> - configurationFile = std::string(configFromEnv);<br>
> + std::string sensorStr = sensor_->model();<br>
<br>
const std::string &sensorStr =<br>
<br>
and maybe s/sensorStr/model ?<br>
<br>
<br>
> + if (!configFromEnv || *configFromEnv == '\0') {<br>
> + if (isMonoSensor(sensor_))<br>
> + configurationFile += "_mono";<br>
> + configurationFile = ipa_->configurationFile(sensorStr + ".json");<br>
> + } else<br>
> + configurationFile = sensorStr;<br>
<br>
Don't you need to append "_mono" in this case ?<br></blockquote><div><br></div><div>I don't want to append _mono here as I want to load the user specified</div><div>file without any modifications to the name. It's up to the user/app to</div><div>get this right if they want to override the tuning file :)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Also the else branch needs braces too<br>
<br>
><br>
> IPASettings settings(configurationFile, sensor_->model());<br>
<br>
As you now get a reference to sensor_->model() you can avoid the<br>
function call and reuse sensorStr (or 'model' if you like the rename).<br></blockquote><div><br></div><div>I'll apply your suggestions for the next revision.</div><div><br></div><div>Thanks!</div><div>Naush</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Thanks<br>
j<br>
<br>
><br>
> --<br>
> 2.25.1<br>
><br>
</blockquote></div></div>