libcamera  v0.0.0
Supporting cameras in Linux since 2019
Classes | Macros
pipeline_handler.h File Reference

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

#include <list>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <sys/types.h>
#include <vector>
#include <libcamera/controls.h>
#include <libcamera/object.h>
#include <libcamera/stream.h>
#include "libcamera/internal/ipa_proxy.h"

Go to the source code of this file.

Classes

class  libcamera::CameraData
 Base class for platform-specific data associated with a camera. More...
 
class  libcamera::PipelineHandler
 Create and manage cameras based on a set of media devices. More...
 
class  libcamera::PipelineHandlerFactory
 Registration of PipelineHandler classes and creation of instances. More...
 

Macros

#define REGISTER_PIPELINE_HANDLER(handler)
 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)
Value:
class handler##Factory final : public PipelineHandlerFactory \
{ \
public: \
handler##Factory() : PipelineHandlerFactory(#handler) {} \
\
private: \
PipelineHandler *createInstance(CameraManager *manager) \
{ \
return new handler(manager); \
} \
}; \
static handler##Factory global_##handler##Factory;

Register a pipeline handler with the pipeline handler factory.

Parameters
[in]handlerClass name of PipelineHandler derived class to register

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