Ocean
Loading...
Searching...
No Matches
Ocean::Media::FFmpeg::FFMMedium Class Referenceabstract

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

#include <FFMMedium.h>

Inheritance diagram for Ocean::Media::FFmpeg::FFMMedium:

Public Member Functions

bool isStarted () const override
 Returns whether the medium is started currently.
 
Timestamp startTimestamp () const override
 Returns the start timestamp.
 
Timestamp pauseTimestamp () const override
 Returns the pause timestamp.
 
Timestamp stopTimestamp () const override
 Returns the stop timestamp.
 
- Public Member Functions inherited from Ocean::Media::Medium
const std::string & url () const
 Returns the url of the medium.
 
bool isValid () const
 Returns whether the medium is valid.
 
const std::string & library () const
 Returns the name of the owner library.
 
Type type () const
 Returns the type of the medium.
 
bool isType (const Type type) const
 Returns whether a medium has a given type.
 
bool isExclusive () const
 Returns whether this medium can be use exclusively.
 
virtual MediumRef clone () const
 Clones this medium and returns a new independent instance of this medium.
 

Protected Member Functions

 FFMMedium (const std::string &url)
 Creates a new medium by a given url.
 
 ~FFMMedium () override
 Destructs a FFMMedium object.
 
bool start () override
 Starts the medium.
 
bool pause () override
 Pauses the medium.
 
bool stop () override
 Stops the medium.
 
virtual bool internalStart ()=0
 Internally starts the medium.
 
virtual bool internalPause ()=0
 Internally pauses the medium.
 
virtual bool internalStop ()=0
 Internally stops the medium.
 
bool createContextAndOpenFile (const std::string &filename)
 Creates a FFmpeg context and opens a given file.
 
void releaseContext ()
 Releases the FFmpeg context.
 
- Protected Member Functions inherited from Ocean::Media::Medium
 Medium (const Medium &medium)=delete
 Disabled copy constructor.
 
 Medium (const std::string &url)
 Creates a new medium by a given url.
 
virtual ~Medium ()
 Destructs a medium.
 
Mediumoperator= (const Medium &medium)=delete
 Disabled copy operator.
 

Protected Attributes

AVFormatContext * avFormatContext_ = nullptr
 FFmpeg's format context object.
 
Timestamp startTimestamp_ = Timestamp(false)
 Start timestamp.
 
Timestamp pauseTimestamp_ = Timestamp(false)
 Pause timestamp.
 
Timestamp stopTimestamp_ = Timestamp(false)
 Stop timestamp.
 
- Protected Attributes inherited from Ocean::Media::Medium
std::string url_
 Url of the medium.
 
std::string libraryName_
 Name of the owner library.
 
bool isValid_ = false
 Determines whether the medium is valid.
 
Type type_ = MEDIUM
 Type of the medium.
 
Lock lock_
 Medium lock.
 

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.
 
static Type convertType (const std::string &type)
 Converts a medium type string to a medium type.
 

Detailed Description

This is the base class for all FFmpeg mediums.

Constructor & Destructor Documentation

◆ FFMMedium()

Ocean::Media::FFmpeg::FFMMedium::FFMMedium ( const std::string &  url)
explicitprotected

Creates a new medium by a given url.

Parameters
urlUrl of the medium

◆ ~FFMMedium()

Ocean::Media::FFmpeg::FFMMedium::~FFMMedium ( )
overrideprotected

Destructs a FFMMedium object.

Member Function Documentation

◆ createContextAndOpenFile()

bool Ocean::Media::FFmpeg::FFMMedium::createContextAndOpenFile ( const std::string &  filename)
protected

Creates a FFmpeg context and opens a given file.

Parameters
filenameThe name of the file to open, must be valid
Returns
True, if succeeded

◆ internalPause()

virtual bool Ocean::Media::FFmpeg::FFMMedium::internalPause ( )
protectedpure virtual

Internally pauses the medium.

Returns
True, if succeeded or if the medium is already paused

Implemented in Ocean::Media::FFmpeg::FFMMovie.

◆ internalStart()

virtual bool Ocean::Media::FFmpeg::FFMMedium::internalStart ( )
protectedpure virtual

Internally starts the medium.

Returns
True, if succeeded or if the medium is already started

Implemented in Ocean::Media::FFmpeg::FFMMovie.

◆ internalStop()

virtual bool Ocean::Media::FFmpeg::FFMMedium::internalStop ( )
protectedpure virtual

Internally stops the medium.

Returns
True, if succeeded or if the medium is already stopped

Implemented in Ocean::Media::FFmpeg::FFMMovie.

◆ isStarted()

bool Ocean::Media::FFmpeg::FFMMedium::isStarted ( ) const
overridevirtual

Returns whether the medium is started currently.

See also
Medium::isStarted()

Implements Ocean::Media::Medium.

◆ pause()

bool Ocean::Media::FFmpeg::FFMMedium::pause ( )
overrideprotectedvirtual

Pauses the medium.

The internalPause() function will be called inside.

See also
Medium::pause()

Implements Ocean::Media::Medium.

◆ pauseTimestamp()

Timestamp Ocean::Media::FFmpeg::FFMMedium::pauseTimestamp ( ) const
overridevirtual

Returns the pause timestamp.

Returns
Pause timestamp

Implements Ocean::Media::Medium.

◆ releaseContext()

void Ocean::Media::FFmpeg::FFMMedium::releaseContext ( )
protected

Releases the FFmpeg context.

◆ start()

bool Ocean::Media::FFmpeg::FFMMedium::start ( )
overrideprotectedvirtual

Starts the medium.

The internalStart() function will be called inside.

See also
Medium::start()

Implements Ocean::Media::Medium.

◆ startTimestamp()

Timestamp Ocean::Media::FFmpeg::FFMMedium::startTimestamp ( ) const
overridevirtual

Returns the start timestamp.

Returns
Start timestamp

Implements Ocean::Media::Medium.

◆ stop()

bool Ocean::Media::FFmpeg::FFMMedium::stop ( )
overrideprotectedvirtual

Stops the medium.

The internalStop() function will be called inside.

See also
Medium::stop()

Implements Ocean::Media::Medium.

◆ stopTimestamp()

Timestamp Ocean::Media::FFmpeg::FFMMedium::stopTimestamp ( ) const
overridevirtual

Returns the stop timestamp.

Returns
Stop timestamp

Implements Ocean::Media::Medium.

Field Documentation

◆ avFormatContext_

AVFormatContext* Ocean::Media::FFmpeg::FFMMedium::avFormatContext_ = nullptr
protected

FFmpeg's format context object.

◆ pauseTimestamp_

Timestamp Ocean::Media::FFmpeg::FFMMedium::pauseTimestamp_ = Timestamp(false)
protected

Pause timestamp.

◆ startTimestamp_

Timestamp Ocean::Media::FFmpeg::FFMMedium::startTimestamp_ = Timestamp(false)
protected

Start timestamp.

◆ stopTimestamp_

Timestamp Ocean::Media::FFmpeg::FFMMedium::stopTimestamp_ = Timestamp(false)
protected

Stop timestamp.


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