summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-08-02 22:47:05 +0300
committerJacopo Mondi <jacopo@jmondi.org>2022-08-03 15:07:20 +0200
commit29c09e3ab6c18c649d8510a1faee6c5a2b52c04a (patch)
tree1bc45a2900b1c539f4a2b0b116e0896407b05325
parentb7ca378b65e8ba936bf3c5631e16534a3376aec9 (diff)
libcamera: v4l2_pixelformat: Implement std::hash specialization
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@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Tested-by: Paul Elder <paul.elder@ideasonboard.com>
-rw-r--r--include/libcamera/internal/v4l2_pixelformat.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/libcamera/internal/v4l2_pixelformat.h b/include/libcamera/internal/v4l2_pixelformat.h
index d5400f90..34d283db 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 format.fourcc();
+ }
+};
+
+} /* namespace std */