[libcamera-devel] [PATCH 03/38] libcamera: PipelineHandler: Move printing pipeline names to CameraManager
paul.elder at ideasonboard.com
paul.elder at ideasonboard.com
Thu Sep 24 02:53:38 CEST 2020
Hi Jacopo,
On Wed, Sep 23, 2020 at 12:41:15PM +0200, Jacopo Mondi wrote:
> Hi Paul,
>
> On Tue, Sep 22, 2020 at 10:35:02PM +0900, Paul Elder wrote:
> > 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.
>
> Did you ever see this happening ?
Yes, this did actually happen...
> > Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
> Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks,
Paul
> >
> > ---
> > Cosmetic changes in v2
> > ---
> > src/libcamera/camera_manager.cpp | 3 +++
> > src/libcamera/pipeline_handler.cpp | 3 ---
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
> > index b8d3ccc8..756f5b2b 100644
> > --- a/src/libcamera/camera_manager.cpp
> > +++ b/src/libcamera/camera_manager.cpp
> > @@ -142,6 +142,9 @@ 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
> >
> > _______________________________________________
> > libcamera-devel mailing list
> > libcamera-devel at lists.libcamera.org
> > https://lists.libcamera.org/listinfo/libcamera-devel
More information about the libcamera-devel
mailing list