[libcamera-devel,v3,00/13] android: JPEG support
mbox series

Message ID 20200804214711.177645-1-kieran.bingham@ideasonboard.com
Headers show
Series
  • android: JPEG support
Related show

Message

Kieran Bingham Aug. 4, 2020, 9:46 p.m. UTC
A revision of the recently posted JPEG support for the android layer,
this includes fixups to review comments and an addition of a test case
for the newly introduced mapped-buffers class.


With just these patches applied, the CCA application runs and can
capture an image successfully.

There is still plenty to do on top however:

 - The JPEG compression does not run in a separate thread
 - Added streams do not have buffering
 - RAW API could be used for JPEG compression
 - EXIF tag support is started but not included in this series.
 - No rescaler is supported yet


I believe all comments from previous review are integrated in this
version, and while there is still plenty more to do for JPEG, this is
headed towards a suitable base point.


Kieran Bingham (13):
  libcamera: buffer: Correct FrameBuffer references
  libcamera: formats: add numPlanes helper
  libcamera: buffer: Create a MappedBuffer
  test: mapped-buffers: Provide MappedBuffer test
  libcamera: buffer: Convert copyFrom to use MappedFrameBuffer
  android: camera_device: Fix trivial spelling
  android: camera_device: Report an error in notifyError()
  android: camera_device: Only construct required planes
  android: camera_device: Query plane length
  android: camera_device: Report configuration changes from validate()
  android: camera_device: Generate ResultMetadata earlier
  android: Introduce JPEG compression
  android: camera_device: Support MJPEG stream construction

 include/libcamera/internal/buffer.h  |  47 +++++
 include/libcamera/internal/formats.h |   2 +
 src/android/camera_device.cpp        | 290 ++++++++++++++++++++++++---
 src/android/camera_device.h          |  12 ++
 src/android/jpeg/compressor.h        |  28 +++
 src/android/jpeg/compressor_jpeg.cpp | 217 ++++++++++++++++++++
 src/android/jpeg/compressor_jpeg.h   |  45 +++++
 src/android/meson.build              |   1 +
 src/libcamera/buffer.cpp             | 205 ++++++++++++++++---
 src/libcamera/formats.cpp            |  18 ++
 src/libcamera/meson.build            |   2 +
 test/mapped-buffers.cpp              | 113 +++++++++++
 test/meson.build                     |   1 +
 13 files changed, 925 insertions(+), 56 deletions(-)
 create mode 100644 include/libcamera/internal/buffer.h
 create mode 100644 src/android/jpeg/compressor.h
 create mode 100644 src/android/jpeg/compressor_jpeg.cpp
 create mode 100644 src/android/jpeg/compressor_jpeg.h
 create mode 100644 test/mapped-buffers.cpp