/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2019, Google Inc. * * framebuffer_allocator.h - FrameBuffer allocator */ #ifndef __LIBCAMERA_FRAMEBUFFER_ALLOCATOR_H__ #define __LIBCAMERA_FRAMEBUFFER_ALLOCATOR_H__ #include #include #include #include namespace libcamera { class Camera; class FrameBuffer; class Stream; class FrameBufferAllocator { public: FrameBufferAllocator(std::shared_ptr camera); ~FrameBufferAllocator(); int allocate(Stream *stream); int free(Stream *stream); bool allocated() const { return !buffers_.empty(); } const std::vector> &buffers(Stream *stream) const; private: LIBCAMERA_DISABLE_COPY(FrameBufferAllocator) std::shared_ptr camera_; std::map>> buffers_; }; } /* namespace libcamera */ #endif /* __LIBCAMERA_FRAMEBUFFER_ALLOCATOR_H__ */