[libcamera-devel] [PATCH v4 0/3] Add HeapAllocator

Harvey Yang chenghaoyang at chromium.org
Tue Mar 28 11:55:31 CEST 2023


Hi all,

The series of patches added HeapAllocator, which uses DmaHeap (moved
from Raspberry Pi pipeline handler) and UdmaHeap to allocate heap
buffers.

I've updated and tested it on my virtual pipeline handler.
HeapAllocator creates buffer as a direct multiple of the page size,
and create planes according to the stream configuration.

I think the patch is ready to be reviewed. Please take a look, thanks!

BR,
Harvey

Cheng-Hao Yang (3):
  libcamera: Move DmaHeap to HeapAllocator as a base class
  libcamera: Add UdmaHeap if DmaHeap is not valid
  libcamera: Add exportFrameBuffers in HeapAllocator

 include/libcamera/dma_heap.h                  |  20 +++
 include/libcamera/heap.h                      |  27 ++++
 include/libcamera/heap_allocator.h            |  41 ++++++
 include/libcamera/meson.build                 |   4 +
 include/libcamera/udma_heap.h                 |  20 +++
 .../dma_heaps.cpp => dma_heap.cpp}            |  35 +++---
 src/libcamera/heap_allocator.cpp              | 102 +++++++++++++++
 src/libcamera/meson.build                     |   3 +
 .../pipeline/raspberrypi/dma_heaps.h          |  32 -----
 .../pipeline/raspberrypi/meson.build          |   1 -
 .../pipeline/raspberrypi/raspberrypi.cpp      |  10 +-
 src/libcamera/udma_heap.cpp                   | 117 ++++++++++++++++++
 12 files changed, 355 insertions(+), 57 deletions(-)
 create mode 100644 include/libcamera/dma_heap.h
 create mode 100644 include/libcamera/heap.h
 create mode 100644 include/libcamera/heap_allocator.h
 create mode 100644 include/libcamera/udma_heap.h
 rename src/libcamera/{pipeline/raspberrypi/dma_heaps.cpp => dma_heap.cpp} (69%)
 create mode 100644 src/libcamera/heap_allocator.cpp
 delete mode 100644 src/libcamera/pipeline/raspberrypi/dma_heaps.h
 create mode 100644 src/libcamera/udma_heap.cpp

-- 
2.40.0



More information about the libcamera-devel mailing list