fuchsia.camera

Added: 7

PROTOCOLS

Control

Defined in fuchsia.camera/camera.fidl

These are the original interfaces, which are being used for compatibility. The names are preserved from the ones in camera.h for porting ease.

CreateStream

Sent by the client to indicate desired stream characteristics. If setting the format is successful, the stream request will be honored. The stream token is used to provide additional control over the interface from the Camera Manager. The driver provides the guarantee that: 1) If the stream token receives the PEER_CLOSED event, the driver will close the stream. 2) If the Stream interface is closed, the driver will close the eventpair.

Request

NameType
buffer_collectionfuchsia.sysmem/BufferCollectionInfo
rateFrameRate
streamserver_end:Stream
stream_tokenhandle<eventpair>

GetDeviceInfo

Request

<EMPTY>

Response

NameType
device_infoDeviceInfo

GetFormats

Get the available format types for this device NOTE: The formats are paginated to MAX_FORMATS_PER_RESPONSE, multiple GetFormats need to be issued until total_format_count are received

Request

NameType
indexuint32

Response

NameType
formatsvector<VideoFormat>
total_format_countuint32
statuszx/Status

Manager

Defined in fuchsia.camera/manager.fidl

The Camera Manager grants access to individual or sets of cameras

  1. You request the list of cameras, which gives you camera descriptions
  2. You request the list of formats available for the camera to which you wish to connect.
  3. You request a Stream interface using CreateStream.

CreateStream

Create a Stream with the specified access rights. This may not succeed. If it does succeed, the Stream will have the rights indicated. buffer_info contains a set of buffers to be used with the Stream. This is being deprecated - please use CreateStreamV2.

Request

NameType
requestVideoStream
buffer_infofuchsia.sysmem/BufferCollectionInfo
streamserver_end:Stream
client_tokenhandle<eventpair>

CreateStreamV2

Create a Stream with the specified access rights. This may not succeed. If it does succeed, the Stream will have the rights indicated. buffer_info contains a set of buffers to be used with the Stream.

Request

NameType
requestVideoStreamV2
buffer_infofuchsia.sysmem/BufferCollectionInfo
streamserver_end:Stream
client_tokenhandle<eventpair>

GetDevices

Returns a list of all the video devices that are currently plugged in and enumerated. The camera_id field of the DeviceInfo is used to specify a device in GetFormats, GetStream and GetStreamAndBufferCollection.

Request

<EMPTY>

Response

NameType
descriptionsvector<DeviceInfo>

GetFormats

Get all the available formats for a camera. camera_id is obtained from a DeviceInfo returned by GetDevices.

Request

NameType
camera_iduint64
indexuint32

Response

NameType
formatsvector<VideoFormat>
total_format_countuint32

Stream

Defined in fuchsia.camera/camera.fidl

OnFrameAvailable

Sent by the driver to the client when a frame is available for processing, or an error occurred.

Response

NameType
frameFrameAvailableEvent

ReleaseFrame

Unlocks the specified frame, allowing the driver to reuse the memory.

Request

NameType
buffer_iduint32

Start

Starts the of frames.

Request

<EMPTY>

Stop

Stops the of frames.

Request

<EMPTY>

STRUCTS

DeviceInfo

Defined in fuchsia.camera/camera.fidl

Identifying information about the device.

FieldTypeDescriptionDefault
camera_iduint64No default
vendor_iduint16No default
vendor_namestringNo default
product_iduint16No default
product_namestringNo default
max_stream_countuint16

The maximum number of stream interfaces that the device can support simultaneously.

No default
output_capabilitiesuint32No default

FrameAvailableEvent

Defined in fuchsia.camera/camera.fidl

Sent by the driver to the client when a frame is available for processing, or an error occurred.

FieldTypeDescriptionDefault
frame_statusFrameStatus

Non zero if an error occurred.

No default
buffer_iduint32

The index of the buffer in the buffer collection.

No default
metadataMetadataNo default

FrameRate

Defined in fuchsia.camera/camera.fidl

FieldTypeDescriptionDefault
frames_per_sec_numeratoruint32

The frame rate is frames_per_sec_numerator / frames_per_sec_denominator.

No default
frames_per_sec_denominatoruint32No default

Metadata

Defined in fuchsia.camera/camera.fidl

FieldTypeDescriptionDefault
timestampint64No default
data_sizeuint32
Added: 11
No default

VideoFormat

Defined in fuchsia.camera/camera.fidl

FieldTypeDescriptionDefault
formatfuchsia.sysmem/ImageFormatNo default
rateFrameRateNo default

VideoStream

Defined in fuchsia.camera/manager.fidl

A stream that the camera manager can provide. Video streams reference a a camera, but may have additional hardware and bandwidth restrictions from and ISP or other processing units. This is being deprecated - please use VideoStreamV2 (below).

FieldTypeDescriptionDefault
camera_iduint64

The camera_id corresponds to the camera_id that is given in the DeviceInfo received from GetDevices.

No default
formatVideoFormat

The requested video format. Note that this is field is necessary to set The frame rate, even when calling CreateStream. When calling CreateStream, format.format should match buffer_info.format.

No default

VideoStreamV2

Defined in fuchsia.camera/manager.fidl

Preferred version of stream. A version of stream that relies on definition of VideoFormat coming out of fuchsia.hardware.camera. Streams reference a camera, but may have additional hardware and bandwidth restrictions from an ISP or other processing units. New code should depend on this as the other version will be deprecated when dependencies are removed.

FieldTypeDescriptionDefault
camera_iduint64

The camera_id corresponds to the camera_id that is given in DeviceInfo received from GetDevices.

No default
formatVideoFormat

The requested video format. Note that this field is necessary to set the frame rate, even when calling CreateStream. When calling CreateStream format.format should match buffer_info.format.

No default

ENUMS

FrameStatus strict

Type: uint32

Defined in fuchsia.camera/camera.fidl

Status to be set when a frame is signalled available.

NameValueDescription
0
1

An error occurred during the production of a frame. No data will be available in the data buffer corresponding to this notification.

2

No space was available in the data buffer, resulting in a dropped frame.

CONSTANTS

NameValueTypeDescription
CAMERA_OUTPUT_BURST2uint32
CAMERA_OUTPUT_DEPTH16uint32
CAMERA_OUTPUT_HDR8uint32
CAMERA_OUTPUT_STEREO32uint32
CAMERA_OUTPUT_STILL_IMAGE1uint32
CAMERA_OUTPUT_STREAM4uint32
CAMERA_OUTPUT_UNKNOWN0uint32

A coarse set of capabilities. This struct is used in the camera description to help filter out cameras which will not have the needed capabilities. This set of declarations would be the bitfield: CameraOutputCapabilities.

MAX_FORMATS_PER_RESPONSE16uint32