Ocean
Ocean::Media::FiniteMedium Class Referenceabstract

This class is the base class for all finite mediums. More...

Inheritance diagram for Ocean::Media::FiniteMedium:

Public Member Functions

virtual double duration () const =0
 Returns the duration of the finite medium. More...
 
virtual double normalDuration () const =0
 Returns the duration without speed consideration. More...
 
virtual double position () const =0
 Returns the recent position of the finite medium. More...
 
virtual float speed () const =0
 Returns the speed of the finite medium. More...
 
bool loop () const
 Returns whether the medium is played in a loop. More...
 
virtual bool setPosition (const double position)
 Sets the recent position of the finite medium. More...
 
virtual bool setSpeed (const float speed)
 Sets the speed of the finite medium. More...
 
virtual bool setLoop (const bool value)
 Sets whether the medium has to be played in a loop. More...
 
virtual bool taskFinished () const
 Returns whether a previous task has been finished. More...
 
- Public Member Functions inherited from Ocean::Media::Medium
const std::string & url () const
 Returns the url of the medium. More...
 
bool isValid () const
 Returns whether the medium is valid. More...
 
const std::string & library () const
 Returns the name of the owner library. More...
 
Type type () const
 Returns the type of the medium. More...
 
bool isType (const Type type) const
 Returns whether a medium has a given type. More...
 
virtual bool isStarted () const =0
 Returns whether the medium is started currently. More...
 
bool isExclusive () const
 Returns whether this medium can be use exclusively. More...
 
virtual bool start ()=0
 Starts the medium. More...
 
virtual bool pause ()=0
 Pauses the medium. More...
 
virtual bool stop ()=0
 Stops the medium. More...
 
virtual Timestamp startTimestamp () const =0
 Returns the start timestamp. More...
 
virtual Timestamp pauseTimestamp () const =0
 Returns the pause timestamp. More...
 
virtual Timestamp stopTimestamp () const =0
 Returns the stop timestamp. More...
 
virtual MediumRef clone () const
 Clones this medium and returns a new independent instance of this medium. More...
 

Static Public Attributes

static constexpr float AS_FAST_AS_POSSIBLE = 0.0f
 Definition of a speed value allowing to deliver the media content as fast as possible. More...
 

Protected Member Functions

 FiniteMedium (const std::string &url)
 Creates a new finite medium by a given url. More...
 
- Protected Member Functions inherited from Ocean::Media::Medium
 Medium (const Medium &medium)=delete
 Disabled copy constructor. More...
 
 Medium (const std::string &url)
 Creates a new medium by a given url. More...
 
virtual ~Medium ()
 Destructs a medium. More...
 
Mediumoperator= (const Medium &medium)=delete
 Disabled copy operator. More...
 

Protected Attributes

bool loop_ = false
 Determines whether the medium is played in a loop. More...
 
- Protected Attributes inherited from Ocean::Media::Medium
std::string url_
 Url of the medium. More...
 
std::string libraryName_
 Name of the owner library. More...
 
bool isValid_ = false
 Determines whether the medium is valid. More...
 
Type type_ = MEDIUM
 Type of the medium. More...
 
Lock lock_
 Medium lock. More...
 

Additional Inherited Members

- Public Types inherited from Ocean::Media::Medium
enum  Type : uint32_t {
  MEDIUM = 0u , FRAME_MEDIUM = 1u << 0u , SOUND_MEDIUM = 1u << 1u , FINITE_MEDIUM = 1u << 2u ,
  LIVE_MEDIUM = 1u << 3u , CONFIG_MEDIUM = 1u << 4u , AUDIO = (1u << 5u) | FINITE_MEDIUM | SOUND_MEDIUM , IMAGE = (1u << 6u) | FRAME_MEDIUM ,
  PIXEL_IMAGE = (1u << 7u) | FRAME_MEDIUM , BUFFER_IMAGE = (1u << 8u) | FRAME_MEDIUM , IMAGE_SEQUENCE = (1u << 9u) | FRAME_MEDIUM | FINITE_MEDIUM , LIVE_AUDIO = (1u << 10u) | LIVE_MEDIUM | SOUND_MEDIUM ,
  LIVE_VIDEO = (1u << 11u) | LIVE_MEDIUM | FRAME_MEDIUM , MICROPHONE = (1u << 12u) | LIVE_MEDIUM , MOVIE = (1u << 13u) | FINITE_MEDIUM | FRAME_MEDIUM | SOUND_MEDIUM
}
 Definition of different medium types. More...
 
