/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2021, Google Inc. * * mapped_framebuffer.h - Frame buffer memory mapping support */ #ifndef __LIBCAMERA_INTERNAL_MAPPED_FRAMEBUFFER_H__ #define __LIBCAMERA_INTERNAL_MAPPED_FRAMEBUFFER_H__ #include #include #include #include #include namespace libcamera { class MappedBuffer { public: using Plane = Span; ~MappedBuffer(); MappedBuffer(MappedBuffer &&other); MappedBuffer &operator=(MappedBuffer &&other); bool isValid() const { return error_ == 0; } int error() const { return error_; } const std::vector &maps() const { return maps_; } protected: MappedBuffer(); int error_; std::vector maps_; private: LIBCAMERA_DISABLE_COPY(MappedBuffer) }; class MappedFrameBuffer : public MappedBuffer { public: MappedFrameBuffer(const FrameBuffer *buffer, int flags); }; } /* namespace libcamera */ #endif /* __LIBCAMERA_INTERNAL_MAPPED_FRAMEBUFFER_H__ */