diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-08-02 22:47:05 +0300 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2022-08-03 15:07:20 +0200 |
commit | 29c09e3ab6c18c649d8510a1faee6c5a2b52c04a (patch) | |
tree | 1bc45a2900b1c539f4a2b0b116e0896407b05325 | |
parent | b7ca378b65e8ba936bf3c5631e16534a3376aec9 (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.h | 13 |
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 */ |