28 class FrameBufferAllocator;
29 class PipelineHandler;
41 using iterator = std::vector<StreamConfiguration>::iterator;
66 std::size_t
size()
const;
75 StreamsShareColorSpace,
85 class Camera final :
public Object,
public std::enable_shared_from_this<Camera>,
91 static std::shared_ptr<Camera> create(std::unique_ptr<Private> d,
92 const std::string &
id,
93 const std::set<Stream *> &streams);
95 const std::string &id()
const;
107 const std::set<Stream *> &streams()
const;
108 std::unique_ptr<CameraConfiguration> generateConfiguration(
const StreamRoles &roles = {});
111 std::unique_ptr<Request> createRequest(uint64_t cookie = 0);
112 int queueRequest(
Request *request);
120 Camera(std::unique_ptr<Private> d,
const std::string &
id,
121 const std::set<Stream *> &streams);
126 void requestComplete(
Request *request);
129 int exportFrameBuffers(
Stream *stream,
130 std::vector<std::unique_ptr<FrameBuffer>> *buffers);
Utilities to help constructing class interfaces.
std::vector< StreamRole > StreamRoles
A vector of StreamRole.
Definition: stream.h:71
FrameBuffer allocator for applications.
Definition: framebuffer_allocator.h:22
std::size_t size() const
Retrieve the number of stream configurations.
Definition: camera.cpp:315
Transform transform
User-specified transform to be applied to the image.
Definition: camera.h:68
Video stream for a camera.
Definition: stream.h:73
Top-level libcamera namespace.
Definition: backtrace.h:17
void addConfiguration(const StreamConfiguration &cfg)
Add a stream configuration to the camera configuration.
Definition: camera.cpp:175
bool empty() const
Check if the camera configuration is empty.
Definition: camera.cpp:306
Status validateColorSpaces(ColorSpaceFlags flags=ColorSpaceFlag::None)
Check the color spaces requested for each stream.
Definition: camera.cpp:366
std::vector< StreamConfiguration >::iterator iterator
Iterator for the stream configurations in the camera configuration.
Definition: camera.h:41
Status
Validity of a camera configuration.
Definition: camera.h:35
Transform
Enum to represent a 2D plane transform.
Definition: transform.h:14
Video stream for a Camera.
Hold configuration for streams of the camera.
Definition: camera.h:32
const StreamConfiguration & operator[](unsigned int index) const
Retrieve a const reference to a stream configuration.
Definition: camera.h:55
StreamConfiguration & at(unsigned int index)
Retrieve a reference to a stream configuration.
Definition: camera.cpp:217
A map of ControlId to ControlInfo.
Definition: controls.h:304
#define LIBCAMERA_DECLARE_PRIVATE()
Declare private data for a public class.
virtual Status validate()=0
Validate and possibly adjust the camera configuration.
A frame capture request.
Definition: request.h:30
#define LIBCAMERA_DISABLE_COPY(klass)
Disable copy construction and assignment of the klass.
Signal & slot implementation.
ColorSpaceFlag
Specify the behaviour of validateColorSpaces.
Definition: camera.h:73
Create and manage cameras based on a set of media devices.
Definition: pipeline_handler.h:37
Camera device.
Definition: camera.h:85
Base class to manage private data through a d-pointer.
Definition: class.h:61
const ControlIdMap properties
List of all supported libcamera properties.
Definition: property_ids.cpp:802
iterator begin()
Retrieve an iterator to the first stream configuration in the sequence.
Definition: camera.cpp:266
Signal< Request *, FrameBuffer * > bufferCompleted
Signal emitted when a buffer for a request queued to the camera has completed.
Definition: camera.h:97
Base object to support automatic signal disconnection.
Generic signal and slot communication mechanism.
Definition: object.h:20
CameraConfiguration()
Create an empty camera configuration.
Definition: camera.cpp:162
const ControlIdMap controls
List of all supported libcamera controls.
Definition: control_ids.cpp:1301
Describes a frame capture request to be processed by a camera.
Signal disconnected
Signal emitted when the camera is disconnected from the system.
Definition: camera.h:99
Associate a list of ControlId with their values for an object.
Definition: controls.h:348
Framework to manage controls related to an object.
Signal< Request * > requestCompleted
Signal emitted when a request queued to the camera has completed.
Definition: camera.h:98
Type-safe container for enum-based bitfields.
Definition: flags.h:15
iterator end()
Retrieve an iterator pointing to the past-the-end stream configuration in the sequence.
Definition: camera.cpp:286
Base object to support automatic signal disconnection.
Definition: object.h:24
StreamConfiguration & operator[](unsigned int index)
Retrieve a reference to a stream configuration.
Definition: camera.h:51
std::vector< StreamConfiguration > config_
The vector of stream configurations.
Definition: camera.h:82
Configuration parameters for a stream.
Definition: stream.h:40
std::vector< StreamConfiguration >::const_iterator const_iterator
Const iterator for the stream configuration in the camera configuration.
Definition: camera.h:42