![]() |
ImFusion SDK 4.3
|
#include <RGBD/Include/ImFusion/RGBD/KinectAzureStream.h>
Provides a high-level interface for streaming RGB-D data from Microsoft Kinect Azure sensors. More...
Inheritance diagram for KinectAzureStream:Provides a high-level interface for streaming RGB-D data from Microsoft Kinect Azure sensors.
This class manages device enumeration, configuration, calibration (kinect sdk calib. algorithms), and frame acquisition for depth, color, and infrared streams.
KinectAzureStream supports various resolutions, frame rates, and sensor features such as exposure, gain, white balance, and synchronization. It exposes methods for querying and setting stream formats, accessing calibration parameters, and controlling advanced sensor options.
Typical usage:
Public Types | |
| enum class | Stream { Depth , Color , Infrared } |
| Supported stream types. More... | |
| enum class | Fps { FPS_5 = 0 , FPS_15 , FPS_30 } |
| Supported frame rates. More... | |
| enum class | DepthFormat { NFOV_2X2BINNED = 1 , NFOV_UNBINNED , WFOV_2X2BINNED , WFOV_UNBINNED , PASSIVE_IR } |
| Supported depth formats. More... | |
| enum class | ColorFormat { RESOLUTION_720P = 1 , RESOLUTION_1080P , RESOLUTION_1440P , RESOLUTION_1536P , RESOLUTION_2160P , RESOLUTION_3072P } |
| Supported color formats. More... | |
| enum class | PowerlineFrequency { FREQ_50Hz = 1 , FREQ_60Hz = 2 } |
| Powerline frequency settings. | |
| enum class | SyncMode { STANDALONE = 0 , MASTER = 1 , SUBORDINATE = 2 } |
| Synchronization modes for multi-sensor setups. | |
Public Types inherited from RGBDStream | |
| enum | PixelFormat { Rgb24 , Rgb32 , Depth16 , Gray8 , Gray16 , Yuv422 } |
| Pixel format enumeration for RGB-D frames. More... | |
Public Types inherited from Stream | |
| enum class | ThreadingMode { BaseClassRunsWorkerThread , DerivedClassHandlesThreading } |
| This flag represents the two supported threading modes of a Stream. More... | |
| enum class | State { Closed , Opening , Open , Starting , Running , Pausing , Paused , Resuming , Stopping , Closing } |
Public Types inherited from Data | |
| enum | Kind { UNKNOWN = 0 , IMAGE = 1 , VOLUME = 2 , IMAGESET = 3 , VOLUMESET = 4 , IMAGESTREAM = 5 , VOLUMESTREAM = 6 , POINTSET = 7 , SURFACE = 8 , TRACKINGSTREAM = 9 , LIVETRACKINGSTREAM = TRACKINGSTREAM , TRACKINGDATA = 10 , TREE = 11 , TENSOR = 12 , POLYDATASTREAM = 13 , STEREOIMAGESET = 14 , STEREOIMAGESTREAM = 15 , VOLUMETRICMESH = 16 } |
| Kind of data. More... | |
| enum | Modality { NA = 0 , XRAY = 1 , CT = 2 , MRI = 3 , ULTRASOUND = 4 , VIDEO = 5 , NM = 6 , OCT = 7 , LABEL = 8 , DISTANCE = 9 } |
| Image modality of the data. More... | |
Public Member Functions | |
| KinectAzureStream (const std::string &uri, int id) | |
| Constructs a Kinect Azure stream for the given device URI and ID. | |
| KinectAzureImplData * | implData () const |
| Returns internal implementation data for advanced usage. | |
| bool | depthFormats (std::vector< FrameInfo > &formats) override |
| Queries supported depth formats. | |
| bool | depthFormats (std::vector< DepthFormat > &formats) |
| bool | colorFormats (std::vector< FrameInfo > &formats) override |
| Queries supported color formats. | |
| bool | colorFormats (std::vector< ColorFormat > &formats) |
| bool | depthFormat (FrameInfo &format) const override |
| Gets current depth format. | |
| bool | depthFormat (DepthFormat &format) const |
| bool | colorFormat (FrameInfo &format) const override |
| Gets current color format. | |
| bool | colorFormat (ColorFormat &format) const |
| bool | setDepthFormat (const FrameInfo &format) override |
| Sets depth format. | |
| bool | setDepthFormat (const DepthFormat &format) |
| bool | setColorFormat (const FrameInfo &format) override |
| Sets color format. | |
| bool | setColorFormat (const ColorFormat &format) |
| void | setUseMJPGColorFormat (bool v) |
| Enables or disables MJPG color format. | |
| bool | useMJPGColorFormat () const |
| bool | convertDepthFormat (const DepthFormat &format, int &width, int &height) const |
| Converts depth format to width/height or name. | |
| bool | convertDepthFormat (const DepthFormat &format, std::string &name) const |
| bool | convertDepthFormat (const int &width, const int &height, DepthFormat &format) const |
| bool | convertColorFormat (const ColorFormat &format, int &width, int &height) const |
| Converts color format to width/height or name. | |
| bool | convertColorFormat (const ColorFormat &format, std::string &name) const |
| bool | convertColorFormat (const int &width, const int &height, ColorFormat &format) const |
| bool | setFps (Fps fps) |
| Sets frame rate. | |
| Fps | fps () |
| int | convertFps (Fps fps) |
| bool | convertFps (int fpsInt, Fps &fps) |
| std::string | name () const override |
| Returns sensor name. | |
| std::string | serialNumber () const override |
| std::string | uuid () override |
| Unique identifier for stream. | |
| int | id () const |
| bool | usingFactoryCalibration () const override |
| Returns true if factory calibration is used. | |
| bool | depthK (mat3 &K) const override |
| Retrieves depth camera intrinsics. | |
| bool | depthDist (vec5 &dist) const override |
| Retrieves depth camera distortion parameters. | |
| bool | depthDist (Eigen::Matrix< double, 8, 1 > &dist) const |
| bool | colorK (mat3 &K) const override |
| Retrieves color camera intrinsics. | |
| bool | colorDist (vec5 &dist) const override |
| Retrieves color camera distortion parameters. | |
| bool | colorDist (Eigen::Matrix< double, 8, 1 > &dist) const |
| void | setEnableRadialDistortionCorrection (bool enable) |
| Enables or disables radial distortion correction. | |
| bool | enableRadialDistortionCorrection () const |
| bool | depthToColorT (mat4 &T) const override |
| Retrieves depth-to-color camera transformation. | |
| int | depthImageWidth () const override |
| Returns depth image dimensions. | |
| int | depthImageHeight () const override |
| int | colorImageWidth () const override |
| Returns color image dimensions. | |
| int | colorImageHeight () const override |
| int | streamWidth (Stream stream) const |
| Returns stream dimensions. | |
| int | streamHeight (Stream stream) const |
| std::vector< Stream > | supportedStreams () |
| Returns supported streams. | |
| bool | setStreams (const std::vector< Stream > &streams) |
| Sets active streams. | |
| std::vector< Stream > | streams () |
| Returns active streams. | |
| bool | selectDefaultFrameFormat () override |
| Selects default frame format. | |
| virtual bool | supportsColor () const override |
| Returns true if color stream is supported. | |
| bool | isColorExposureSupported (int *minVal=nullptr, int *maxVal=nullptr, bool *supportsAuto=nullptr) const |
| Exposure control. | |
| bool | setColorExposure (bool autoExposure, int value) |
| bool | colorExposure (bool &autoExposure, int &value) const |
| bool | isColorGainSupported (int *minVal=nullptr, int *maxVal=nullptr) const |
| Gain control. | |
| bool | setColorGain (int value) |
| bool | colorGain (int &value) const |
| bool | isColorWhiteBalanceSupported (int *minVal=nullptr, int *maxVal=nullptr, int *step=0, bool *supportsAuto=nullptr) const |
| White balance control. | |
| bool | setColorWhiteBalance (bool autoWhiteBalance, int value) |
| bool | colorWhiteBalance (bool &autoWhiteBalance, int &value) const |
| bool | isColorContrastSupported (int *minVal=nullptr, int *maxVal=nullptr) const |
| Contrast control. | |
| bool | setColorContrast (int value) |
| bool | colorContrast (int &value) const |
| bool | isColorBrightnessSupported (int *minVal=nullptr, int *maxVal=nullptr) const |
| Brightness control. | |
| bool | setColorBrightness (int value) |
| bool | colorBrightness (int &value) const |
| bool | isColorSaturationSupported (int *minVal=nullptr, int *maxVal=nullptr) const |
| Saturation control. | |
| bool | setColorSaturation (int value) |
| bool | colorSaturation (int &value) const |
| bool | isColorSharpnessSupported (int *minVal=nullptr, int *maxVal=nullptr) const |
| Sharpness control. | |
| bool | setColorSharpness (int value) |
| bool | colorSharpness (int &value) const |
| bool | isBacklightCompensationEnabled (bool &value) const |
| Backlight compensation. | |
| bool | setEnableBacklightCompensation (bool value) |
| bool | powerlineFrequency (KinectAzureStream::PowerlineFrequency &freq) const |
| Powerline frequency control. | |
| bool | setPowerlineFrequency (PowerlineFrequency freq) |
| void | getSyncJackInfo (bool &syncInJackConnected, bool &syncOutJackConnected) |
| Synchronization jack info. | |
| void | setWiredSyncMode (SyncMode syncMode) |
| Wired sync mode. | |
| bool | enableIMU (bool v) |
| IMU control. | |
| void | configure (const Properties *p) override |
| Configures the stream from a Properties object. | |
| void | configuration (Properties *p) const override |
| Writes the current configuration to a Properties object. | |
Public Member Functions inherited from RGBDStream | |
| virtual bool | grabSingleFrame () |
| Grabs a single RGBD frame. | |
| virtual bool | isOpen () const |
| virtual std::string | firmwareVersion () const |
| virtual bool | isExposureSupported () const |
| virtual bool | setExposure (int value) |
| virtual int | exposure () const |
| RGBDStream (const std::string &name="") | |
| virtual bool | supportsAutoWhiteBalance () const |
| virtual bool | setAutoWhiteBalanceEnabled (bool enable) |
| virtual bool | isAutoWhiteBalanceEnabled () const |
| virtual bool | supportsAutoExposure () const |
| virtual bool | setAutoExposureEnabled (bool enable) |
| virtual bool | isAutoExposureEnabled () const |
| virtual bool | isGainSupported () const |
| virtual bool | setGain (int value) |
| virtual int | gain () const |
| virtual bool | grabImage (float *depthData, unsigned char *colorData, int timeOut=500) |
| virtual bool | depthDist (Eigen::Matrix< double, 5, 1 > &dist) const |
| Retrieve depth camera distortion parameters if available. | |
| virtual bool | dropCorruptDepthData (bool &drop) const |
| virtual bool | setDropCorruptDepthData (bool drop) |
| virtual bool | colorDist (Eigen::Matrix< double, 5, 1 > &dist) const |
| Retrieve color camera distortion parameters if available. | |
| virtual bool | setDepthK (const mat3 &K) |
| virtual bool | setDepthDist (const Eigen::Matrix< double, 5, 1 > &dist) |
| virtual bool | setColorK (const mat3 &K) |
| virtual bool | setColorDist (const Eigen::Matrix< double, 5, 1 > &dist) |
| virtual bool | setDepthToColorT (const mat4 &T) |
| virtual bool | setLaserState (bool enable) |
| virtual bool | laserState () const |
| virtual bool | supportsSingleFrameGrab () const |
| Returns if the stream supports single frame capture model; set false by default. | |
| virtual bool | startOnImport () const |
| Returns if the stream shall be started on import; set true by default. | |
| virtual bool | loadCalibration (const Properties *p) |
| virtual bool | saveCalibration (Properties *p) const |
| virtual bool | createDefaultStreamController () override final |
| Indicates whether a StreamController should be created for the stream. | |
| std::unique_ptr< RGBDDataComponent > | getRGBDDataComponentCopy () |
| Returns the copy of the RGBDDataComponent. If it wasn't present before, it is added and updated. | |
Public Member Functions inherited from ImageStream | |
| ImageStream (const std::string &name="") | |
| Data::Kind | kind () const override final |
| Returns the kind (typically IMAGESTREAM or VOLUMESTREAM) | |
| void | setModality (Modality m) |
| Set the modality descriptor of this stream. | |
| Modality | modality () const override final |
| Return the modality of this stream. | |
| virtual bool | topDown () const |
| Specify whether the first line of the image data is to be displayed on top. | |
| int | size () const override |
| Returns the number of images of the image stream per emission. | |
| std::string | describe () const override |
| Short description of the stream including latest state and update rate information. | |
Public Member Functions inherited from Stream | |
| Stream (const std::string &name="") | |
Constructor with the name for this stream. | |
| virtual ThreadingMode | threadingMode () const |
| Configures threading mode of stream. | |
| virtual bool | supportsAsyncOperation () |
| Returns true if xxxAsync() methods support execution in a background thread. | |
| std::shared_future< bool > | openAsync () |
| Open stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | closeAsync () |
| Close stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | startAsync () |
| Start stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | stopAsync () |
| Stop stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | pauseAsync () |
| Pause stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| std::shared_future< bool > | resumeAsync () |
| Resume stream in an asynchronous fashion (wait on the returned future before taking further actions). Returns whether the operation was successful. | |
| bool | open () |
| Open stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | close () |
| Close stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | start () |
| Start stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | stop () |
| Stop stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | pause () |
| Pause stream and wait for the operation to complete. Returns whether the operation was successful. | |
| bool | resume () |
| Resume stream and wait for the operation to complete. Returns whether the operation was successful. | |
| virtual bool | supportsPausing () const |
| Override and return true if this stream implements the pausing and resume operations. | |
| bool | restart () |
| Stops, closes, opens and starts the stream. Returns whether the operation was successful. | |
| virtual bool | reset () |
| Reverts stream to first frame, if possible. Returns whether the operation was successful. | |
| virtual bool | isRunning () const |
| Return whether stream is currently running. | |
| State | currentState () const |
| bool | isStateOneOf (const std::vector< State > &states) const |
| Geometry::AlignedBox | bounds () const override |
| Per default a Stream has empty/invalid bounds. | |
| Pose::TransformationConvention | matrixConvention () const override |
| Matrices of streams by default map to the world coordinate system. | |
| double | updateRate () const |
Average update rate in Hz of the signalStreamData. | |
| std::string | describe () const override |
| Short description of the stream including latest state and update rate information. | |
Public Member Functions inherited from Data | |
| Data (const std::string &name="") | |
| Data (const Data &other) | |
| Data & | operator= (const Data &other) |
| virtual | ~Data () |
| Mandatory virtual destructor. | |
| const std::string & | name () const |
| Return the name of this data. | |
| void | setName (const std::string &name) |
| Sets the name of this data. | |
| virtual bool | isAnnotationType () const |
| Return whether this data type is visualized through an annotation (e.g. mesh) | |
| const DataComponentList & | components () const |
| Returns the list of DataComponents for this data. | |
| DataComponentList & | components () |
| virtual void | setMatrixFromWorld (const mat4 &m) |
| Set matrix mapping from the world coordinate system to the data coordinate system. | |
| virtual void | setMatrixToWorld (const mat4 &m) |
| Set matrix mapping from the data coordinate system to the world coordinate system. | |
| virtual mat4 | matrixFromWorld () const |
| Get matrix mapping from the world coordinate system to the data coordinate system. | |
| virtual mat4 | matrixToWorld () const |
| Get matrix mapping from the data coordinate system to the world coordinate system. | |
| virtual mat4 | matrix () const |
| Return the transformation matrix. | |
| virtual void | setMatrix (const mat4 &m) |
| Set the transformation matrix. | |
Public Member Functions inherited from Configurable | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Public Member Functions inherited from Selectable | |
| Selectable (const Selectable &) | |
| Selectable (Selectable &&) | |
| Selectable & | operator= (const Selectable &) |
| Selectable & | operator= (Selectable &&) |
| virtual Selection | selection () const |
| virtual int | focus () const |
| virtual void | setSelection (const Selection &sel) |
| Set the underlying selection. | |
| virtual void | setFocus (int index) |
| Set focus of the selection. | |
Static Public Member Functions | |
| static std::vector< KinectAzureStream * > | enumerateStreams () |
| Enumerates available Kinect Azure devices (deprecated). | |
| static std::vector< std::unique_ptr< KinectAzureStream > > | enumerate () |
| Enumerates available Kinect Azure devices. | |
Static Public Member Functions inherited from Stream | |
| static std::string | stateToString (State state) |
Static Public Member Functions inherited from Data | |
| static std::string | modalityString (Data::Modality m) |
| Return the name of an image modality. | |
| static Data::Modality | stringToModality (const std::string &s) |
| Returns the modality corresponding to a modality string or NA if nothing matches. | |
Protected Member Functions | |
| bool | openImpl () override |
| Open stream. | |
| bool | closeImpl () override |
| Close stream. | |
| bool | startImpl () override |
| Start stream. | |
| bool | stopImpl () override |
| Stop stream. | |
| std::optional< WorkContinuation > | doWork () override |
| Create one StreamData and publish it (this function will be called at the desired frame rate) If this is not desired, you can do the following: return std::nullopt;. | |
Protected Member Functions inherited from RGBDStream | |
| virtual void | onRGBDDataComponentChanged () |
| Called when the RGBDDataComponent changes. | |
| virtual bool | defaultColorResolution (int &width, int &height) |
| Returns default color resolution. | |
| virtual bool | defaultDepthResolution (int &width, int &height) |
| Returns default depth resolution. | |
Protected Member Functions inherited from ImageStream | |
| void | setKind (Kind k) |
| Sets the kind (typically IMAGESTREAM or VOLUMESTREAM) and emits signalKindChanged. | |
| bool | workerThreadRequiresOpenGl () const override |
| Ensure the thread has an GL context before the main loop starts. | |
Protected Member Functions inherited from Stream | |
| virtual bool | pauseImpl () |
| Pause stream (not required to be supported). | |
| virtual bool | resumeImpl () |
| Resume stream from pause (only required to be supported when pauseImpl() is supported). | |
| virtual bool | worksWhilePaused () const |
| Override if doWork() should be called also in the Paused state. | |
| void | changeState (State newState) |
| std::shared_future< bool > | attemptStateChange (std::function< bool()> work, State stateWorking, State stateSuccess, State stateError) |
Protected Member Functions inherited from Data | |
| void | swapWith (Data &other) |
| Swaps the data and emits a matrix and name changed signal for both. | |
Additional Inherited Members | |
Public Attributes inherited from ImageStream | |
| Signal< Data::Kind > | signalKindChanged |
| Is emitted when the stream changes between IMAGESTREAM and VOLUMESTREAM, before the next ImageStreamData is emitted. | |
Public Attributes inherited from Stream | |
| ProtectedSignal< StateChange > | signalStateChanged |
| Emitted after a state change has been completed with the old and new state. | |
| ProtectedSignal | signalEnded |
| Indicates that the stream reached the end of its data, e.g. when a video stream has played to the end. | |
| ProtectedSignal< std::shared_ptr< const StreamData > > | signalStreamData |
| Signal that is emitted by the stream when a new StreamData is available. | |
| DeprecatedSignal< ProtectedSignal< std::shared_ptr< const StreamData > >, const StreamData & > | signalNewData |
| Signal that is emitted by the stream when a new StreamData is available. | |
Public Attributes inherited from Data | |
| Signal< const Data * > | signalDeleted |
| Signal emitted when this instance is deleted. | |
| Signal< const Data * > | signalMatrixChanged |
| Signal emitted when the transformation of this Data has changed. | |
| Signal< std::string > | signalNameChanged |
| Signal emitted when the name changed. | |
Public Attributes inherited from Configurable | |
| Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Public Attributes inherited from Selectable | |
| ProtectedSignal | signalSelectionChanged |
| Signals that the selection or size might have changed. | |
Protected Attributes inherited from Data | |
| mat4 | m_matrix |
| Transformation matrix. | |
| std::recursive_mutex * | m_matrixMutex |
| Used to internally synchronize access to the matrix of data. | |
| DataComponentList | m_dataComponentList |
| The list of DataComponents for this data. | |
Protected Attributes inherited from Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
Protected Attributes inherited from Selectable | |
| std::mutex | m_selectionMutex |
| Mutex protecting the selection. | |
| Selection | m_sel |
|
strong |
|
strong |
|
strong |
Supported depth formats.
|
strong |
|
static |
Enumerates available Kinect Azure devices (deprecated).
|
overridevirtual |
Queries supported depth formats.
Reimplemented from RGBDStream.
|
overridevirtual |
Queries supported color formats.
Reimplemented from RGBDStream.
|
overridevirtual |
Gets current depth format.
Reimplemented from RGBDStream.
|
overridevirtual |
Gets current color format.
Reimplemented from RGBDStream.
|
overridevirtual |
Sets depth format.
Reimplemented from RGBDStream.
|
overridevirtual |
Sets color format.
Reimplemented from RGBDStream.
|
inlineoverridevirtual |
Returns sensor name.
Reimplemented from RGBDStream.
|
inlineoverridevirtual |
Reimplemented from RGBDStream.
|
inlineoverridevirtual |
Unique identifier for stream.
Implements Stream.
|
inlineoverridevirtual |
Returns true if factory calibration is used.
Reimplemented from RGBDStream.
|
overridevirtual |
Retrieves depth camera intrinsics.
Reimplemented from RGBDStream.
|
overridevirtual |
Retrieves color camera intrinsics.
Reimplemented from RGBDStream.
|
overridevirtual |
Retrieves depth-to-color camera transformation.
Reimplemented from RGBDStream.
|
overridevirtual |
Returns depth image dimensions.
Implements RGBDStream.
|
overridevirtual |
Implements RGBDStream.
|
overridevirtual |
Returns color image dimensions.
Implements RGBDStream.
|
overridevirtual |
Implements RGBDStream.
|
overridevirtual |
Selects default frame format.
Reimplemented from RGBDStream.
|
inlineoverridevirtual |
Returns true if color stream is supported.
Implements RGBDStream.
|
overridevirtual |
Configures the stream from a Properties object.
Reimplemented from Configurable.
|
overridevirtual |
Writes the current configuration to a Properties object.
Reimplemented from Configurable.
|
overrideprotectedvirtual |
Open stream.
Returns whether the operation was successful. This method is responsible for allocating necessary resources, initializing device handles, and establishing connections to devices. Implementers should ensure that all one-time setup tasks are completed here.
Implements Stream.
|
overrideprotectedvirtual |
Close stream.
Returns whether the operation was successful. This method should be used to free any resources that were allocated during the openImpl() call and to disconnect from any devices. Implementers must ensure that all resources are properly released to avoid memory leaks.
Implements Stream.
|
overrideprotectedvirtual |
Start stream.
Returns whether the operation was successful. This method is intended to initiate the actual data readout process or to connect a callback function for data handling. Implementers should ensure that the stream is ready and producing data after this call.
Implements Stream.
|
overrideprotectedvirtual |
Stop stream.
Returns whether the operation was successful. This method should halt any ongoing data readouts or callbacks, effectively pausing the data flow to reduce CPU load. Implementers should ensure that the stream can be restarted after this call.
Implements Stream.
|
overrideprotectedvirtual |
Create one StreamData and publish it (this function will be called at the desired frame rate) If this is not desired, you can do the following: return std::nullopt;.
Implements Stream.