[v7,0/3] Add Face Detection Controls
mbox series

Message ID 20240924110353.2025397-1-chenghaoyang@google.com
Headers show
Series
  • Add Face Detection Controls
Related show

Message

Cheng-Hao Yang Sept. 24, 2024, 11:02 a.m. UTC
Hi folks,

This series of patches adds face detection controls in the control ids,
the corresponding usages, and a c'tor of libcamera::Rectangle to
construct it easiler with face detection results.

It passed gitlab pipeline checks:
https://gitlab.freedesktop.org/chenghaoyang/libcamera/-/pipelines/1276999

This is one of the series cherry-picked from cros mtkisp7 branch.

The corresponding CLs in cros are:
https://chromium-review.googlesource.com/c/chromiumos/third_party/libcamera/+/4741266
https://chromium-review.googlesource.com/c/chromiumos/third_party/libcamera/+/4741267
https://chromium-review.googlesource.com/c/chromiumos/third_party/libcamera/+/5669229
https://chromium-review.googlesource.com/c/chromiumos/third_party/libcamera/+/5669232

The usages in pipeline handler mtkisp7 will be added later.

The checkstyle's suggestion on the second patch is ignored, as it
changes the style of previous code.

v7: Fixed comments.

v6:
- Added control_ids_android as the new control id list.
  - Moved the new control ids there, instead of in draft.

v5:
- Rewrote Rectangle's c'tor that allows any two diagonal points.
  - Added unit tests.

v4:
- Added support of FaceDetectModeFull and FaceDetectFaceIds.
- Fixed descriptions of control sizes.

v3: Applied fixes according to Jacopo's comments.
- Moved the new face detection controls from core to draft.
- Amended new controls' descriptions.

v2:
- Squashed the fourth CL into the last patch, as it's a fix.
- Fixed CLs based on checkstyle's suggestions.

Harvey Yang (1):
  libcamera: android: Add face detection control support

Yudhistira Erlandinata (2):
  libcamera: Add rectangle two-point constructor
  libcamera: Add face detection controls

 include/libcamera/controls.h           |  6 ++
 include/libcamera/geometry.h           |  7 ++
 include/libcamera/meson.build          |  3 +-
 src/android/camera_capabilities.cpp    | 45 ++++++++++--
 src/android/camera_device.cpp          | 73 ++++++++++++++++++-
 src/libcamera/control_ids_android.yaml | 98 ++++++++++++++++++++++++++
 src/libcamera/control_ranges.yaml      |  4 +-
 src/libcamera/controls.cpp             |  6 ++
 src/libcamera/geometry.cpp             |  7 ++
 test/geometry.cpp                      | 14 ++++
 10 files changed, 255 insertions(+), 8 deletions(-)
 create mode 100644 src/libcamera/control_ids_android.yaml