/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2021, Ideas on Board Oy * * image.h - Multi-planar image with access to pixel data */ #pragma once #include #include #include #include #include #include #include class Image { public: enum class MapMode { ReadOnly = 1 << 0, WriteOnly = 1 << 1, ReadWrite = ReadOnly | WriteOnly, }; static std::unique_ptr fromFrameBuffer(const libcamera::FrameBuffer *buffer, MapMode mode); ~Image(); unsigned int numPlanes() const; libcamera::Span data(unsigned int plane); libcamera::Span data(unsigned int plane) const; private: LIBCAMERA_DISABLE_COPY(Image) Image(); std::vector> maps_; std::vector> planes_; }; namespace libcamera { LIBCAMERA_FLAGS_ENABLE_OPERATORS(Image::MapMode) }