/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2019, Google Inc. * Copyright (C) 2020, Raspberry Pi (Trading) Ltd. * * v4l2_pixelformat.h - V4L2 Pixel Format */ #pragma once #include #include #include #include #include namespace libcamera { class V4L2PixelFormat { public: struct Info { PixelFormat format; const char *description; }; V4L2PixelFormat() : fourcc_(0) { } explicit V4L2PixelFormat(uint32_t fourcc) : fourcc_(fourcc) { } bool isValid() const { return fourcc_ != 0; } uint32_t fourcc() const { return fourcc_; } operator uint32_t() const { return fourcc_; } std::string toString() const; const char *description() const; PixelFormat toPixelFormat() const; static V4L2PixelFormat fromPixelFormat(const PixelFormat &pixelFormat, bool multiplanar = false); private: uint32_t fourcc_; }; std::ostream &operator<<(std::ostream &out, const V4L2PixelFormat &f); } /* namespace libcamera */