[libcamera-devel,00/10] Support memory backends
mbox series

Message ID 20210301150111.61791-1-jacopo@jmondi.org
Headers show
Series
  • Support memory backends
Related show

Message

Jacopo Mondi March 1, 2021, 3:01 p.m. UTC
Hello
  v2 takes into account comments received from Laurent

- Introduce an android_platform combo option in place of android_memory_backend
- Implement PIMPL using libcamera::Extensible in place of the custom
  implementation
- Use libcamera::Span<> in the CameraBuffer interface
- Minor style fixups

The biggest controversy is now patch 8/10: how to maintain compatibility with
the existing generic implementation. I left the patch as it was to collect more
feedback but I don't feel strongly attached to it (the contrary :)

Tested by

- JPEG capture with CCA on ChromeOS
  - Works with the generic backend as it used to
  - Works with the cbm backend

- CTS android.hardware.camera2.cts.ImageReaderTest with cbm backend making sure
  the calculated buffer size is correct ( aka < maxJpegBufferSize)

- Picture capture with OpenCamera which results in a well formed picture

Thanks
   j

Jacopo Mondi (10):
  meson: options: Add option to select the Android platform
  android: Introduce CameraBuffer interface
  android: camera_buffer: Drop 'const' from buffer_handle_t
  android: camera_device: Rename buffer fields
  android: Move buffer mapping to CameraStream
  android: camera_buffer: Implement libcamera::Extensible
  android: post_processor: Use CameraBuffer API
  android: jpeg: Use maxJpegBufferSize() for compatibility
  android: mm: Provide helper macro for PIMPL
  android: Introduce Chromium OS buffer manager

 meson_options.txt                        |   6 +
 src/android/camera_buffer.h              |  59 ++++++++++
 src/android/camera_device.cpp            |  51 +-------
 src/android/camera_device.h              |   6 -
 src/android/camera_stream.cpp            |  16 ++-
 src/android/camera_stream.h              |   2 +-
 src/android/jpeg/post_processor_jpeg.cpp |  29 +++--
 src/android/jpeg/post_processor_jpeg.h   |   2 +-
 src/android/meson.build                  |   2 +
 src/android/mm/cros_camera_buffer.cpp    | 141 +++++++++++++++++++++++
 src/android/mm/generic_camera_buffer.cpp |  89 ++++++++++++++
 src/android/mm/meson.build               |   9 ++
 src/android/post_processor.h             |   4 +-
 src/android/yuv/post_processor_yuv.cpp   |  20 ++--
 src/android/yuv/post_processor_yuv.h     |   6 +-
 15 files changed, 357 insertions(+), 85 deletions(-)
 create mode 100644 src/android/camera_buffer.h
 create mode 100644 src/android/mm/cros_camera_buffer.cpp
 create mode 100644 src/android/mm/generic_camera_buffer.cpp
 create mode 100644 src/android/mm/meson.build

--
2.30.0