In Android 9, camera devices can advertise
motion tracking capability.
Cameras that support this feature don't produce motion tracking data itself,
but instead are used by ARCore or an image-stabilization algorithm along with
other sensors for scene analysis. To support this feature, devices must support
CONTROL_CAPTURE_INTENT_MOTION_TRACKING
.
If this intent is part of the capture request, the camera must limit the
exposure time to a maximum of 20 milliseconds to reduce motion blur.
Examples and source
A reference motion tracking implementation on the HAL side is available as part of the Camera HAL.
Implementation
To enable motion tracking on a camera device, make sure:
- The
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING
capability is enabled. - The
ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING
intent is supported and when included in a capture request limits the camera exposure time to a maximum of 20 milliseconds. Lens calibration data from the following list is accurately reported in the static information and dynamic metadata fields:
Validation
Camera devices supporting the motion tracking feature must pass the camera CTS tests.