[libcamera-devel] [PATCH 23/23] libcamera: PipelineHandler: Move printing pipeline names to CameraManager
Paul Elder
paul.elder at ideasonboard.com
Tue Sep 15 16:20:38 CEST 2020
Since pipeline registration is done with declaring static factory
objects, there is a risk that pipeline factories will be constructed
before libcamera facilities are ready. For example, logging in the
constructor of a pipeline handler factory may cause a segfault if
threading isn't ready yet. Avoid this issue by moving printing the
registration of the pipeline handler to the camera manager.
Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
---
src/libcamera/camera_manager.cpp | 2 ++
src/libcamera/pipeline_handler.cpp | 3 ---
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index b8d3ccc8..e5af271d 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -142,6 +142,8 @@ void CameraManager::Private::createPipelineHandlers()
PipelineHandlerFactory::factories();
for (PipelineHandlerFactory *factory : factories) {
+ LOG(Camera, Debug)
+ << "Found registered pipeline handler \"" << factory->name() << "\"";
/*
* Try each pipeline handler until it exhaust
* all pipelines it can provide.
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index 918aea1e..894200ee 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -689,9 +689,6 @@ void PipelineHandlerFactory::registerType(PipelineHandlerFactory *factory)
std::vector<PipelineHandlerFactory *> &factories = PipelineHandlerFactory::factories();
factories.push_back(factory);
-
- LOG(Pipeline, Debug)
- << "Registered pipeline handler \"" << factory->name() << "\"";
}
/**
--
2.27.0
More information about the libcamera-devel
mailing list