| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.camera2 |
| |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div> |
| |
| ## **PROTOCOLS** |
| |
| ## Manager {#Manager} |
| *Defined in [fuchsia.camera2/manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/manager.fidl;l=10)* |
| |
| ### AcknowledgeDeviceEvent {#Manager.AcknowledgeDeviceEvent} |
| |
| <p>AcknowledgeDeviceEvent must be called after any of the above events before more |
| events will be sent.</p> |
| |
| #### Request {#Manager.AcknowledgeDeviceEvent_Request} |
| |
| <EMPTY> |
| |
| |
| ### ConnectToStream {#Manager.ConnectToStream} |
| |
| <p>Connect to a camera stream: |
| <code>device_id</code> Refers to a specific device_id that has been advertised by OnDeviceAvailable. |
| <code>constraints</code> contains a set of constraints on the requested stream. The Camera |
| Manager will attempt to find a stream that meets the constraints. If multiple |
| streams match, one of the matching streams will be connected. |
| <code>token</code> refers to a Sysmem buffer allocation that will be used to pass images using |
| the Stream protocol. The Camera Manager will apply a BufferCollectionContraints |
| related to the image format(s), so the client does not need to apply any |
| ImageFormatConstraints. |
| Sync is assumed to have been called on <code>token</code> before it is passed to |
| ConnectToStream. |
| Since <code>constraints</code> may not dictate a specific format, the initial format of images |
| on the stream is indicated on the response. |
| The connection is considered to be successful once a response has been given, unless |
| <code>stream</code> is closed.</p> |
| |
| #### Request {#Manager.ConnectToStream_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>device_id</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>constraints</code></td> |
| <td> |
| <code><a class='link' href='#StreamConstraints'>StreamConstraints</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>token</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.sysmem/'>fuchsia.sysmem</a>/<a class='link' href='../fuchsia.sysmem/#BufferCollectionToken'>BufferCollectionToken</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>stream</code></td> |
| <td> |
| <code>request<<a class='link' href='#Stream'>Stream</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Manager.ConnectToStream_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>format</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.sysmem/'>fuchsia.sysmem</a>/<a class='link' href='../fuchsia.sysmem/#ImageFormat_2'>ImageFormat_2</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### OnDeviceAvailable {#Manager.OnDeviceAvailable} |
| |
| <p>Notifies the client when a camera becomes available. A number of these events will |
| be sent when a client first connects to this protocol. |
| <code>device_id</code> is used to identify the camera. The device_id should not change throughout |
| the lifetime of the camera. |
| <code>last_known_camera</code> is set to true when the Camera Manager has notified the client |
| of all the devices it currently knows about. |
| <code>description</code> describes the properties of the camera.</p> |
| |
| |
| #### Response {#Manager.OnDeviceAvailable_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>device_id</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>description</code></td> |
| <td> |
| <code><a class='link' href='#DeviceInfo'>DeviceInfo</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>last_known_camera</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| ### OnDeviceMuteChanged {#Manager.OnDeviceMuteChanged} |
| |
| <p>Notifies the client when a camera becomes muted or unmuted. |
| <code>device_id</code> refers to the device_id from the description of a previous OnDeviceAvailable |
| call.</p> |
| |
| |
| #### Response {#Manager.OnDeviceMuteChanged_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>device_id</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>currently_muted</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| ### OnDeviceUnavailable {#Manager.OnDeviceUnavailable} |
| |
| <p>Notifies the client when a camera becomes unavailable.</p> |
| |
| |
| #### Response {#Manager.OnDeviceUnavailable_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>device_id</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| </tr> |
| </table> |
| |
| ## MuteControl {#MuteControl} |
| *Defined in [fuchsia.camera2/manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/manager.fidl;l=67)* |
| |
| ### Mute {#MuteControl.Mute} |
| |
| <p>Mutes a camera. This is independent from stopping or closing a stream. A muted |
| camera will not produce any more images until |
| unmute is called. You can still connect to streams from a muted camera, but they |
| will not produce frames until the camera is unmuted. |
| <code>device_id</code> refers to the device_id from a previous OnDeviceAvailable call.</p> |
| |
| #### Request {#MuteControl.Mute_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>device_id</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MuteControl.Mute_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>status</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### Unmute {#MuteControl.Unmute} |
| |
| |
| #### Request {#MuteControl.Unmute_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>device_id</code></td> |
| <td> |
| <code>int32</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#MuteControl.Unmute_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>status</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## Stream {#Stream} |
| *Defined in [fuchsia.camera2/stream.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/stream.fidl;l=76)* |
| |
| ### AcknowledgeFrameError {#Stream.AcknowledgeFrameError} |
| |
| <p>Provides flow control for receiving frame errors. See OnFrameAvailable comment.</p> |
| |
| #### Request {#Stream.AcknowledgeFrameError_Request} |
| |
| <EMPTY> |
| |
| |
| ### GetBuffers {#Stream.GetBuffers} |
| |
| <p>Returns a token to the buffers that are being used to output frames on the stream. The |
| token is <code>dispensable</code> which means it doesn't have to be turned in to sysmem for allocation |
| to complete. This also means that any SetConstraints call on the returned token can't |
| conflict with the constraints in the <code>StreamConfig</code>, otherwise attempts to wait for buffers |
| on the token will fail.</p> |
| |
| #### Request {#Stream.GetBuffers_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Stream.GetBuffers_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>token</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.sysmem/'>fuchsia.sysmem</a>/<a class='link' href='../fuchsia.sysmem/#BufferCollectionToken'>BufferCollectionToken</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetImageFormats {#Stream.GetImageFormats} |
| |
| <p>Get the image formats that this stream supports.</p> |
| |
| #### Request {#Stream.GetImageFormats_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Stream.GetImageFormats_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>image_formats</code></td> |
| <td> |
| <code>vector<<a class='link' href='../fuchsia.sysmem/'>fuchsia.sysmem</a>/<a class='link' href='../fuchsia.sysmem/#ImageFormat_2'>ImageFormat_2</a>>[256]</code> |
| </td> |
| </tr> |
| </table> |
| |
| ### OnFrameAvailable {#Stream.OnFrameAvailable} |
| |
| <p>Sent by the driver to the client when a frame is available for processing, |
| or an error occurred. The frame is considered read-locked by the client |
| after this message. The client must call ReleaseFrame to release the |
| read-lock for a non-error frame, or the consumer will eventually run out of buffers. |
| If a frame has an error, the client must call AcknowledgeFrameError before |
| another OnFrameAvailable will be called with an error frame.</p> |
| |
| |
| #### Response {#Stream.OnFrameAvailable_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>frame</code></td> |
| <td> |
| <code><a class='link' href='#FrameAvailableInfo'>FrameAvailableInfo</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### ReleaseFrame {#Stream.ReleaseFrame} |
| |
| <p>Unlocks the specified frame, allowing the driver to reuse the memory.</p> |
| |
| #### Request {#Stream.ReleaseFrame_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>buffer_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### SetImageFormat {#Stream.SetImageFormat} |
| |
| <p>Change the image format of the stream. This is called when clients want |
| to dynamically change the resolution of the stream while the streaming is |
| is going on.</p> |
| |
| #### Request {#Stream.SetImageFormat_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>image_format_index</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Stream.SetImageFormat_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>s</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetRegionOfInterest {#Stream.SetRegionOfInterest} |
| |
| <p>Data operations |
| This is used by clients to provide inputs for region of interest |
| selection. |
| Inputs are the x & y coordinates for the new bounding box. |
| For streams which do not support smart framing, this would |
| return an error.</p> |
| |
| #### Request {#Stream.SetRegionOfInterest_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>x_min</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>y_min</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>x_max</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>y_max</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Stream.SetRegionOfInterest_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>s</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### Start {#Stream.Start} |
| |
| <p>Control Operations |
| Starts the streaming of frames.</p> |
| |
| #### Request {#Stream.Start_Request} |
| |
| <EMPTY> |
| |
| |
| ### Stop {#Stream.Stop} |
| |
| <p>Stops the streaming of frames.</p> |
| |
| #### Request {#Stream.Stop_Request} |
| |
| <EMPTY> |
| |
| |
| |
| ## **STRUCTS** |
| |
| ### FrameAvailableInfo {#FrameAvailableInfo data-text="FrameAvailableInfo"} |
| *Defined in [fuchsia.camera2/stream.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/stream.fidl;l=36)* |
| <p>Sent by the driver to the client when a frame is available for processing, |
| or an error occurred.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="FrameAvailableInfo.frame_status"> |
| <td><code>frame_status</code></td> |
| <td> |
| <code><a class='link' href='#FrameStatus'>FrameStatus</a></code> |
| </td> |
| <td><p>Non zero if an error occurred.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="FrameAvailableInfo.buffer_id"> |
| <td><code>buffer_id</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>The index of the buffer in the buffer collection.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="FrameAvailableInfo.metadata"> |
| <td><code>metadata</code></td> |
| <td> |
| <code><a class='link' href='#FrameMetadata'>FrameMetadata</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### FrameRate {#FrameRate data-text="FrameRate"} |
| *Defined in [fuchsia.camera2/stream.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/stream.fidl;l=46)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="FrameRate.frames_per_sec_numerator"> |
| <td><code>frames_per_sec_numerator</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>The frame rate is frames_per_sec_numerator / frames_per_sec_denominator.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="FrameRate.frames_per_sec_denominator"> |
| <td><code>frames_per_sec_denominator</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| |
| ## **ENUMS** |
| |
| ### DeviceType [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#DeviceType data-text="DeviceType"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.camera2/manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/manager.fidl;l=97)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="DeviceType.BUILTIN"> |
| <td><h3 id="DeviceType.BUILTIN" class="add-link hide-from-toc">BUILTIN</h3></td> |
| <td><code>1</code></td> |
| <td></td> |
| </tr> |
| <tr id="DeviceType.VIRTUAL"> |
| <td><h3 id="DeviceType.VIRTUAL" class="add-link hide-from-toc">VIRTUAL</h3></td> |
| <td><code>2</code></td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### FrameStatus [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#FrameStatus data-text="FrameStatus"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.camera2/stream.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/stream.fidl;l=13)* |
| <p>Status to be set when a frame is signalled available.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="FrameStatus.OK"> |
| <td><h3 id="FrameStatus.OK" class="add-link hide-from-toc">OK</h3></td> |
| <td><code>0</code></td> |
| <td></td> |
| </tr> |
| <tr id="FrameStatus.ERROR_FRAME"> |
| <td><h3 id="FrameStatus.ERROR_FRAME" class="add-link hide-from-toc">ERROR_FRAME</h3></td> |
| <td><code>1</code></td> |
| <td><p>An error occurred during the production of a frame. |
| No data will be available in the data buffer corresponding to this |
| notification.</p> |
| </td> |
| </tr> |
| <tr id="FrameStatus.ERROR_BUFFER_FULL"> |
| <td><h3 id="FrameStatus.ERROR_BUFFER_FULL" class="add-link hide-from-toc">ERROR_BUFFER_FULL</h3></td> |
| <td><code>2</code></td> |
| <td><p>No space was available in the data buffer, resulting in a dropped frame.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **TABLES** |
| |
| ### DeviceInfo {#DeviceInfo data-text="DeviceInfo"} |
| |
| |
| *Defined in [fuchsia.camera2/manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/manager.fidl;l=103)* |
| <p>Identifying information about the device.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="DeviceInfo.vendor_id"> |
| <td><h3 id="DeviceInfo.vendor_id" class="add-link hide-from-toc">1</h3></td> |
| <td><code>vendor_id</code></td> |
| <td> |
| <code>uint16</code> |
| </td> |
| <td><p>Information from physical device enumeration:</p> |
| </td> |
| </tr> |
| <tr id="DeviceInfo.vendor_name"> |
| <td><h3 id="DeviceInfo.vendor_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>vendor_name</code></td> |
| <td> |
| <code>string[255]</code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="DeviceInfo.product_id"> |
| <td><h3 id="DeviceInfo.product_id" class="add-link hide-from-toc">3</h3></td> |
| <td><code>product_id</code></td> |
| <td> |
| <code>uint16</code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="DeviceInfo.product_name"> |
| <td><h3 id="DeviceInfo.product_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>product_name</code></td> |
| <td> |
| <code>string[255]</code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="DeviceInfo.type"> |
| <td><h3 id="DeviceInfo.type" class="add-link hide-from-toc">5</h3></td> |
| <td><code>type</code></td> |
| <td> |
| <code><a class='link' href='#DeviceType'>DeviceType</a></code> |
| </td> |
| <td><p>Information about the type of device:</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### FrameMetadata {#FrameMetadata data-text="FrameMetadata"} |
| |
| |
| *Defined in [fuchsia.camera2/stream.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/stream.fidl;l=24)* |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="FrameMetadata.timestamp"> |
| <td><h3 id="FrameMetadata.timestamp" class="add-link hide-from-toc">1</h3></td> |
| <td><code>timestamp</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="FrameMetadata.image_format_index"> |
| <td><h3 id="FrameMetadata.image_format_index" class="add-link hide-from-toc">2</h3></td> |
| <td><code>image_format_index</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>|image_format_index| references the index into the vector of available |
| formats supported by the stream.</p> |
| </td> |
| </tr> |
| <tr id="FrameMetadata.capture_timestamp"> |
| <td><h3 id="FrameMetadata.capture_timestamp" class="add-link hide-from-toc">3</h3></td> |
| <td><code>capture_timestamp</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| <td><p>The value of the system monotonic clock at the moment the buffer used to construct this |
| frame was received from the ISP.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### StreamConstraints {#StreamConstraints data-text="StreamConstraints"} |
| |
| |
| *Defined in [fuchsia.camera2/manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/manager.fidl;l=87)* |
| <p>These constraints are given to the Camera Manager when requesting a stream. The |
| Camera Manager will use these constraints to match an appropriate stream.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="StreamConstraints.properties"> |
| <td><h3 id="StreamConstraints.properties" class="add-link hide-from-toc">1</h3></td> |
| <td><code>properties</code></td> |
| <td> |
| <code><a class='link' href='#StreamProperties'>StreamProperties</a></code> |
| </td> |
| <td><p>A table that describes the properties of the stream. Any properties specified will |
| be considered requirements for matching streams.</p> |
| </td> |
| </tr> |
| <tr id="StreamConstraints.format_index"> |
| <td><h3 id="StreamConstraints.format_index" class="add-link hide-from-toc">2</h3></td> |
| <td><code>format_index</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>If specified, the stream will be created using this index for the initial format index. |
| If unspecified, the first stream format will be used.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### StreamProperties {#StreamProperties data-text="StreamProperties"} |
| |
| |
| *Defined in [fuchsia.camera2/stream.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/stream.fidl;l=71)* |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="StreamProperties.stream_type"> |
| <td><h3 id="StreamProperties.stream_type" class="add-link hide-from-toc">1</h3></td> |
| <td><code>stream_type</code></td> |
| <td> |
| <code><a class='link' href='#CameraStreamType'>CameraStreamType</a></code> |
| </td> |
| <td><p>These could be one or more of the above mentioned Stream Types</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |
| ## **BITS** |
| |
| ### CameraStreamType [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#CameraStreamType} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.camera2/stream.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/stream.fidl;l=53)* |
| <p>Different Stream types provided by the camera stack.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="CameraStreamType.MACHINE_LEARNING"> |
| <td><h3 id="CameraStreamType.MACHINE_LEARNING" class="add-link hide-from-toc">MACHINE_LEARNING</h3></td> |
| <td>1</td> |
| <td><p>ML request FR(Full Resolution) stream as well as |
| a DS(Down Scaled Resolution) stream for Security Use Case |
| which are of fixed resolutions</p> |
| </td> |
| </tr> |
| <tr id="CameraStreamType.MONITORING"> |
| <td><h3 id="CameraStreamType.MONITORING" class="add-link hide-from-toc">MONITORING</h3></td> |
| <td>2</td> |
| <td><p>This is Security Video Stream which could support multiple |
| resolutions at runtime.</p> |
| </td> |
| </tr> |
| <tr id="CameraStreamType.FULL_RESOLUTION"> |
| <td><h3 id="CameraStreamType.FULL_RESOLUTION" class="add-link hide-from-toc">FULL_RESOLUTION</h3></td> |
| <td>4</td> |
| <td></td> |
| </tr> |
| <tr id="CameraStreamType.DOWNSCALED_RESOLUTION"> |
| <td><h3 id="CameraStreamType.DOWNSCALED_RESOLUTION" class="add-link hide-from-toc">DOWNSCALED_RESOLUTION</h3></td> |
| <td>8</td> |
| <td><p>ML request a DS stream for Video Conferencing which is fixed resolution</p> |
| </td> |
| </tr> |
| <tr id="CameraStreamType.VIDEO_CONFERENCE"> |
| <td><h3 id="CameraStreamType.VIDEO_CONFERENCE" class="add-link hide-from-toc">VIDEO_CONFERENCE</h3></td> |
| <td>16</td> |
| <td><p>This is Video Conferencing Stream which could support |
| multiple resolutions at runtime.</p> |
| </td> |
| </tr> |
| <tr id="CameraStreamType.EXTENDED_FOV"> |
| <td><h3 id="CameraStreamType.EXTENDED_FOV" class="add-link hide-from-toc">EXTENDED_FOV</h3></td> |
| <td>32</td> |
| <td><p>Stream with extended field of view.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **CONSTANTS** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> |
| <tr id="MAX_IMAGE_FORMATS"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.camera2/stream.fidl;l=10">MAX_IMAGE_FORMATS</a></td> |
| <td> |
| <code>256</code> |
| </td> |
| <td><code>uint64</code></td> |
| <td><p>Maximum number of image formats per stream.</p> |
| </td> |
| </tr> |
| </table> |