Ocean
Loading...
Searching...
No Matches
Ocean Media DirectShow Library

The Ocean Media DirectShow Library provides DirectShow media functionalities. More...

Collaboration diagram for Ocean Media DirectShow Library:

Data Structures

class  Ocean::Media::DirectShow::DSAudio
 This class implements a DirectShow audio object. More...
 
class  Ocean::Media::DirectShow::DSConfigMedium
 This class is the base class for all DirectShow mediums with advanced configuration possibilities. More...
 
class  Ocean::Media::DirectShow::DSDeviceEnumerator
 This class implements a DirectShow device enumerator. More...
 
class  Ocean::Media::DirectShow::DSEnumerators
 This class holds several different DirectShow device enumerators. More...
 
class  Ocean::Media::DirectShow::DSFileRecorder
 This class implements a DirectShow file recorder. More...
 
class  Ocean::Media::DirectShow::DSFiniteMedium
 This class is the base class for all direct show finite mediums. More...
 
class  Ocean::Media::DirectShow::DSFrameMedium
 This is the base class for all DirectShow frame mediums. More...
 
class  Ocean::Media::DirectShow::DSFrameRecorder
 This class implements a DirectShow frame recorder. More...
 
class  Ocean::Media::DirectShow::DSGraphObject
 This class is the base class for all object holding a DirectShow filter graph manager. More...
 
class  Ocean::Media::DirectShow::DSLibrary
 This class implements the DirectShow library. More...
 
class  Ocean::Media::DirectShow::DSLiveMedium
 This class is the base class for all DirectShow live mediums. More...
 
class  Ocean::Media::DirectShow::DSLiveVideo
 This class implements a DirectShow live video object. More...
 
class  Ocean::Media::DirectShow::DSMediaType
 This class wraps the DirectShow AM_MEDIA_TYPE struct;. More...
 
class  Ocean::Media::DirectShow::DSMedium
 This is the base class for all direct show mediums. More...
 
class  Ocean::Media::DirectShow::DSMovie
 This class implements a DirectShow movie object. More...
 
class  Ocean::Media::DirectShow::DSMovieRecorder
 This class implements a DirectShow movie recorder. More...
 
class  Ocean::Media::DirectShow::DSObject
 This class provides basic DirectShow functionalities. More...
 
class  Ocean::Media::DirectShow::DSRecorder
 This class is the base class for all DirectShow recorders. More...
 
class  Ocean::Media::DirectShow::DSSampleSinkFilter
 This class implements a sample sink filter for DirectShow. More...
 
class  Ocean::Media::DirectShow::DSSampleSourceFilter
 This class implements a DirectShow sample source filter pushing new samples into a DirectShow filter graph. More...
 
class  Ocean::Media::DirectShow::DSSoundMedium
 This class is the base class for all DirectShow sound mediums. More...
 

Typedefs

template<typename T >
using Ocean::Media::DirectShow::ScopeDirectShowObject = ScopedObjectCompileTimeVoidT< T *, release >
 Template specialization for ScopedObjectCompileTimeVoid using the release() function to release DirectShow objects.
 
using Ocean::Media::DirectShow::ScopedIAMStreamConfig = ScopeDirectShowObject< IAMStreamConfig >
 Definition of a scoped object holding an IAMStreamConfig object.
 
using Ocean::Media::DirectShow::ScopedIAMVfwCompressDialogs = ScopeDirectShowObject< IAMVfwCompressDialogs >
 Definition of a scoped object holding an IAMVfwCompressDialogs object.
 
using Ocean::Media::DirectShow::ScopedIBaseFilter = ScopeDirectShowObject< IBaseFilter >
 Definition of a scoped object holding an IBaseFilter object.
 
using Ocean::Media::DirectShow::ScopedIBasicAudio = ScopeDirectShowObject< IBasicAudio >
 Definition of a scoped object holding an IBasicAudio object.
 
using Ocean::Media::DirectShow::ScopedICreateDevEnum = ScopeDirectShowObject< ICreateDevEnum >
 Definition of a scoped object holding an ICreateDevEnum object.
 
using Ocean::Media::DirectShow::ScopedIEnumFilters = ScopeDirectShowObject< IEnumFilters >
 Definition of a scoped object holding an IEnumFilters object.
 
using Ocean::Media::DirectShow::ScopedIEnumMoniker = ScopeDirectShowObject< IEnumMoniker >
 Definition of a scoped object holding an IEnumMoniker object.
 
