17#include "libcamera/internal/converter/converter_dw100_vertexmap.h"
37 const std::vector<std::reference_wrapper<StreamConfiguration>>
47 std::vector<std::unique_ptr<FrameBuffer>> *buffers);
51 const std::map<const Stream *, FrameBuffer *> &outputs);
74 std::vector<double> coeffs;
77 struct VertexMapInfo {
82 std::map<const Stream *, VertexMapInfo> vertexMaps_;
83 std::optional<DewarpParms> dewarpParams_;
84 unsigned int inputBufferCount_;
85 V4L2M2MConverter converter_;
86 Rectangle sensorCrop_;
89 std::vector<std::unique_ptr<V4L2Request>> requests_;
90 std::queue<V4L2Request *> availableRequests_;
std::unordered_map< const ControlId *, ControlInfo > Map
The base std::unsorted_map<> container.
Definition controls.h:367
Associate a list of ControlId with their values for an object.
Definition controls.h:409
A converter module for the dw100 dewarper.
Definition converter_dw100.h:28
Signal< FrameBuffer * > inputBufferReady
A signal emitted when the input frame buffer completes.
Definition converter_dw100.h:63
int validateOutput(StreamConfiguration *cfg, bool *adjusted, Converter::Alignment align=Converter::Alignment::Down)
Validate and possibily adjust cfg to a valid converter output.
Definition converter_dw100.cpp:213
static std::unique_ptr< ConverterDW100Module > createModule(DeviceEnumerator *enumerator)
Create a ConverterDW100Module.
Definition converter_dw100.cpp:53
int init(const YamlObject ¶ms)
Initialize the module with configuration data.
Definition converter_dw100.cpp:100
void setControls(const Stream *stream, const ControlList &controls)
Set libcamera controls.
Definition converter_dw100.cpp:364
Size adjustOutputSize(const PixelFormat &pixFmt, const Size &size, Converter::Alignment align=Converter::Alignment::Down)
Adjust the converter output size to a valid value.
Definition converter_dw100.cpp:194
int start()
Start the converter streaming operation.
Definition converter_dw100.cpp:278
void setTransform(const Stream *stream, const Transform &transform)
Set transform.
Definition converter_dw100.cpp:447
Signal< FrameBuffer * > outputBufferReady
A signal emitted on each frame buffer completion of the output queue.
Definition converter_dw100.h:64
void stop()
Stop the converter streaming operation.
Definition converter_dw100.cpp:317
void updateControlInfos(const Stream *stream, ControlInfoMap::Map &infos)
Update the controls.
Definition converter_dw100.cpp:333
int exportBuffers(const Stream *stream, unsigned int count, std::vector< std::unique_ptr< FrameBuffer > > *buffers)
Export buffers from the converter device.
Definition converter_dw100.cpp:204
bool isConfigured(const Stream *stream) const
Check if a given stream is configured.
Definition converter_dw100.cpp:176
Size adjustInputSize(const PixelFormat &pixFmt, const Size &size, Converter::Alignment align=Converter::Alignment::Down)
Adjust the converter input size to a valid value.
Definition converter_dw100.cpp:184
int configure(const StreamConfiguration &inputCfg, const std::vector< std::reference_wrapper< StreamConfiguration > > &outputCfg)
Configure a set of output stream conversion from an input stream.
Definition converter_dw100.cpp:144
void populateMetadata(const Stream *stream, ControlList &meta)
Retrieve updated metadata.
Definition converter_dw100.cpp:398
void setSensorCrop(const Rectangle &rect)
Set sensor crop rectangle.
Definition converter_dw100.cpp:429
int queueBuffers(FrameBuffer *input, const std::map< const Stream *, FrameBuffer * > &outputs)
Queue buffers to converter device.
Definition converter_dw100.cpp:234
Alignment
The alignment mode specified when adjusting the converter input or output sizes.
Definition converter.h:45
@ Down
Adjust the Converter sizes to a smaller valid size.
Enumerate, store and search media devices.
Definition device_enumerator.h:38
Helper class to compute dw100 vertex maps.
Definition converter_dw100_vertexmap.h:26
Frame buffer data and its associated dynamic metadata.
Definition framebuffer.h:50
Matrix class.
Definition matrix.h:31
Describe a rectangle's position and dimensions.
Definition geometry.h:247
Generic signal and slot communication mechanism.
Definition signal.h:39
Describe a two-dimensional size.
Definition geometry.h:51
Video stream for a camera.
Definition stream.h:76
V4L2Request object and API.
Definition v4l2_request.h:22
A class representing the tree structure of the YAML content.
Definition yaml_parser.h:28
Camera controls identifiers.
Framework to manage controls related to an object.
V4L2 M2M based converter.
Enumeration and matching of media devices.
Top-level libcamera namespace.
Definition backtrace.h:17
Transform
Enum to represent a 2D plane transform.
Definition transform.h:14
Configuration parameters for a stream.
Definition stream.h:40