[v10,0/5] Add Face Detection Controls
mbox series

Message ID 20241001191354.55056-1-jacopo.mondi@ideasonboard.com
Headers show
Series
  • Add Face Detection Controls
Related show

Message

Jacopo Mondi Oct. 1, 2024, 7:13 p.m. UTC
I took over "[PATCH v8 0/3] Add Face Detection Controls" on top of the patch
to the Rectangle class on which we have gone back and forth for the last week

I'll merge this version

v10:
- Simplify patches 1 and 2 to avoid further discussions
- Make subtraction between signed integers safer

constexpr Rectangle(const Point &point1, const Point &point2)
	: Rectangle(std::min(point1.x, point2.x), std::min(point1.y, point2.y),
		    static_cast<unsigned int>(std::max(point1.x, point2.x)) -
		    static_cast<unsigned int>(std::min(point1.x, point2.x)),
		    static_cast<unsigned int>(std::max(point1.y, point2.y)) -
		    static_cast<unsigned int>(std::min(point1.y, point2.y)))
- Collect tags

Pipeline:
https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1281864

v9:
- add "libcamera: geometry: Clarify Rectangle's top-left corner"
- Rebase 2/5 on top of this using min(p1.y, p2.y)
- Break out 3/5 from 4/5
- Reword parts of 4/5 to make it more similar to the existing controls
  descriptions
- Make FaceDetectMode a int32_t as required by
  e6da224926b0 ("libcamera: controls: Handle enum values without a cast")
- Use int32_t as a type for FaceDetectMode in 5/5
- Populate ANDROID_STATISTICS_FACE_SCORES with actual face scores
- Populate the ANDROID_STATISTICS_FACE_DETECT_MODE metadata from settings
  only if present

Pipeline:
https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1280968


v8: Reverted back to v5 that new control ids in the draft.

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

Jacopo Mondi (1):
  libcamera: geometry: Clarify Rectangle's top-left corner

Yudhistira Erlandinata (3):
  libcamera: geometry: Add two-point Rectangle constructor
  libcamera: controls: Add ControlTypePoint
  libcamera: control_ids_draft: Add face detection controls

 include/libcamera/controls.h         |  6 ++
 include/libcamera/geometry.h         |  9 +++
 src/android/camera_capabilities.cpp  | 44 +++++++++++++--
 src/android/camera_device.cpp        | 66 +++++++++++++++++++++-
 src/libcamera/control_ids_draft.yaml | 82 ++++++++++++++++++++++++++++
 src/libcamera/controls.cpp           |  6 ++
 src/libcamera/geometry.cpp           | 20 +++++++
 test/geometry.cpp                    | 14 +++++
 8 files changed, 241 insertions(+), 6 deletions(-)

--
2.46.1