[libcamera-devel] [PATCH v6 0/9] android: Support capability and hardware level detection

Paul Elder paul.elder at ideasonboard.com
Fri Jul 30 12:35:27 CEST 2021


This patch series adds support for capability and hardware level
detection. It also adds the MaxLatency (SYNC_MAX_LATENCY) control.


New in v3, 1/9 adds a constructor for ControlInfo that takes boolean
values. In v4, this has been upgraded so that it actually works. In v5
it has been cleaned (?) a bit.

New in v4, 2/9 adds convenience functions to CameraMetadata, and 3/9
fixes some templates in CameraMetadata.

Patch 5/9 has the plumbing for capability detection. New in v4, at the
end we tally up all the requirements to enable capabilities, instead of
turning them off as we set the static metadata. This cleans up the code
a lot

New in v3, patch 6/9 adds helpers for setting android metadata for
libcamera controls, to help keep the HAL capability tracking cleaner.

New in v4, patch 7/9 moves static and request and result keys into a
set and member variable of CameraCapabilities, to ease adding new
controls later.

New in v4, patch 8/9 adds skeletal manual and still request templates.

Patch 9/9 adds the MaxLatency control, and plumbs it into the
capabilities.

Paul Elder (9):
  controls: Add boolean constructors for ControlInfo
  android: metadata: Add hasEntry and entryContains
  android: metadata: Fix addEntry template type
  android: jpeg: get ISO from SENSOR_SENSITIVITY
  android: Add infrastructure for determining capabilities and hardware
    level
  android: Add helpers for setting android metadata from libcamera
    controls
  android: capabilities: Make keys list into set and member variable
  android: Add skeletal still and manual request templates
  android, controls: Add and plumb MaxLatency control

 include/libcamera/controls.h             |   3 +
 src/android/camera_capabilities.cpp      | 581 +++++++++++++++++------
 src/android/camera_capabilities.h        |  18 +
 src/android/camera_device.cpp            |   7 +-
 src/android/camera_metadata.cpp          |  20 +
 src/android/camera_metadata.h            |   7 +-
 src/android/jpeg/post_processor_jpeg.cpp |   5 +-
 src/libcamera/control_ids.yaml           |  10 +
 src/libcamera/controls.cpp               |  29 ++
 test/controls/control_info.cpp           |  33 ++
 10 files changed, 562 insertions(+), 151 deletions(-)

-- 
2.27.0



More information about the libcamera-devel mailing list