mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-22 16:15:09 +03:00
libcamera: PixelFormat: Turn into a class
Create a class to represent a pixel format. This is done to add support for modifiers for the formats. So far no modifiers are added by any pipeline handler, all plumbing to deal with them is however in place. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
4bc262ecaa
commit
8c0bbcd3d3
8 changed files with 127 additions and 18 deletions
|
@ -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 */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue