[PATCH 1/2] libcamera: pipeline_handler: Enable silent configuration file lookup

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Jan 10 03:39:19 CET 2025


The PipelineHandler::configurationFile() function prints an error
message when no configuration file is found. It can be useful for
pipeline handlers to silence the lookup operation and handle errors
themselves. Add a silent parameter to the function to enable this.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 include/libcamera/internal/pipeline_handler.h |  3 ++-
 src/libcamera/pipeline_handler.cpp            | 12 ++++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h
index fb28a18d0f4668ab..972a2fa65310e1d9 100644
--- a/include/libcamera/internal/pipeline_handler.h
+++ b/include/libcamera/internal/pipeline_handler.h
@@ -63,7 +63,8 @@ public:
 	void cancelRequest(Request *request);
 
 	std::string configurationFile(const std::string &subdir,
-				      const std::string &name) const;
+				      const std::string &name,
+				      bool silent = false) const;
 
 	const char *name() const { return name_; }
 
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index caa5c20e74836956..d84dff3c9f198756 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -581,6 +581,7 @@ void PipelineHandler::cancelRequest(Request *request)
  * \brief Retrieve the absolute path to a platform configuration file
  * \param[in] subdir The pipeline handler specific subdirectory name
  * \param[in] name The configuration file name
+ * \param[in] silent Disable error messages
  *
  * This function locates a named platform configuration file and returns
  * its absolute path to the pipeline handler. It searches the following
@@ -596,7 +597,8 @@ void PipelineHandler::cancelRequest(Request *request)
  * string if no configuration file can be found
  */
 std::string PipelineHandler::configurationFile(const std::string &subdir,
-					       const std::string &name) const
+					       const std::string &name,
+					       bool silent) const
 {
 	std::string confPath;
 	struct stat statbuf;
@@ -626,9 +628,11 @@ std::string PipelineHandler::configurationFile(const std::string &subdir,
 	if (ret == 0 && (statbuf.st_mode & S_IFMT) == S_IFREG)
 		return confPath;
 
-	LOG(Pipeline, Error)
-		<< "Configuration file '" << confPath
-		<< "' not found for pipeline handler '" << PipelineHandler::name() << "'";
+	if (!silent)
+		LOG(Pipeline, Error)
+			<< "Configuration file '" << confPath
+			<< "' not found for pipeline handler '"
+			<< PipelineHandler::name() << "'";
 
 	return std::string();
 }

base-commit: d49a84a4f3aa63efc900564ff32558e4f5d85b04
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list