Google is committed to advancing racial equity for Black communities. See how.

fuchsia.camera2.hal

PROTOCOLS

Controller

Defined in fuchsia.camera2.hal/hal.fidl

This is the interface to the camera driver which allows setting up a given configuration and setting up a stream.

CreateStream

Set a particular configuration and create the requested stream. config_index : Configuration index from the vector which needs to be applied. stream_index : Stream index from the vector of streams provided within a config. buffer_collection : Buffer collections for the stream. stream : Stream channel for the stream requested image_format_index : Image format index which needs to be set up upon creation. If there is already an active configuration which is different than the one which is requested to be set, then the HAL will be closing all existing streams and honor this new setup call. If the new stream requested is already part of the existing running configuration the HAL will just be creating this new stream while the other stream still exists as is.

Request

NameType
config_index uint32
stream_index uint32
image_format_index uint32
buffer_collection fuchsia.sysmem/BufferCollectionInfo_2
stream request<fuchsia.camera2/Stream>

DisableStreaming

Request

NameType

EnableStreaming

Enable/Disable Streaming

Request

NameType

GetDeviceInfo

Request

NameType

Response

NameType
info fuchsia.camera2/DeviceInfo

GetNextConfig

Returns the next available configuration which the camera driver supports. Returns ZX_ERR_STOP if no new configurations are available.

Request

NameType

Response

NameType
config Config?
status zx/status

STRUCTS

Config

Defined in fuchsia.camera2.hal/hal.fidl

Represents one configuration

NameTypeDescriptionDefault
stream_configs vector<StreamConfig>[64] No default

StreamConfig

Defined in fuchsia.camera2.hal/hal.fidl

Represents one stream within a particular configuration.

NameTypeDescriptionDefault
frame_rate fuchsia.camera2/FrameRate No default
constraints fuchsia.sysmem/BufferCollectionConstraints

constraints should allow for all the image formats listed in image_formats.

No default
properties fuchsia.camera2/StreamProperties

Properties of the stream:

No default
image_formats vector<fuchsia.sysmem/ImageFormat_2>[256]

We need to specify both the constraints & the image formats because there are fixed set of resolutions supported by the Camera Controller so a range within the constraints won't be sufficient. Some streams support multiple resolutions for same configuration We would need to change the resolution runtime, without stopping the streaming. This provides a list of resolutions a stream would be providing. At least one format must be provided.

No default

CONSTANTS

NameValueTypeDescription
MAX_CONFIGURATIONS 256 uint64

Maximum number of configurations per device.

MAX_STREAMS 64 uint64

Maximum number of streams per config.