8486e4179c
* Common camera definitions (camera.common/1.0) * Basic status codes, shared types * Provider 2.4 API (camera.provider/2.4), including vendor tag APIs * Enumerate and acquire camera device instances * Mostly equivalent to legacy camera module v2.4. * Device 1.0 API (camera.device/1.0) * Mostly equivalent to legacy camera HAL v1.0. * Device 3.2 API (camera.device/3.2) * Mostly equivalent to legacy camera HAL v3.2. * Metadata 3.2 API (camera.metadata/3.2) * Definitions for valid metadata fields for device 3.2 Only the key initial interfaces are added; default implementations are in a later CL. Other interfaces that will likely need to be added: * Other provider minor versions * Other device 3.x minor versions Test: make -j32 Bug: 30985004 Bug: 32991603 Change-Id: I1c6a9a269bf45276055707bbc58cfc50d29fa919
76 lines
2.8 KiB
Markdown
76 lines
2.8 KiB
Markdown
## Camera Device HAL ##
|
|
---
|
|
|
|
## Overview: ##
|
|
|
|
The camera.device HAL interface is used by the Android camera service to operate
|
|
individual camera devices. Instances of camera.device HAL interface can be obtained
|
|
via one of the ICameraProvider::getCameraDeviceInterface_V<N>_x() methods, where N
|
|
is the major version of the camera device interface.
|
|
|
|
Obtaining the device interface does not turn on the respective camera device;
|
|
each camera device interface has an actual open() method to begin an active
|
|
camera session. Without invoking open(), the interface can be used for querying
|
|
camera static information.
|
|
|
|
More complete information about the Android camera HAL and subsystem can be found at
|
|
[source.android.com](http://source.android.com/devices/camera/index.html).
|
|
|
|
## Version history: ##
|
|
|
|
### ICameraDevice.hal@1.0:
|
|
|
|
HIDL version of the legacy camera device HAL. Intended as a shim for devices
|
|
needing to use the deprecated pre-HIDL camera device HAL v1.0.
|
|
|
|
May be used in HIDL passthrough mode for devices upgrading to the Android O
|
|
release; must be used in binderized mode for devices launching in the O release.
|
|
|
|
It is strongly recommended to not use this interface for new devices, as new
|
|
devices may not use this interface starting with the Android P release, and all
|
|
support for ICameraDevice@1.0 will be removed with the Android R release.
|
|
|
|
This HAL interface version only allows support at the LEGACY level for the
|
|
android.hardware.camera2 API.
|
|
|
|
Subsidiary HALs:
|
|
|
|
#### ICameraDevice1PreviewCallback.hal@1.0:
|
|
|
|
Callback interface for obtaining, filling, and returning graphics buffers for
|
|
preview operation with the ICameraDevice@1.0 inteface.
|
|
|
|
#### ICameraDevice1Callback.hal@1.0:
|
|
|
|
Callback interface for sending events and data buffers from the HAL to the
|
|
camera service.
|
|
|
|
### ICameraDevice.hal@3.2:
|
|
|
|
HIDL version of the baseline camera device HAL, required for LIMITED or FULL
|
|
operation through the android.hardware.camera2 API.
|
|
|
|
The main HAL contains methods for static queries about the device, similar to
|
|
the HALv3-specific sections of the legacy camera module HAL. Simply obtaining an
|
|
instance of the camera device interface does not turn on the camera device.
|
|
|
|
May be used in passthrough mode for devices upgrading to the Android O release;
|
|
must be used in binderized mode for all new devices launching with Android O or
|
|
later.
|
|
|
|
The open() method actually opens the camera device for use, returning a Session
|
|
interface for operating the active camera. It takes a Callback interface as an
|
|
argument.
|
|
|
|
Subsidiary HALs:
|
|
|
|
#### ICameraDevice3Session.hal@3.2:
|
|
|
|
Closely matches the features and operation of the pre-HIDL camera device HAL
|
|
v3.2, containing methods for configuring an active camera device and submitting
|
|
capture requests to it.
|
|
|
|
#### ICameraDevice3Callback.hal@3.2:
|
|
|
|
Callback interface for sending completed captures and other asynchronous events
|
|
from tehe HAL to the client.
|