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

Paul Elder paul.elder at ideasonboard.com
Tue Jul 20 12:12:58 CEST 2021


Used to be "Preliminary FULL plumbing"

We've graduated from RFC and "preliminary"! \o/

This series depends on "android: Drive-by cleanups".

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

I've split out this series from the old one as I want this half merged
first. I think it'll take at least another version, though.


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      | 602 +++++++++++++++++------
 src/android/camera_capabilities.h        |  19 +
 src/android/camera_device.cpp            |   7 +-
 src/android/camera_metadata.cpp          |  18 +
 src/android/camera_metadata.h            |  17 +-
 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, 592 insertions(+), 151 deletions(-)

-- 
2.27.0



More information about the libcamera-devel mailing list