[RFC PATCH 4/6] libcamera: converter_v4l2_m2m: Add vertex mapping class
Umang Jain
umang.jain at ideasonboard.com
Fri Jul 12 07:29:18 CEST 2024
Add a vertex mapping protected class to V4L2M2M converter class.
Instances of this class will store a dewarp vertex mappings along
with their input/output configuration.
Add a vector of Mapping class and applyMapping() helper as well,
to apply relevant mappings to V4L2Stream. ConverterDW100 will
use this helper to set vertex maps, in subsequent patch.
Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
---
.../internal/converter/converter_v4l2_m2m.h | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/include/libcamera/internal/converter/converter_v4l2_m2m.h b/include/libcamera/internal/converter/converter_v4l2_m2m.h
index 2697eed9..f61beef8 100644
--- a/include/libcamera/internal/converter/converter_v4l2_m2m.h
+++ b/include/libcamera/internal/converter/converter_v4l2_m2m.h
@@ -61,6 +61,26 @@ public:
int setCrop(const Stream *stream, Rectangle *rect);
std::pair<Rectangle, Rectangle> getCropBounds(const Stream *stream);
+protected:
+ class Mapping
+ {
+ public:
+ Mapping(const Size &input, const Size &output, const std::vector<uint32_t> &map)
+ : input_(input), output_(output), map_(map) {}
+ Size inputSize() const { return input_; }
+ Size outputSize() const { return output_; }
+ std::size_t size() const { return map_.size(); }
+ const uint32_t *mapping() const { return map_.data(); }
+
+ private:
+ Size input_;
+ Size output_;
+ std::vector<uint32_t> map_;
+ };
+
+ int applyMapping(const Stream *stream, Mapping &mapping);
+ std::vector<Mapping> mappings_;
+
private:
class V4L2M2MStream : protected Loggable
{
--
2.45.0
More information about the libcamera-devel
mailing list