libcamera  v0.3.1+12-19bbca3c
Supporting cameras in Linux since 2019
Classes | Namespaces | Macros
pipeline_handler.h File Reference

Create pipelines and cameras from a set of media devices. More...

#include <memory>
#include <queue>
#include <set>
#include <string>
#include <sys/types.h>
#include <vector>
#include <libcamera/base/mutex.h>
#include <libcamera/base/object.h>
#include <libcamera/controls.h>
#include <libcamera/stream.h>
#include "libcamera/internal/ipa_proxy.h"
Include dependency graph for pipeline_handler.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  libcamera::PipelineHandler
 Create and manage cameras based on a set of media devices. More...
 
class  libcamera::PipelineHandlerFactoryBase
 Base class for pipeline handler factories. More...
 
class  libcamera::PipelineHandlerFactory< _PipelineHandler >
 Registration of PipelineHandler classes and creation of instances. More...
 

Namespaces

 libcamera
 Top-level libcamera namespace.
 

Macros

#define REGISTER_PIPELINE_HANDLER(handler, name)   static PipelineHandlerFactory<handler> global_##handler##Factory(name);
 Register a pipeline handler with the pipeline handler factory. More...
 

Detailed Description

Create pipelines and cameras from a set of media devices.

Each pipeline supported by libcamera needs to be backed by a pipeline handler implementation that operate on a set of media devices. The pipeline handler is responsible for matching the media devices it requires with the devices present in the system, and once all those devices can be acquired, create corresponding Camera instances.

Every subclass of PipelineHandler shall be registered with libcamera using the REGISTER_PIPELINE_HANDLER() macro.

Macro Definition Documentation

◆ REGISTER_PIPELINE_HANDLER

#define REGISTER_PIPELINE_HANDLER (   handler,
  name 
)    static PipelineHandlerFactory<handler> global_##handler##Factory(name);

Register a pipeline handler with the pipeline handler factory.

Parameters
[in]handlerClass name of PipelineHandler derived class to register
[in]nameName assigned to the pipeline handler, matching the pipeline subdirectory name in the source tree.

Register a PipelineHandler subclass with the factory and make it available to try and match devices.