36 bool isValid()
const {
return providerHandle_.isValid(); }
40 const std::vector<unsigned int> &planeSizes,
41 std::vector<std::unique_ptr<FrameBuffer>> *buffers);
44 std::unique_ptr<FrameBuffer> createBuffer(
45 std::string name,
const std::vector<unsigned int> &planeSizes);
47 UniqueFD allocFromHeap(
const char *name, std::size_t size);
48 UniqueFD allocFromUDmaBuf(
const char *name, std::size_t size);
72 void sync(uint64_t step);
#define LIBCAMERA_DISABLE_COPY(klass)
Disable copy construction and assignment of the klass.
Definition class.h:27
bool isValid() const
Check if the DmaBufAllocator instance is valid.
Definition dma_buf_allocator.h:36
int exportBuffers(unsigned int count, const std::vector< unsigned int > &planeSizes, std::vector< std::unique_ptr< FrameBuffer > > *buffers)
Allocate and export buffers from the DmaBufAllocator.
Definition dma_buf_allocator.cpp:223
DmaBufAllocator(DmaBufAllocatorFlags flags=DmaBufAllocatorFlag::CmaHeap)
Construct a DmaBufAllocator of a given type.
Definition dma_buf_allocator.cpp:97
DmaBufAllocatorFlag
Type of the dma-buf provider.
Definition dma_buf_allocator.h:26
@ CmaHeap
Allocate from a CMA dma-heap, providing physically-contiguous memory.
Definition dma_buf_allocator.h:27
@ SystemHeap
Allocate from the system dma-heap, using the page allocator.
Definition dma_buf_allocator.h:28
@ UDmaBuf
Allocate using a memfd + /dev/udmabuf.
Definition dma_buf_allocator.h:29
Flags< DmaBufAllocatorFlag > DmaBufAllocatorFlags
A bitwise combination of DmaBufAllocator::DmaBufAllocatorFlag values.
Definition dma_buf_allocator.h:32
~DmaBufAllocator()
Destroy the DmaBufAllocator instance.
UniqueFD alloc(const char *name, std::size_t size)
Allocate a dma-buf from the DmaBufAllocator.
Definition dma_buf_allocator.cpp:200
SyncType
Read and/or write access via the CPU map.
Definition dma_buf_allocator.h:56
@ Write
Indicates that the mapped dm-buf will be written by the client via the CPU map.
Definition dma_buf_allocator.h:58
@ ReadWrite
Indicates that the mapped dma-buf will be read and written by the client via the CPU map.
Definition dma_buf_allocator.h:59
@ Read
Indicates that the mapped dma-buf will be read by the client via the CPU map.
Definition dma_buf_allocator.h:57
DmaSyncer(DmaSyncer &&other)=default
Enable move on class DmaSyncer.
DmaSyncer(SharedFD fd, SyncType type=SyncType::ReadWrite)
Construct a DmaSyncer with a dma-buf's fd and the access type.
Definition dma_buf_allocator.cpp:296
DmaSyncer & operator=(DmaSyncer &&other)=default
Enable move on class DmaSyncer.
Type-safe container for enum-based bitfields.
Definition flags.h:16
Frame buffer data and its associated dynamic metadata.
Definition framebuffer.h:49
RAII-style wrapper for file descriptors.
Definition shared_fd.h:17
unique_ptr-like wrapper for a file descriptor
Definition unique_fd.h:17
#define LIBCAMERA_FLAGS_ENABLE_OPERATORS(_enum)
Enable bitwise operations on the enum enumeration.
Definition flags.h:189
Top-level libcamera namespace.
Definition backtrace.h:17
File descriptor wrapper that owns a file descriptor.