libcamera: include/libcamera/pixel_format.h Source File

libcamera v0.5.0 Supporting cameras in Linux since 2019 |

Loading...
Searching...
No Matches
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
14namespace libcamera {
15
16 class PixelFormat
17{
18public:
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
43private:
44 uint32_t fourcc_;
45 uint64_t modifier_;
46};
47
48std::ostream &operator<<(std::ostream &out, const PixelFormat &f);
49
50} /* namespace libcamera */
libcamera::PixelFormat
libcamera image pixel format
Definition pixel_format.h:17
libcamera::PixelFormat::operator<
bool operator<(const PixelFormat &other) const
Compare pixel formats for smaller than order.
Definition pixel_format.cpp:65
libcamera::PixelFormat::fromString
static PixelFormat fromString(const std::string &name)
Create a PixelFormat from a string.
Definition pixel_format.cpp:138
libcamera::PixelFormat::isValid
constexpr bool isValid() const
Check if the pixel format is valid.
Definition pixel_format.h:33
libcamera::PixelFormat::PixelFormat
constexpr PixelFormat(uint32_t fourcc, uint64_t modifier=0)
Construct a PixelFormat from a DRM FourCC and a modifier.
Definition pixel_format.h:24
libcamera::PixelFormat::operator==
bool operator==(const PixelFormat &other) const
Compare pixel formats for equality.
Definition pixel_format.cpp:50
libcamera::PixelFormat::modifier
constexpr uint64_t modifier() const
Retrieve the pixel format modifier.
Definition pixel_format.h:37
libcamera::PixelFormat::operator!=
bool operator!=(const PixelFormat &other) const
Compare pixel formats for inequality.
Definition pixel_format.h:30
libcamera::PixelFormat::PixelFormat
constexpr PixelFormat()
Construct a PixelFormat with an invalid format.
Definition pixel_format.h:19
libcamera::PixelFormat::fourcc
constexpr uint32_t fourcc() const
Retrieve the pixel format FourCC.
Definition pixel_format.h:36
libcamera::PixelFormat::toString
std::string toString() const
Assemble and return a string describing the pixel format.
Definition pixel_format.cpp:107
libcamera
Top-level libcamera namespace.
Definition bound_method.h:15
libcamera::operator<<
std::ostream & operator<<(std::ostream &out, const Point &p)
Insert a text representation of a Point into an output stream.
Definition geometry.cpp:91