Package: android.hardware.camera.device@1.0

types

Properties

FrameCallbackFlags

typedef bitfield FrameCallbackFlags

MemoryId

typedef uint32_t MemoryId

A simple integer handle to use to reference a particular memory buffer between the HAL and the framework.

CameraFacing

enum CameraFacing: uint32_t
Details
Members
BACK = 0
The facing of the camera is opposite to that of the screen.
FRONT = 1
The facing of the camera is the same as that of the screen.
EXTERNAL = 2
The facing of the camera is not fixed relative to the screen.The cameras with this facing are external cameras, e.g.USB cameras.

FrameCallbackFlag

enum FrameCallbackFlag: uint32_t

Message types for ICameraDevice@1.0::enableMsgType() /disableMsgType()

A set of bit masks for specifying how the received preview frames are handled before the previewCallback() call.

The least significant 3 bits of an "int" value are used for this purpose:

.....0 0 0 ^ ^ ^ | | |--------->determine whether the callback is enabled or not | |----------->determine whether the callback is one-shot or not |------------->determine whether the frame is copied out or not

WARNING:When a frame is sent directly without copying, it is the frame receiver's responsiblity to make sure that the frame data won't get corrupted by subsequent preview frames filled by the camera.This flag is recommended only when copying out data brings significant performance price and the handling/processing of the received frame data is always faster than the preview frame rate so that data corruption won't occur.

For instance, 1.0x00 disables the callback.In this case, copy out and one shot bits are ignored.2.0x01 enables a callback without copying out the received frames.A typical use case is the Camcorder application to avoid making costly frame copies.3.0x05 is enabling a callback with frame copied out repeatedly.A typical use case is the Camera application.4.0x07 is enabling a callback with frame copied out only once.A typical use case is the Barcode scanner application.

Details
Members
ENABLE_MASK = 0x01
ONE_SHOT_MASK = 0x02
COPY_OUT_MASK = 0x04
NOOP = 0x00
Typical use cases
CAMCORDER = 0x01
CAMERA = 0x05
BARCODE_SCANNER = 0x07

CommandType

enum CommandType: uint32_t

Subset of commands in /system/core/include/system/camera.h relevant for ICameraDevice@1.0::sendCommand()

Details
Members
START_SMOOTH_ZOOM = 1
STOP_SMOOTH_ZOOM = 2
START_FACE_DETECTION = 6
Start the face detection.This must be called only after preview is started.The camera must notify the listener of CAMERA_MSG_FACE and the detected faces in the preview frame.The detected faces may be the same as the previous ones.Apps must call CAMERA_CMD_STOP_FACE_DETECTION to stop the face detection.This method is supported if CameraParameters KEY_MAX_NUM_HW_DETECTED_FACES or KEY_MAX_NUM_SW_DETECTED_FACES is bigger than 0.Hardware and software face detection must not be running at the same time.If the face detection has started, apps must not send this again.
In hardware face detection mode, CameraParameters KEY_WHITE_BALANCE, KEY_FOCUS_AREAS and KEY_METERING_AREAS have no effect.
arg1 is the face detection type.It can be CAMERA_FACE_DETECTION_HW or CAMERA_FACE_DETECTION_SW.If the type of face detection requested is not supported, the HAL must return BAD_VALUE.
STOP_FACE_DETECTION = 7
Stop the face detection.
ENABLE_FOCUS_MOVE_MSG = 8
Enable/disable focus move callback(CAMERA_MSG_FOCUS_MOVE). Passing arg1 = 0 must disable, while passing arg1 = 1 must enable the callback.
SET_VIDEO_FORMAT = 11
Configure an explicit format to use for video recording metadata mode.This can be used to switch the format from the default IMPLEMENTATION_DEFINED gralloc format to some other device-supported format, and the default dataspace from the BT_709 color space to some other device-supported dataspace.arg1 is the HAL pixel format, and arg2 is the HAL dataSpace.This command returns INVALID_OPERATION error if it is sent after video recording is started, or the command is not supported at all.
If the gralloc format is set to a format other than IMPLEMENTATION_DEFINED, then HALv3 devices must use gralloc usage flags of SW_READ_OFTEN.

NotifyCallbackMsg

enum NotifyCallbackMsg: uint32_t

Message types for ICameraDevice1Callback::notifyCallback()

Details
Members
ERROR = 0x0001
SHUTTER = 0x0002
FOCUS = 0x0004
ZOOM = 0x0008
FOCUS_MOVE = 0x0800

DataCallbackMsg

enum DataCallbackMsg: uint32_t

Message types for ICameraDevice1Callback::dataCallback() and ICameraDevice1Callback::dataCallbackTimestamp()

Details
Members
PREVIEW_FRAME = 0x0010
VIDEO_FRAME = 0x0020
POSTVIEW_FRAME = 0x0040
RAW_IMAGE = 0x0080
COMPRESSED_IMAGE = 0x0100
RAW_IMAGE_NOTIFY = 0x0200
PREVIEW_METADATA = 0x0400

CameraInfo

struct CameraInfo {CameraFacing facing; uint32_t orientation}

Basic information about a camera device, always accessible via ICameraDevice::getCameraInfo().

Details
Members
facing
The direction that this device faces.
orientation
The orientation of the camera image.The value is the angle that the camera image needs to be rotated clockwise so it shows correctly on the display in its natural orientation.It must be 0, 90, 180, or 270.
For example, suppose a device has a naturally tall screen.The back-facing camera sensor is mounted in landscape.You are looking at the screen.If the top side of the camera sensor is aligned with the right edge of the screen in natural orientation, the value must be 90.If the top side of a front-facing camera sensor is aligned with the right of the screen, the value must be 270.
An external camera device must leave this set to 0.

CameraFace

struct CameraFace {int32_t rect; int32_t score; int32_t id; int32_t leftEye; int32_t rightEye; int32_t mouth}

Information for a single detected face.

Details
Members
rect
Bounds of the face[left, top, right, bottom].(-1000, -1000)represents the top-left of the camera field of view, and(1000, 1000)represents the bottom-right of the field of view.The width and height cannot be 0 or negative.This is supported by both hardware and software face detection.
The direction is relative to the sensor orientation, that is, what the sensor sees.The direction is not affected by the rotation or mirroring of CAMERA_CMD_SET_DISPLAY_ORIENTATION.
score
The confidence level of the face.The range is 1 to 100.100 is the highest confidence.This is supported by both hardware and software face detection.
id
An unique id per face while the face is visible to the tracker.If the face leaves the field-of-view and comes back, it will get a new id.If the value is 0, id is not supported.
leftEye
The coordinates of the center of the left eye.The range is -1000 to 1000.-2000, -2000 if this is not supported.
rightEye
The coordinates of the center of the right eye.The range is -1000 to 1000.-2000, -2000 if this is not supported.
mouth
The coordinates of the center of the mouth.The range is -1000 to 1000.-2000, -2000 if this is not supported.

CameraFrameMetadata

struct CameraFrameMetadata {vec faces}

The metadata of the frame data, such as face detection result.

Details
Members
faces
A vector of the detected faces.

HandleTimestampMessage

struct HandleTimestampMessage {handle frameData; MemoryId data; uint32_t bufferIndex; int64_t timestamp}
Details
Members
frameData
data
bufferIndex
timestamp

VideoFrameMessage

struct VideoFrameMessage {handle frameData; MemoryId data; uint32_t bufferIndex}
Details
Members
frameData
data
bufferIndex