[libcamera-devel] [PATCH 0/8] android: camera_device: Allocate internal buffers

Jacopo Mondi jacopo at jmondi.org
Wed Sep 9 17:54:49 CEST 2020


This series adds to the CameraDevice class the ability to reserve buffers
on behalf of CameraStream instances used for post-processing purposes.

As the comments in patch 1/8 details, libcamera streams that are created
by the HAL to be processed to produce frames in Android required format need
to have memory allocated on their behalf by libcamera.

The series instruments the FrameBufferAllocator class with an interface
to get and return references to the FrameBuffer allocated in the internal pool.

CameraDevice gets instrumented with a FrameBufferAllocator which gets used
to provide buffers to HAL-created streams.

The series is developed on top of:
[PATCH v3 00/11] android: camera_device: Fix JPEG/RAW sizes

With these series, and the following patch applied:
[RFC] libcamera: ipu3: Always use sensor full frame size

this is the result of cros_camera_test:

[----------] 61 tests from Camera3StillCaptureTest/Camera3JpegResolutionTest (43379 ms total)

[----------] Global test environment tear-down
[==========] 61 tests from 1 test suite ran. (43379 ms total)
[  PASSED  ] 59 tests.
[  FAILED  ] 2 tests, listed below:
[  FAILED  ] Camera3StillCaptureTest/Camera3JpegResolutionTest.JpegResolutionTest/4, where GetParam() = (0, 320x240, 4160x3104)
[  FAILED  ] Camera3StillCaptureTest/Camera3JpegResolutionTest.JpegResolutionTest/20, where GetParam() = (0, 4160x3104, 320x240)

Thanks
  j

Jacopo Mondi (8):
  android: camera_device: Add CameraStream::Type
  android: camera_device: Add frame allocator
  libcamera: frame_buffer_allocator: Add clear()
  android: camera_device: Clear allocator at configureStream
  libcamera: framebuffer_allocator: Get and return buffers
  android: camera_device: Allocate buffer pool
  android: camera_device: Use libcamera buffer pool
  android: camera_device: Add stream mapping log

 include/libcamera/framebuffer_allocator.h |   6 ++
 src/android/camera_device.cpp             | 106 ++++++++++++++++++----
 src/android/camera_device.h               |  89 +++++++++++++++++-
 src/libcamera/framebuffer_allocator.cpp   |  68 +++++++++++++-
 4 files changed, 245 insertions(+), 24 deletions(-)

--
2.28.0



More information about the libcamera-devel mailing list