Files
external_libcamera/include/libcamera/pixelformats.h
Kaaira Gupta 72278369b3 libcamera: pixelformats: Replace set of modifiers with single value
DRM fourccs look like they have a per-plane modifier, but in fact each
of them should be same. Hence instead of passing a set of modifiers for
each fourcc in PixelFormat class, we can pass just a single modifier.
So, replace the set with a single value.

Signed-off-by: Kaaira Gupta <kgupta@es.iitr.ac.in>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
[Fix compilation error in src/libcamera/pipeline/ipu3/ipu3.cpp]
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2020-04-04 00:39:44 +03:00

44 lines
957 B
C++

/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2019, Google Inc.
*
* pixelformats.h - libcamera pixel formats
*/
#ifndef __LIBCAMERA_PIXEL_FORMATS_H__
#define __LIBCAMERA_PIXEL_FORMATS_H__
#include <set>
#include <stdint.h>
#include <string>
#include <linux/drm_fourcc.h>
namespace libcamera {
class PixelFormat
{
public:
PixelFormat();
explicit PixelFormat(uint32_t fourcc, uint64_t modifier = 0);
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_; }
uint64_t modifier() const { return modifier_; }
std::string toString() const;
private:
uint32_t fourcc_;
uint64_t modifier_;
};
} /* namespace libcamera */
#endif /* __LIBCAMERA_PIXEL_FORMATS_H__ */