[libcamera-devel] [PATCH] libcamera: v4l2_pixelformat: Implement std::hash specialization
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Aug 2 21:47:05 CEST 2022
Inject a specialization of std::hash<> for the V4L2PixelFormat class in
the std namespace to make it possible to store instances of the class in
the std::unordered_map and std::unordered_set containers.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
include/libcamera/internal/v4l2_pixelformat.h | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/include/libcamera/internal/v4l2_pixelformat.h b/include/libcamera/internal/v4l2_pixelformat.h
index d5400f90a67e..fcc1dadd4de0 100644
--- a/include/libcamera/internal/v4l2_pixelformat.h
+++ b/include/libcamera/internal/v4l2_pixelformat.h
@@ -8,6 +8,7 @@
#pragma once
+#include <functional>
#include <ostream>
#include <stdint.h>
#include <string>
@@ -55,3 +56,15 @@ private:
std::ostream &operator<<(std::ostream &out, const V4L2PixelFormat &f);
} /* namespace libcamera */
+
+namespace std {
+
+template<>
+struct hash<libcamera::V4L2PixelFormat> {
+ size_t operator()(libcamera::V4L2PixelFormat const &format) const noexcept
+ {
+ return hash<uint32_t>{}(format.fourcc());
+ }
+};
+
+} /* namespace std */
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list