pipeline: rkisp1: Support IPA tuning file
Pass the path name of the YAML IPA tuning file to the IPA module. The
file name is derived from the sensor name ("${sensor_name}.yaml"), with
a fallback to "uncalibrated.yaml".
The tuning file name can be manually overridden with the
LIBCAMERA_RKISP1_TUNING_FILE environment variable.
Signed-off-by: Florian Sylvestre <fsylvestre@baylibre.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
committed by
Laurent Pinchart
parent
e9c53ac4d8
commit
011a4668fb
8
src/ipa/rkisp1/data/meson.build
Normal file
8
src/ipa/rkisp1/data/meson.build
Normal file
@@ -0,0 +1,8 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
conf_files = files([
|
||||
'uncalibrated.yaml',
|
||||
])
|
||||
|
||||
install_data(conf_files,
|
||||
install_dir : ipa_data_dir / 'rkisp1')
|
||||
8
src/ipa/rkisp1/data/uncalibrated.yaml
Normal file
8
src/ipa/rkisp1/data/uncalibrated.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.2
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- Agc:
|
||||
- Awb:
|
||||
...
|
||||
@@ -321,7 +321,25 @@ int RkISP1CameraData::loadIPA(unsigned int hwRevision)
|
||||
ipa_->paramsBufferReady.connect(this, &RkISP1CameraData::paramFilled);
|
||||
ipa_->metadataReady.connect(this, &RkISP1CameraData::metadataReady);
|
||||
|
||||
int ret = ipa_->init(IPASettings{ "", sensor_->model() }, hwRevision);
|
||||
/*
|
||||
* The API tuning file is made from the sensor name unless the
|
||||
* environment variable overrides it. If
|
||||
*/
|
||||
std::string ipaTuningFile;
|
||||
char const *configFromEnv = utils::secure_getenv("LIBCAMERA_RKISP1_TUNING_FILE");
|
||||
if (!configFromEnv || *configFromEnv == '\0') {
|
||||
ipaTuningFile = ipa_->configurationFile(sensor_->model() + ".yaml");
|
||||
/*
|
||||
* If the tuning file isn't found, fall back to the
|
||||
* 'uncalibrated' configuration file.
|
||||
*/
|
||||
if (ipaTuningFile.empty())
|
||||
ipaTuningFile = ipa_->configurationFile("uncalibrated.yaml");
|
||||
} else {
|
||||
ipaTuningFile = std::string(configFromEnv);
|
||||
}
|
||||
|
||||
int ret = ipa_->init({ ipaTuningFile, sensor_->model() }, hwRevision);
|
||||
if (ret < 0) {
|
||||
LOG(RkISP1, Error) << "IPA initialization failure";
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user