- Static Public Member Functions inherited from Ocean::Media::Medium
static std::string convertType (const Type type)
 Converts a medium type to a unique string. More...
 
static Type convertType (const std::string &type)
 Converts a medium type string to a medium type. More...
 

Detailed Description

This class is the base class for all finite mediums.

Constructor & Destructor Documentation

◆ FiniteMedium()

Ocean::Media::FiniteMedium::FiniteMedium ( const std::string &  url)
explicitprotected

Creates a new finite medium by a given url.

Parameters
urlUrl of the finite medium

Member Function Documentation

◆ duration()

◆ loop()

bool Ocean::Media::FiniteMedium::loop ( ) const
inline

Returns whether the medium is played in a loop.

By default a finite medium will not be looped.

Returns
True, if so
See also
setLoop().

◆ normalDuration()

virtual double Ocean::Media::FiniteMedium::normalDuration ( ) const
pure virtual

◆ position()

virtual double Ocean::Media::FiniteMedium::position ( ) const
pure virtual

◆ setLoop()

virtual bool Ocean::Media::FiniteMedium::setLoop ( const bool  value)
virtual

Sets whether the medium has to be played in a loop.

Parameters
valueTrue, if looping
Returns
True, if succeeded
See also
loop().

Reimplemented in Ocean::Media::AVFoundation::AVFAudio, and Ocean::Media::Android::AAudio.

◆ setPosition()

virtual bool Ocean::Media::FiniteMedium::setPosition ( const double  position)
virtual

◆ setSpeed()

virtual bool Ocean::Media::FiniteMedium::setSpeed ( const float  speed)
virtual

Sets the speed of the finite medium.

The speed value is relative to the media's standard speed.
For example, a speed value of 1.0 means the standard speed, 2.0 is twice as fast, and 0.5 is half as fast as the standard speed.
However, a speed value of 0 (or AS_FAST_AS_POSSIBLE) will ignore the standard playback time and will deliver the media content as fast as possible.

Parameters
speedThe speed to set, with range (0, infinity), AS_FAST_AS_POSSIBLE to run the medium as fast as possible
Returns
True, if the speed is accepted

Reimplemented in Ocean::Media::MediaFoundation::MFFiniteMedium, Ocean::Media::ImageFileSequence, Ocean::Media::FFmpeg::FFMMovie, Ocean::Media::DirectShow::DSFiniteMedium, Ocean::Media::AVFoundation::AVFMovie, Ocean::Media::AVFoundation::AVFAudio, Ocean::Media::Android::AMovie, and Ocean::Media::Android::AAudio.

◆ speed()

virtual float Ocean::Media::FiniteMedium::speed ( ) const
pure virtual

Returns the speed of the finite medium.

The speed value is relative to the media's standard speed.
For example, a speed value of 1.0 means the standard speed, 2.0 is twice as fast, and 0.5 is half as fast as the standard speed.
However, a speed value of 0 (or AS_FAST_AS_POSSIBLE) will ignore the standard playback time and will deliver the media content as fast as possible.

Returns
Speed as a factor

Implemented in Ocean::Media::MediaFoundation::MFFiniteMedium, Ocean::Media::ImageFileSequence, Ocean::Media::FFmpeg::FFMMovie, Ocean::Media::DirectShow::DSFiniteMedium, Ocean::Media::AVFoundation::AVFMovie, Ocean::Media::AVFoundation::AVFAudio, Ocean::Media::Android::AMovie, and Ocean::Media::Android::AAudio.

◆ taskFinished()

virtual bool Ocean::Media::FiniteMedium::taskFinished ( ) const
virtual

Returns whether a previous task has been finished.

A task has been finished if all data that has been requested before has been provided (or e.g. rendered).

Returns
True, if so

Reimplemented in Ocean::Media::MediaFoundation::MFFiniteMedium, and Ocean::Media::DirectShow::DSFiniteMedium.

Field Documentation

◆ AS_FAST_AS_POSSIBLE

constexpr float Ocean::Media::FiniteMedium::AS_FAST_AS_POSSIBLE = 0.0f
staticconstexpr

Definition of a speed value allowing to deliver the media content as fast as possible.

At the same time, no media content is skipped.

◆ loop_

bool Ocean::Media::FiniteMedium::loop_ = false
protected

Determines whether the medium is played in a loop.


The documentation for this class was generated from the following file: