Ocean
Ocean::Media::BufferImage Class Reference

This class implements a frame medium object which is defined by a given buffer and image or frame type. More...

Inheritance diagram for Ocean::Media::BufferImage:

Public Member Functions

bool isStarted () const override
 Returns whether the medium is started currently. More...
 
Timestamp startTimestamp () const override
 Returns the start timestamp. More...
 
Timestamp pauseTimestamp () const override
 Returns the pause timestamp. More...
 
Timestamp stopTimestamp () const override
 Returns the stop timestamp. More...
 
virtual bool setBufferImage (const void *buffer, const size_t size, const std::string &imageBufferType=std::string())
 Sets or changes the buffer of this image, the given memory buffer is copied and stored internally. More...
 
const std::string & getImageBufferType () const
 Returns the image buffer type. More...
 
- Public Member Functions inherited from Ocean::Media::FrameMedium
 ~FrameMedium () override
 Destructs a frame object. More...
 
bool hasFrame () const
 Returns whether the object holds a frame. More...
 
FrameFrequency frameFrequency () const
 Returns the frequency of the frame in Hz. More...
 
virtual FrameRef frame (SharedAnyCamera *anyCamera=nullptr) const
 Returns the most recent frame. More...
 
virtual FrameRef frame (const Timestamp timestamp, SharedAnyCamera *anyCamera=nullptr) const
 Returns the frame with a specific timestamp. More...
 
virtual FrameRef frameTimeout (const double timeout, SharedAnyCamera *anyCamera=nullptr) const
 Waits until the first frame is available. More...
 
virtual bool hasFrame (const Timestamp timestamp) const
 Returns whether this media object currently holds a frame with specified timestamp. More...
 
unsigned int preferredFrameWidth () const
 Returns the preferred width of the frame in pixel. More...
 
unsigned int preferredFrameHeight () const
 Returns the preferred height of the frame in pixel. More...
 
FrameType::PixelFormat preferredFramePixelFormat () const
 Returns the preferred frame pixel format. More...
 
FrameFrequency preferredFrameFrequency () const
 Returns the preferred frame frequency in Hz. More...
 
virtual HomogenousMatrixD4 device_T_camera () const
 Returns the transformation between the camera and device. More...
 
virtual bool setPreferredFrameDimension (const unsigned int width, const unsigned int height)
 Sets the preferred frame dimension. More...
 
virtual bool setPreferredFramePixelFormat (const FrameType::PixelFormat format)
 Sets the preferred frame pixel format. More...
 
virtual bool setPreferredFrameFrequency (const FrameFrequency frequency)
 Sets the preferred frame frequency in Hz. More...
 
size_t capacity () const
 Returns the capacity of the frame history of this frame medium object. More...
 
bool setCapacity (const size_t capacity)
 Sets or changes the capacity of the frame history of this frame medium object. More...
 
FrameCallbackScopedSubscription addFrameCallback (FrameCallbackFunction &&frameCallbackFunction)
 Adds a callback function which is called whenever a new frame arrives. 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...
 
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 MediumRef clone () const
 Clones this medium and returns a new independent instance of this medium. More...
 

Protected Member Functions

 BufferImage (const std::string &url)
 Creates a new buffer image by an arbitrary url defining the name of the resulting object. More...
 
 ~BufferImage () override=default
 Destructs a buffer image object. More...
 
- Protected Member Functions inherited from Ocean::Media::FrameMedium
 FrameMedium (const std::string &url)
 Creates a new frame medium by a given url. More...
 
virtual bool deliverNewFrame (Frame &&frame, SharedAnyCamera &&anyCamera=SharedAnyCamera())
 Delivers a new frame to this FrameMedium. 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

Timestamp startTimestamp_
 Start timestamp. More...
 
Timestamp pauseTimestamp_
 Pause timestamp. More...
 
Timestamp stopTimestamp_
 Stop timestamp. More...
 
bool started_ = false
 Determining whether this image is 'started' and holds valid image data. More...
 
Memory memory_
 The object's memory. More...
 
std::string bufferType_
 The type of the buffer image. More...
 
- Protected Attributes inherited from Ocean::Media::FrameMedium
FrameCollection frameCollection_
 Frame collection storing several frames with different timestamps. More...
 
FrameCallbackHandler frameCallbackHandler_
 The handler for frame callback functions. More...
 
FrameFrequency recentFrameFrequency_ = FrameFrequency(0)
 Frame frequency. More...
 
MediaFrameType preferredFrameType_
 Preferred frame type of the medium. 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...
 

