![]() |
ImFusion C++ SDK 4.5.0
|
#include <ImFusion/Stream/PlaybackAlgorithmBase.h>
Base interface for playback stream algorithms. More...
Base interface for playback stream algorithms.
Provides a common API to control playback parameters (looping, FPS, speed factor, frame skipping) and to query timestamp support of the underlying playback stream(s).
Public Member Functions | |
| virtual void | setSpeedFactor (const double speedFactor)=0 |
| Set the playback speed factor relative to original timing. | |
| virtual double | speedFactor () const |
| Return the current playback speed factor. | |
| virtual void | setFps (double const fps)=0 |
| Set the playback FPS. | |
| virtual double | fps () const |
| Return the current playback FPS. | |
| virtual void | setSkipDelayedFrames (const bool skipDelayedFrames)=0 |
| Configure skipping of delayed frames. | |
| virtual bool | skipDelayedFrames () const |
| Return whether delayed frames are skipped. | |
| virtual void | setLoop (bool const loop)=0 |
| Enable/disable looping playback. | |
| virtual bool | loop () const |
| Return whether playback is looped. | |
| virtual bool | timestampValid () const =0 |
| Return whether the underlying data provides valid timestamps. | |
| virtual bool | timestampValidAndEquidistant () const =0 |
| Return whether timestamps are valid and (approximately) equidistant. | |
| virtual std::optional< double > | calculatedInitialFps () const =0 |
| Return the frame rate inferred from equidistant timestamps (if available). | |
| Public Member Functions inherited from ImFusion::StreamAlgorithmBase | |
| bool | isOutputTaken () const |
| virtual Stream * | stream ()=0 |
| virtual DataGroup * | dataGroup () |
| virtual OwningDataList | takeOutput () |
| Returns an OwningDataList containing the stream and sets m_isOutputTaken to true. | |
| Public Member Functions inherited from ImFusion::SignalReceiver | |
| SignalReceiver ()=default | |
| Default constructor. | |
| SignalReceiver (const SignalReceiver &other) | |
| Copy constructor, does not copy any existing signal connections from other. | |
| SignalReceiver & | operator= (SignalReceiver rhs) |
| Assignment operator, disconnects all existing connections, does not copy any existing signal connections from rhs. | |
| virtual | ~SignalReceiver () |
| Virtual destructor disconnects from all connected signals. | |
| Public Member Functions inherited from ImFusion::Algorithm | |
| Algorithm () | |
| Default constructor will registers a single "compute" action that calls compute() and returns status(). | |
| virtual void | compute ()=0 |
| Execute the algorithm. | |
| virtual OwningDataList | takeOutput () |
| Return any new Data that was created by the Algorithm during the last call to compute(). | |
| virtual void | setProgress (Progress *progress) |
| Sets a Progress interface the algorithm can use to notify observers about its computing progress. | |
| Progress * | progress () const |
| Returns the progress interface if set. | |
| virtual int | status () const |
| Indicates the status of the last call to compute(). | |
| virtual bool | survivesDataDeletion (const Data *) const |
| Indicates whether the algorithm can handle (partial) deletion of the specified data, by default this checks whether the data is in the input list. | |
| const FactoryInfo & | factoryInfo () const |
| Returns the record describing how this Algorithm was instantiated by the AlgorithmFactory. | |
| void | setFactoryInfo (const FactoryInfo &value) |
| Sets the record describing how this Algorithm was instantiated by the AlgorithmFactory. | |
| Status | runAction (const std::string &id) |
| Run the action with name id if it exists. | |
| const std::vector< Action > & | actions () |
| Get a mapping from Action id to Action as registered in this algorithm. | |
| Public Member Functions inherited from ImFusion::Configurable | |
| virtual void | configure (const Properties *p) |
| Configure this object instance by de-serializing the given Properties. | |
| virtual void | configuration (Properties *p) const |
| Serialize the current object configuration into the given Properties object. | |
| 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 |
Protected Member Functions | |
| virtual void | streamParametersChanged ()=0 |
| Called when playback stream parameters have changed. | |
| Protected Member Functions inherited from ImFusion::StreamAlgorithmBase | |
| virtual void | resetStream ()=0 |
| Deletes the stream if m_isOutputTaken is false. In any case sets the stream to nullptr. | |
| Protected Member Functions inherited from ImFusion::SignalReceiver | |
| void | disconnectAll () |
| Disconnects all existing connections. | |
| Protected Member Functions inherited from ImFusion::Algorithm | |
| void | loadDefaults () |
| void | registerAction (const std::string &id, const std::string &guiName, const std::function< Algorithm::Status(void)> &action) |
| Register an action to be run via runAction. | |
| template<typename D> | |
| void | registerAction (const std::string &id, const std::string &guiName, Algorithm::Status(D::*action)(void)) |
| Template version of runAction that can be used with a pointer to a member function. | |
| void | registerAction (const Action &action) |
| Register an action. | |
Protected Attributes | |
| bool | m_loop = true |
| double | m_fps = 30.0 |
| double | m_speedFactor = 1.0 |
| bool | m_skipDelayedFrames = false |
| Protected Attributes inherited from ImFusion::StreamAlgorithmBase | |
| bool | m_isOutputTaken = false |
| Protected Attributes inherited from ImFusion::Algorithm | |
| std::string | m_name |
| Algorithm name. | |
| Progress * | m_progress = nullptr |
| Non-owing pointer to a progress interface. May be a nullptr. | |
| FactoryInfo | m_factoryInfo = {} |
| Record describing how this algorithm was instantiated by the AlgorithmFactory. | |
| int | m_status = Status::Unknown |
| Algorithm status after last call to compute(). | |
| std::vector< Action > | m_actions |
| Map of key given by the id of the action, of the available actions of this algorithm. | |
| Protected Attributes inherited from ImFusion::Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
Additional Inherited Members | |
| Public Types inherited from ImFusion::Algorithm | |
| enum | Status { Unknown = -1 , Success = 0 , Error = 1 , InvalidInput , IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU , UnknownAction , AbortedByUser , User = 1000 } |
| Status codes. More... | |
| Static Public Member Functions inherited from ImFusion::Algorithm | |
| static bool | createCompatible (const DataList &data, Algorithm **a=nullptr) |
| Factory function to check algorithm compatibility with input data and optionally instantiate it. | |
| Public Attributes inherited from ImFusion::Algorithm | |
| Signal | signalOutputChanged |
| Signal should be emitted by Algorithms when their output/result has changed. | |
| Signal | signalParametersChanged |
| Signal should be emitted by Algorithms when their parameter configuration has changed. | |
| Public Attributes inherited from ImFusion::Configurable | |
| Signal | signalParametersChanged |
| Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
|
pure virtual |
Set the playback speed factor relative to original timing.
| speedFactor | Speed multiplier (1.0 = normal speed). |
Implemented in ImFusion::PlaybackAlgorithm, and ImFusion::PlaybackStereoImageStreamAlgorithm.
|
inlinevirtual |
Return the current playback speed factor.
|
pure virtual |
Set the playback FPS.
| fps | Frames per second. |
Implemented in ImFusion::PlaybackAlgorithm, and ImFusion::PlaybackStereoImageStreamAlgorithm.
|
inlinevirtual |
Return the current playback FPS.
|
pure virtual |
Configure skipping of delayed frames.
| skipDelayedFrames | If true, frames may be skipped when playback falls behind. |
Implemented in ImFusion::PlaybackAlgorithm, and ImFusion::PlaybackStereoImageStreamAlgorithm.
|
inlinevirtual |
Return whether delayed frames are skipped.
|
pure virtual |
Enable/disable looping playback.
| loop | If true, playback restarts after reaching the last sample. |
Implemented in ImFusion::PlaybackAlgorithm, and ImFusion::PlaybackStereoImageStreamAlgorithm.
|
inlinevirtual |
Return whether playback is looped.
|
pure virtual |
Return whether the underlying data provides valid timestamps.
Implemented in ImFusion::PlaybackAlgorithm, and ImFusion::PlaybackStereoImageStreamAlgorithm.
|
pure virtual |
Return whether timestamps are valid and (approximately) equidistant.
Implemented in ImFusion::PlaybackAlgorithm, and ImFusion::PlaybackStereoImageStreamAlgorithm.
|
pure virtual |
Return the frame rate inferred from equidistant timestamps (if available).
Implemented in ImFusion::PlaybackAlgorithm, and ImFusion::PlaybackStereoImageStreamAlgorithm.
|
protectedpure virtual |
Called when playback stream parameters have changed.
Derived implementations should propagate updated parameters to the underlying playback stream(s) and restart playback if required.
Implemented in ImFusion::PlaybackAlgorithm, and ImFusion::PlaybackStereoImageStreamAlgorithm.