CameraDepthFrameOutput
interface CameraDepthFrameOutput extends CameraOutputThe CameraDepthFrameOutput allows synchronously streaming
Depth Frames from the Camera, aka "Depth Frame Processing".
See
Examples
Creating a CameraDepthFrameOutput via the Hooks API:
const depthOutput = useDepthOutput({
onDepth(depth) {
'worklet'
depth.dispose()
}
})Creating a CameraDepthFrameOutput via the Imperative API:
const depthOutput = VisionCamera.createDepthFrameOutput({
targetResolution: CommonResolutions.VGA_16_9,
enableFiltering: true,
enablePhysicalBufferRotation: false,
dropFramesWhileBusy: true,
allowDeferredStart: true,
})Properties
currentResolution?
readonly optional currentResolution?: SizeThe resolution that the underlying capture pipeline has resolved
this CameraOutput to, in sensor-native (un-rotated) pixels,
or undefined if the output has not yet been connected to a
CameraSession.
Discussion
The selected Size may differ from the requested
Size (e.g. from PhotoOutputOptions.targetResolution),
as the CameraSession negotiates resolutions across
attached CameraOutputs, connected CameraDevice
capabilities, and enabled Constraints.
Discussion
For outputs that are not pixel-based (e.g. metadata-only outputs),
this reports the resolution of the upstream video stream feeding
the output, or undefined if no video input is attached.
Inherited from
CameraOutput.currentResolution
mediaType
readonly mediaType: MediaTypeThe media type of the content being streamed
by this CameraOutput.
Inherited from
outputOrientation
outputOrientation: CameraOrientationGets or sets the output orientation of this CameraOutput.
Individual implementations of CameraOutput
may choose different strategies for implementing
output orientation, for example:
- A Photo output might apply orientation via EXIF flags.
- A Video output might apply orientation via track transform metadata.
- A Preview output might apply orientation via view transforms.
- A Frame output might not apply orientation and only pass it as a
property via the
Frameobject, unless explicitly configured to physically rotate buffers.
Inherited from
CameraOutput.outputOrientation
thread
readonly thread: NativeThreadGet the NativeThread that this
CameraDepthFrameOutput is running on.
This is the thread that
setOnDepthFrameCallback(...)
callbacks run on.
Methods
setOnDepthFrameCallback(...)
setOnDepthFrameCallback(onDepthFrame: (depth: Depth) => boolean & object | undefined): voidAdds a callback that calls the given onDepthFrame function
every time the Camera produces a new Depth.
Throws
If not called on a Worklet/Runtime running on this thread.
setOnDepthFrameDroppedCallback(...)
setOnDepthFrameDroppedCallback(onDepthFrameDropped:
| ((reason: FrameDroppedReason) => void)
| undefined): voidAdds a callback that gets called when a Depth has
been dropped.
This often happens if your Depth Frame Callback is taking longer
than a frame interval.