[libcamera-devel] [PATCH 1/2] libcamera: Add the fromV4L2PixelFormat method
Sebastian Fricke
sebastian.fricke.linux at gmail.com
Wed Dec 23 13:10:54 CET 2020
Add the method to get the corresponding bayer-format from a given
V4L2-pixel-format. Uses the existing mapping table.
Signed-off-by: Sebastian Fricke <sebastian.fricke.linux at gmail.com>
---
include/libcamera/internal/bayer_format.h | 1 +
src/libcamera/bayer_format.cpp | 14 ++++++++++++++
2 files changed, 15 insertions(+)
diff --git a/include/libcamera/internal/bayer_format.h b/include/libcamera/internal/bayer_format.h
index 4280b76b..a8060029 100644
--- a/include/libcamera/internal/bayer_format.h
+++ b/include/libcamera/internal/bayer_format.h
@@ -48,6 +48,7 @@ public:
std::string toString() const;
V4L2PixelFormat toV4L2PixelFormat() const;
+ BayerFormat fromV4L2PixelFormat(V4L2PixelFormat v4l2Format) const;
BayerFormat transform(Transform t) const;
Order order;
diff --git a/src/libcamera/bayer_format.cpp b/src/libcamera/bayer_format.cpp
index c42792ff..f4f0e8ca 100644
--- a/src/libcamera/bayer_format.cpp
+++ b/src/libcamera/bayer_format.cpp
@@ -217,6 +217,20 @@ V4L2PixelFormat BayerFormat::toV4L2PixelFormat() const
return V4L2PixelFormat();
}
+/**
+ * \brief Convert a V4L2PixelFormat into the corresponding BayerFormat
+ * \param[in] v4l2Format The raw format to convert into a BayerFormat
+ * \return The BayerFormat corresponding to the V4L2PixelFormat parameter
+ */
+BayerFormat BayerFormat::fromV4L2PixelFormat(V4L2PixelFormat v4l2Format) const
+{
+ const auto it = v4l2ToBayer.find(v4l2Format);
+ if (it != v4l2ToBayer.end())
+ return it->second;
+
+ return BayerFormat();
+}
+
/**
* \brief Apply a transform to this BayerFormat
* \param[in] t The transform to apply
--
2.29.2
More information about the libcamera-devel
mailing list