using Ocean::Media::DirectShow::ScopedIEnumPins = ScopeDirectShowObject< IEnumPins >
 Definition of a scoped object holding an IEnumPins object.
 
using Ocean::Media::DirectShow::ScopedIFileSinkFilter = ScopeDirectShowObject< IFileSinkFilter >
 Definition of a scoped object holding an IFileSinkFilter object.
 
using Ocean::Media::DirectShow::ScopedIGraphBuilder = ScopeDirectShowObject< IGraphBuilder >
 Definition of a scoped object holding an IGraphBuilder object.
 
using Ocean::Media::DirectShow::ScopedIMediaControl = ScopeDirectShowObject< IMediaControl >
 Definition of a scoped object holding an IMediaControl object.
 
using Ocean::Media::DirectShow::ScopedIMediaEvent = ScopeDirectShowObject< IMediaEvent >
 Definition of a scoped object holding an IMediaEvent object.
 
using Ocean::Media::DirectShow::ScopedIMediaFilter = ScopeDirectShowObject< IMediaFilter >
 Definition of a scoped object holding an IMediaFilter object.
 
using Ocean::Media::DirectShow::ScopedIMediaSeeking = ScopeDirectShowObject< IMediaSeeking >
 Definition of a scoped object holding an IMediaSeeking object.
 
using Ocean::Media::DirectShow::ScopedIMoniker = ScopeDirectShowObject< IMoniker >
 Definition of a scoped object holding an IMoniker object.
 
using Ocean::Media::DirectShow::ScopedIPin = ScopeDirectShowObject< IPin >
 Definition of a scoped object holding an IPin object.
 
using Ocean::Media::DirectShow::ScopedIPropertyBag = ScopeDirectShowObject< IPropertyBag >
 Definition of a scoped object holding an IPropertyBag object.
 
using Ocean::Media::DirectShow::ScopedIRunningObjectTable = ScopeDirectShowObject< IRunningObjectTable >
 Definition of a scoped object holding an IRunningObjectTable object.
 
using Ocean::Media::DirectShow::ScopedDSSampleSinkFilter = ScopeDirectShowObject< DSSampleSinkFilter >
 Definition of a scoped object holding an DSSampleSinkFilter object.
 
using Ocean::Media::DirectShow::DSSampleSinkFilter::UniqueDSInputPin = std::unique_ptr< DSInputPin >
 Definition of a unique pointer holding a DSInputPin object.
 
using Ocean::Media::DirectShow::ScopedDSSampleSourceFilter = ScopeDirectShowObject< DSSampleSourceFilter >
 Definition of a scoped object holding an DSSampleSourceFilter object.
 

Functions

OCEAN_MEDIA_DS_EXPORT std::string Ocean::Media::DirectShow::nameDirectShowLibrary ()
 Returns the name of this media DirectShow library.
 
void Ocean::Media::DirectShow::registerDirectShowLibrary ()
 Registers this media library at the global library manager.
 
bool Ocean::Media::DirectShow::unregisterDirectShowLibrary ()
 Unregisters this media library at the global library manager.
 
template<class T >
void Ocean::Media::DirectShow::release (T *object)
 This functions allows to release a DirectShow object if it does exist.
 
bool OCEAN_MEDIA_DS_EXPORT pluginLoad ()
 Tries to load the plugin and initializes all internal 3rd party libraries.
 
bool OCEAN_MEDIA_DS_EXPORT pluginUnload ()
 Tries to unload the plugin and all internal resources of 3rd party libraries.
 

Detailed Description

The Ocean Media DirectShow Library provides DirectShow media functionalities.

The library is available on windows platforms only.

Typedef Documentation

◆ ScopedDSSampleSinkFilter

Definition of a scoped object holding an DSSampleSinkFilter object.

The wrapped DSSampleSinkFilter object will be released automatically once the scoped object does not exist anymore.

◆ ScopedDSSampleSourceFilter

Definition of a scoped object holding an DSSampleSourceFilter object.

The wrapped DSSampleSourceFilter object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIAMStreamConfig

Definition of a scoped object holding an IAMStreamConfig object.

The wrapped IAMStreamConfig object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIAMVfwCompressDialogs

Definition of a scoped object holding an IAMVfwCompressDialogs object.

The wrapped IAMVfwCompressDialogs object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIBaseFilter

Definition of a scoped object holding an IBaseFilter object.

The wrapped IBaseFilter object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIBasicAudio

Definition of a scoped object holding an IBasicAudio object.

