diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/libcamera/pixelformats.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/include/libcamera/pixelformats.h b/include/libcamera/pixelformats.h index 544363af..eb40e55a 100644 --- a/include/libcamera/pixelformats.h +++ b/include/libcamera/pixelformats.h @@ -7,13 +7,36 @@ #ifndef __LIBCAMERA_PIXEL_FORMATS_H__ #define __LIBCAMERA_PIXEL_FORMATS_H__ +#include <set> #include <stdint.h> +#include <string> #include <linux/drm_fourcc.h> namespace libcamera { -using PixelFormat = uint32_t; +class PixelFormat +{ +public: + PixelFormat(); + PixelFormat(uint32_t fourcc, const std::set<uint64_t> &modifiers = {}); + + bool operator==(const PixelFormat &other) const; + bool operator!=(const PixelFormat &other) const { return !(*this == other); } + bool operator<(const PixelFormat &other) const; + + bool isValid() const { return fourcc_ != 0; } + + operator uint32_t() const { return fourcc_; } + uint32_t fourcc() const { return fourcc_; } + const std::set<uint64_t> &modifiers() const { return modifiers_; } + + std::string toString() const; + +private: + uint32_t fourcc_; + std::set<uint64_t> modifiers_; +}; } /* namespace libcamera */ |