[libcamera-devel] [PATCH v3 3/5] libcamera: Overload ==/!= operators for BayerFormats

Sebastian Fricke sebastian.fricke at posteo.net
Tue Jan 26 19:48:52 CET 2021


Enable to test two Bayer formats for equality by checking if the order
of the color channels, the bit depth of the pattern, and the packing
scheme match. Additionally, add the reverse operation (!=), which negates
the equality test result.

Signed-off-by: Sebastian Fricke <sebastian.fricke at posteo.net>
---
 include/libcamera/internal/bayer_format.h |  6 ++++++
 src/libcamera/bayer_format.cpp            | 17 +++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/include/libcamera/internal/bayer_format.h b/include/libcamera/internal/bayer_format.h
index 62814154..5b8c1dc9 100644
--- a/include/libcamera/internal/bayer_format.h
+++ b/include/libcamera/internal/bayer_format.h
@@ -57,6 +57,12 @@ public:
 	Packing packing;
 };
 
+bool operator==(const BayerFormat &lhs, const BayerFormat &rhs);
+static inline bool operator!=(const BayerFormat &lhs, const BayerFormat &rhs)
+{
+	return !(lhs == rhs);
+}
+
 } /* namespace libcamera */
 
 #endif /* __LIBCAMERA_INTERNAL_BAYER_FORMAT_H__ */
diff --git a/src/libcamera/bayer_format.cpp b/src/libcamera/bayer_format.cpp
index 1acf91d4..d4e7f142 100644
--- a/src/libcamera/bayer_format.cpp
+++ b/src/libcamera/bayer_format.cpp
@@ -215,6 +215,23 @@ std::string BayerFormat::toString() const
 	return result;
 }
 
+/**
+ * \brief Compare two BayerFormats for equality
+ * \return True if order, bitDepth and packing are equal, otherwise false.
+ */
+bool operator==(const BayerFormat &lhs, const BayerFormat &rhs)
+{
+	return lhs.order == rhs.order && lhs.bitDepth == rhs.bitDepth &&
+	       lhs.packing == rhs.packing;
+}
+
+/**
+ * \fn bool operator!=(const BayerFormat &lhs, const BayerFormat &rhs)
+ * \brief Compare two BayerFormats for inequality
+ * \return True if either order, bitdepth or packing are not equal, otherwise
+ * false.
+ */
+
 /**
  * \brief Convert a BayerFormat into the corresponding V4L2PixelFormat
  * \return The V4L2PixelFormat corresponding to this BayerFormat
-- 
2.25.1



More information about the libcamera-devel mailing list