libcamera  v0.3.2+116-83c5ad0f
Supporting cameras in Linux since 2019
pixel_format.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 /*
3  * Copyright (C) 2019, Google Inc.
4  *
5  * libcamera Pixel Format
6  */
7 
8 #pragma once
9 
10 #include <ostream>
11 #include <stdint.h>
12 #include <string>
13 
14 namespace libcamera {
15 
17 {
18 public:
19  constexpr PixelFormat()
20  : fourcc_(0), modifier_(0)
21  {
22  }
23 
24  explicit constexpr PixelFormat(uint32_t fourcc, uint64_t modifier = 0)
25  : fourcc_(fourcc), modifier_(modifier)
26  {
27  }
28 
29  bool operator==(const PixelFormat &other) const;
30  bool operator!=(const PixelFormat &other) const { return !(*this == other); }
31  bool operator<(const PixelFormat &other) const;
32 
33  constexpr bool isValid() const { return fourcc_ != 0; }
34 
35  constexpr operator uint32_t() const { return fourcc_; }
36  constexpr uint32_t fourcc() const { return fourcc_; }
37  constexpr uint64_t modifier() const { return modifier_; }
38 
39  std::string toString() const;
40 
41  static PixelFormat fromString(const std::string &name);
42 
43 private:
44  uint32_t fourcc_;
45  uint64_t modifier_;
46 };
47 
48 std::ostream &operator<<(std::ostream &out, const PixelFormat &f);
49 
50 } /* namespace libcamera */
static PixelFormat fromString(const std::string &name)
Create a PixelFormat from a string.
Definition: pixel_format.cpp:138
libcamera image pixel format
Definition: pixel_format.h:16
bool operator==(const PixelFormat &other) const
Compare pixel formats for equality.
Definition: pixel_format.cpp:50
Top-level libcamera namespace.
Definition: bound_method.h:15
constexpr PixelFormat()
Construct a PixelFormat with an invalid format.
Definition: pixel_format.h:19
constexpr bool isValid() const
Check if the pixel format is valid.
Definition: pixel_format.h:33
bool operator!=(const PixelFormat &other) const
Compare pixel formats for inequality.
Definition: pixel_format.h:30
std::ostream & operator<<(std::ostream &out, const Point &p)
Insert a text representation of a Point into an output stream.
Definition: geometry.cpp:91
constexpr uint32_t fourcc() const
Retrieve the pixel format FourCC.
Definition: pixel_format.h:36
bool operator<(const PixelFormat &other) const
Compare pixel formats for smaller than order.
Definition: pixel_format.cpp:65
constexpr PixelFormat(uint32_t fourcc, uint64_t modifier=0)
Construct a PixelFormat from a DRM FourCC and a modifier.
Definition: pixel_format.h:24
std::string toString() const
Assemble and return a string describing the pixel format.
Definition: pixel_format.cpp:107
constexpr uint64_t modifier() const
Retrieve the pixel format modifier.
Definition: pixel_format.h:37