The wrapped IBasicAudio object will be released automatically once the scoped object does not exist anymore.

◆ ScopedICreateDevEnum

Definition of a scoped object holding an ICreateDevEnum object.

The wrapped ICreateDevEnum object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIEnumFilters

Definition of a scoped object holding an IEnumFilters object.

The wrapped IEnumFilters object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIEnumMoniker

Definition of a scoped object holding an IEnumMoniker object.

The wrapped IEnumMoniker object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIEnumPins

Definition of a scoped object holding an IEnumPins object.

The wrapped IEnumPins object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIFileSinkFilter

Definition of a scoped object holding an IFileSinkFilter object.

The wrapped IFileSinkFilter object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIGraphBuilder

Definition of a scoped object holding an IGraphBuilder object.

The wrapped IGraphBuilder object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIMediaControl

Definition of a scoped object holding an IMediaControl object.

The wrapped IMediaControl object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIMediaEvent

Definition of a scoped object holding an IMediaEvent object.

The wrapped IMediaEvent object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIMediaFilter

Definition of a scoped object holding an IMediaFilter object.

The wrapped IMediaFilter object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIMediaSeeking

Definition of a scoped object holding an IMediaSeeking object.

The wrapped IMediaSeeking object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIMoniker

Definition of a scoped object holding an IMoniker object.

The wrapped IMoniker object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIPin

Definition of a scoped object holding an IPin object.

The wrapped IPin object will be released automatically once the scoped object does not exist anymore.

◆ ScopedIPropertyBag

Definition of a scoped object holding an IPropertyBag object.

The wrapped IPropertyBag object will be released automatically once the scoped object does not exist anymore.

◆ ScopeDirectShowObject

Template specialization for ScopedObjectCompileTimeVoid using the release() function to release DirectShow objects.

Template Parameters
TThe data type of the wrapped object

◆ ScopedIRunningObjectTable

Definition of a scoped object holding an IRunningObjectTable object.

The wrapped IRunningObjectTable object will be released automatically once the scoped object does not exist anymore.

◆ UniqueDSInputPin

Definition of a unique pointer holding a DSInputPin object.

The pin is owned by the filter it belongs to, and it is deleted, not released, once the owning filter is destroyed.

A filter deriving from CBaseFilter directly owns the pins it exposes. CBaseFilter keeps no pin list of its own, it only asks the subclass for a pin through GetPin(), so nothing else will ever free the pin and the filter has to do it itself. This is the opposite of a filter deriving from CSource, where each CSourceStream registers itself at the filter on construction and ~CSource deletes the registered pins, so that such a filter must neither delete nor release its pins, see DSSampleSourceFilter::outputPin_.

The pin must not be released, even though it is a COM object. CBasePin::NonDelegatingAddRef() and CBasePin::NonDelegatingRelease() do not maintain a reference count for the pin, they forward to the reference count of the owning filter. Calling Release() on the pin therefore does not free the pin, it decrements the filter, and doing so while the filter is being destroyed takes its count to zero a second time and re-enters delete this.

Function Documentation

◆ nameDirectShowLibrary()

OCEAN_MEDIA_DS_EXPORT std::string Ocean::Media::DirectShow::nameDirectShowLibrary ( )

Returns the name of this media DirectShow library.

◆ pluginLoad()

bool OCEAN_MEDIA_DS_EXPORT pluginLoad ( )

Tries to load the plugin and initializes all internal 3rd party libraries.

Make sure that the plugin will be loaded only once!

Returns
True, if succeeded
See also
pluginUnload().

◆ pluginUnload()

bool OCEAN_MEDIA_DS_EXPORT pluginUnload ( )

Tries to unload the plugin and all internal resources of 3rd party libraries.

Make sure that all resources of this plugin has been released before!

Returns
True, if succeeded
See also
pluginLoad().

◆ registerDirectShowLibrary()

void Ocean::Media::DirectShow::registerDirectShowLibrary ( )

Registers this media library at the global library manager.

This function calls DSLibrary::registerLibrary() only.

◆ release()

template<class T >
void Ocean::Media::DirectShow::release ( T *  object)

This functions allows to release a DirectShow object if it does exist.

Parameters
objectDirectShow object to be released

◆ unregisterDirectShowLibrary()

bool Ocean::Media::DirectShow::unregisterDirectShowLibrary ( )

Unregisters this media library at the global library manager.

This function calls DSLibrary::unregisterLibrary() only.

Returns
True, if succeeded