Friends

class Manager
 

Additional Inherited Members

- Public Types inherited from Ocean::Media::FrameMedium
typedef double FrameFrequency
 Definition of a frame frequency defined in Hz. More...
 
typedef std::function< void(const Frame &frame, const SharedAnyCamera &camera)> FrameCallbackFunction
 Definition of a callback function for frame events. More...
 
typedef ScopedSubscriptionHandler::ScopedSubscriptionType FrameCallbackScopedSubscription
 Definition of a subscription object for frame callback events. More...
 
- 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::FrameMedium
static bool syncedFrames (const FrameMediumRefs &frameMediums, const Timestamp lastTimestamp, FrameRefs &frames, SharedAnyCameras &cameras, const unsigned int waitTime=2u, bool *timedOut=nullptr, HomogenousMatricesD4 *device_T_cameras=nullptr)
 Extracts most recent frames from several frame medium objects and ensures that the timestamps of all frames are identical. 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...
 
- Protected Types inherited from Ocean::Media::FrameMedium
typedef ScopedSubscriptionCallbackHandlerT< FrameCallbackFunction, FrameMedium, true > FrameCallbackHandler
 Definition of a thread-safe subscription handler for frame callback functions. More...
 
typedef std::vector< MediaFrameTypeFrameTypes
 Definition of a vector holding frame types. More...
 

Detailed Description

This class implements a frame medium object which is defined by a given buffer and image or frame type.

A buffer image can be used to define an explicit frame without loading the content from e.g. a file but from a given memory buffer.

Constructor & Destructor Documentation

◆ BufferImage()

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

Creates a new buffer image by an arbitrary url defining the name of the resulting object.

Parameters
urlArbitrary name to identify this pixel image later, if necessary

◆ ~BufferImage()

Ocean::Media::BufferImage::~BufferImage ( )
overrideprotecteddefault

Destructs a buffer image object.

Member Function Documentation

◆ getImageBufferType()

const std::string & Ocean::Media::BufferImage::getImageBufferType ( ) const
inline

Returns the image buffer type.

Returns
Type of the image buffer, if known (e.g. the file extension of a corresponding image file)

◆ isStarted()

bool Ocean::Media::BufferImage::isStarted ( ) const
overridevirtual

Returns whether the medium is started currently.

See also
Medium:isStarted().

Implements Ocean::Media::Medium.

◆ pauseTimestamp()

Timestamp Ocean::Media::BufferImage::pauseTimestamp ( ) const
overridevirtual

Returns the pause timestamp.

See also
Medium::pauseTimestamp().

Implements Ocean::Media::Medium.

◆ setBufferImage()

virtual bool Ocean::Media::BufferImage::setBufferImage ( const void *  buffer,
const size_t  size,
const std::string &  imageBufferType = std::string() 
)
virtual

Sets or changes the buffer of this image, the given memory buffer is copied and stored internally.

Parameters
bufferThe buffer to be copied, must be valid
sizeThe size of the given memory buffer in bytes, with range [1, infinity)
imageBufferTypeType of the image that is stored in the given buffer, should be specified if known (e.g. the file extension of a corresponding image file)
Returns
True, if succeeded

◆ startTimestamp()

Timestamp Ocean::Media::BufferImage::startTimestamp ( ) const
overridevirtual

Returns the start timestamp.

See also
Medium::startTimestmap().

Implements Ocean::Media::Medium.

◆ stopTimestamp()

Timestamp Ocean::Media::BufferImage::stopTimestamp ( ) const
overridevirtual

Returns the stop timestamp.

See also
Medium::stopTimestamp().

Implements Ocean::Media::Medium.

Friends And Related Function Documentation

◆ Manager

friend class Manager
friend

Field Documentation

◆ bufferType_

std::string Ocean::Media::BufferImage::bufferType_
protected

The type of the buffer image.

◆ memory_

Memory Ocean::Media::BufferImage::memory_
protected

The object's memory.

◆ pauseTimestamp_

Timestamp Ocean::Media::BufferImage::pauseTimestamp_
protected

Pause timestamp.

◆ started_

bool Ocean::Media::BufferImage::started_ = false
protected

Determining whether this image is 'started' and holds valid image data.

◆ startTimestamp_

Timestamp Ocean::Media::BufferImage::startTimestamp_
protected

Start timestamp.

◆ stopTimestamp_

Timestamp Ocean::Media::BufferImage::stopTimestamp_
protected

Stop timestamp.


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