[libcamera-devel] [PATCH] pipeline: rpi: Do not return an error from pipeline config file handling

Naushir Patuck naush at raspberrypi.com
Wed Jun 14 14:13:32 CEST 2023


If a user provided pipeline config file is not present, or if the
version reported in the file is invalid, do not return with an error
when creating the pipeline handler. Instead, log a warning message and
return success with default pipeline config values used.

This now matches the behaviour when the pipeline config file could not
be parsed correctly, and we revert to default values.

Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
---
 src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
index 1e20fc2d8cb8..df7482920e75 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
@@ -1093,8 +1093,9 @@ int CameraData::loadPipelineConfiguration()
 	File file(filename);
 
 	if (!file.open(File::OpenModeFlag::ReadOnly)) {
-		LOG(RPI, Error) << "Failed to open configuration file '" << filename << "'";
-		return -EIO;
+		LOG(RPI, Warning) << "Failed to open configuration file '" << filename << "'"
+				  << ", using defaults";
+		return 0;
 	}
 
 	LOG(RPI, Info) << "Using configuration file '" << filename << "'";
@@ -1107,8 +1108,9 @@ int CameraData::loadPipelineConfiguration()
 
 	std::optional<double> ver = (*root)["version"].get<double>();
 	if (!ver || *ver != 1.0) {
-		LOG(RPI, Error) << "Unexpected configuration file version reported";
-		return -EINVAL;
+		LOG(RPI, Warning) << "Unexpected configuration file version reported: "
+				  << *ver;
+		return 0;
 	}
 
 	const YamlObject &phConfig = (*root)["pipeline_handler"];
-- 
2.34.1



More information about the libcamera-devel mailing list