KSPROPERTY_CAMERACONTROL_EXTENDED_FACEDETECTION

KSPROPERTY_CAMERACONTROL_EXTENDED_FACEDETECTION is a property ID that is used to turn on and off face detection.

Usage summary table

Scope Control Type

Version 1

Filter

Synchronous

The following flags can be placed in the KSCAMERA_EXTENDEDPROP_HEADER.Flags field to control face detection in the driver. By default, the driver should have FACEDETECTION_OFF.

#define KSCAMERA_EXTENDEDPROP_FACEDETECTION_PREVIEW         0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_FACEDETECTION_VIDEO           0x0000000000000002
#define KSCAMERA_EXTENDEDPROP_FACEDETECTION_PHOTO           0x0000000000000004
#define KSCAMERA_EXTENDEDPROP_FACEDETECTION_BLINK           0x0000000000000008
#define KSCAMERA_EXTENDEDPROP_FACEDETECTION_SMILE           0x0000000000000010

If the driver supports this control, it must support FACEDETECTION_OFF and any one of FACEDETECTION_PREVIEW, FACEDETECTION_VIDEO, or FACEDETECTION_PHOTO. The driver should further perform dominate face analysis and feed the dominate face to 3A directly when face detection is enabled.

If the driver does not support face detection, the driver should not implement this control.

The following table describes the flag capabilities.

Flag Description

KSCAMERA_EXTENDEDPROP_FACEDETECTION_OFF

This is a mandatory capability. When specified, the face detection is disabled in the driver.

KSCAMERA_EXTENDEDPROP_FACEDETECTION_PREVIEW

This is an optional capability. When specified, the face detection is enabled in the driver and the driver must provide the face info, and the timestamp associated if supported, as a metadata through the preview pin. This flag is mutually exclusive with the OFF flag and can be used with the other flags.

KSCAMERA_EXTENDEDPROP_FACEDETECTION_VIDEO

This capability is optional. When specified, the face detection is enabled in the driver and the driver that supports such capability must provide the face info, and the timestamp associated if supported, as a metadata through the video pin. This flag is mutually exclusive with the OFF flag and can be used with the other flags.

KSCAMERA_EXTENDEDPROP_FACEDETECTION_PHOTO

This capability is optional. When specified, the face detection is enabled in the driver and the driver that supports such capability must provide the face info, and the timestamp associated if supported, as a metadata through the photo pin. This flag is mutually exclusive with the OFF flag and can be used with the other flags.

KSCAMERA_EXTENDEDPROP_FACEDETECTION_BLINK

This capability is optional. This flag can only be specified when PREVIEW, VIDEO, and\or PHOTO flags are specified. When specified, the driver that supports such capability must additionally provide the blink info as a metadata through the corresponding pin.

KSCAMERA_EXTENDEDPROP_FACEDETECTION_SMILE

This capability is optional. This flag can only be specified when PREVIEW, VIDEO, and\or PHOTO flags are specified. When specified, the driver that supports such capability must additionally provide the smile info as a metadata through the corresponding pin.

Note  MFT0 shall further attach the face information as a MF_CAPTURE_METADATA_FACEROIS, the timestamp as a MF_CAPTURE_METADATA_FACEROITIMESTAMPS, and the blink and/or smile information as a MF_CAPTURE_METADATA_FACEROICHARACTERIZATIONS on the sample.

Note  PREVIEW, VIDEO, and PHOTO capabilities are optional. However, at least one of PREVIEW, VIDEO, and PHOTO capabilities must be supported if this control is supported.

The following table contains the descriptions and requirements for the KSCAMERA_EXTENDEDPROP_HEADER structure fields when using the control.

Member Description

Version

This must be 1.

PinId

Must be KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF).

Size

This must be sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING).

Result

Indicates the error results of the last SET operation. If no SET operation has taken place, this must be 0.

Capability

Must be a bitwise OR of the supported KSCAMERA_EXTENDEDPROP_FACEDETECTION_* flags as defined above.

Flags

This is a read/write field. This can be a bit wise OR of the KSCAMERA_EXTENDEDPROP_FACEDETECTION_OFF/PREVIEW/VIDEO/PHOTO flags defined above, or a bit wise OR of KSCAMERA_EXTENDEDPROP_FACEDETECTION_BLINK and/or KSCAMERA_EXTENDEDPROP_FACEDETECTION_SMILE with any combinations of the KSCAMERA_EXTENDEDPROP_FACEDETECTION_PREVIEW/VIDEO/PHOTO flags.

The table below contains the descriptions and requirements for the KSCAMERA_EXTENDEDPROP_VIDEOPROCSETTING structure fields for the KSPROPERTY_CAMERACONTROL_EXTENDED_FACEDETECTION property. This structure is defined in Ksmedia.h.

Member Description

Mode

Unused. Must be 0.

Min/Max/Step

The Min/Max/Step contains the minimum/maximum/increment of the number of faces that the camera driver can detect or search for in which Min must be >= 1 and Step must be 1. Driver must return these for GET operations.

VideoProc

If FACEDETECTION_PREVIEW, FACEDETECTION_VIDEO or FACEDETECTION_PHOTO are specified in the Flags field of the KSCAMERA_EXTENDEDPROP_HEADER, VideoProc.Value.ul must also specify the maximum number of the faces that the driver should search for.

If FACEDETECTION_OFF is specified, for SET operations, the VideoProc field is ignored.

For GET operations, the driver must return the maximum number of faces that the driver is currently searching for. If face detection is OFF, 0 should be returned.

Reserved

This is unused. This must be ignored by the driver.

Remarks

When face detection is turned on, the face region of interests (ROIs) can be consumed directly by the driver to aid 3A processing as needed. If any user specified ROIs are configured via KSPROPERTY_CAMERACONTROL_EXTENDED_ROI_ISPCONTROL at the same time, the user specified ROIs will take precedence over the face ROIs detected. If the user specified ROIs are cleared, the face ROIs detected will take effect.

Requirements

Header

Ksmedia.h