[libcamera-devel] [PATCH/RFC 04/11] libcamera: pixel_format: Make PixelFormat usable as a constexpr
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri May 22 16:54:52 CEST 2020
The PixelFormat class is a lightweight wrapper around a 32-bit FourCC
and a 64-bit modifier. Make is usable as a constexpr.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
include/libcamera/pixel_format.h | 19 +++++++++++++------
src/libcamera/pixel_format.cpp | 10 ++--------
2 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/include/libcamera/pixel_format.h b/include/libcamera/pixel_format.h
index e3b371ef92bb..8dfeb8922418 100644
--- a/include/libcamera/pixel_format.h
+++ b/include/libcamera/pixel_format.h
@@ -18,18 +18,25 @@ namespace libcamera {
class PixelFormat
{
public:
- PixelFormat();
- explicit PixelFormat(uint32_t fourcc, uint64_t modifier = 0);
+ constexpr PixelFormat()
+ : fourcc_(0), modifier_(0)
+ {
+ }
+
+ explicit constexpr PixelFormat(uint32_t fourcc, uint64_t modifier = 0)
+ : fourcc_(fourcc), modifier_(modifier)
+ {
+ }
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; }
+ constexpr bool isValid() const { return fourcc_ != 0; }
- operator uint32_t() const { return fourcc_; }
- uint32_t fourcc() const { return fourcc_; }
- uint64_t modifier() const { return modifier_; }
+ constexpr operator uint32_t() const { return fourcc_; }
+ constexpr uint32_t fourcc() const { return fourcc_; }
+ constexpr uint64_t modifier() const { return modifier_; }
std::string toString() const;
diff --git a/src/libcamera/pixel_format.cpp b/src/libcamera/pixel_format.cpp
index d8718739152d..d501c5f09c6b 100644
--- a/src/libcamera/pixel_format.cpp
+++ b/src/libcamera/pixel_format.cpp
@@ -25,25 +25,19 @@ namespace libcamera {
*/
/**
+ * \fn PixelFormat::PixelFormat()
* \brief Construct a PixelFormat with an invalid format
*
* PixelFormat instances constructed with the default constructor are
* invalid, calling the isValid() function returns false.
*/
-PixelFormat::PixelFormat()
- : fourcc_(0)
-{
-}
/**
+ * \fn PixelFormat::PixelFormat(uint32_t fourcc, uint64_t modifier)
* \brief Construct a PixelFormat from a DRM FourCC and a modifier
* \param[in] fourcc A DRM FourCC
* \param[in] modifier A DRM FourCC modifier
*/
-PixelFormat::PixelFormat(uint32_t fourcc, uint64_t modifier)
- : fourcc_(fourcc), modifier_(modifier)
-{
-}
/**
* \brief Compare pixel formats for equality
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list