|
Ocean
|
The Ocean Media DirectShow Library provides DirectShow media functionalities. More...
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. | |
The Ocean Media DirectShow Library provides DirectShow media functionalities.
The library is available on windows platforms only.
| using Ocean::Media::DirectShow::ScopedDSSampleSinkFilter = typedef ScopeDirectShowObject<DSSampleSinkFilter> |
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.
| using Ocean::Media::DirectShow::ScopedDSSampleSourceFilter = typedef ScopeDirectShowObject<DSSampleSourceFilter> |
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.
| using Ocean::Media::DirectShow::ScopedIAMStreamConfig = typedef ScopeDirectShowObject<IAMStreamConfig> |
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.
| using Ocean::Media::DirectShow::ScopedIAMVfwCompressDialogs = typedef ScopeDirectShowObject<IAMVfwCompressDialogs> |
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.
| using Ocean::Media::DirectShow::ScopedIBaseFilter = typedef ScopeDirectShowObject<IBaseFilter> |
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.
| using Ocean::Media::DirectShow::ScopedIBasicAudio = typedef ScopeDirectShowObject<IBasicAudio> |
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.
| using Ocean::Media::DirectShow::ScopedICreateDevEnum = typedef ScopeDirectShowObject<ICreateDevEnum> |
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.
| using Ocean::Media::DirectShow::ScopedIEnumFilters = typedef ScopeDirectShowObject<IEnumFilters> |
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.
| using Ocean::Media::DirectShow::ScopedIEnumMoniker = typedef ScopeDirectShowObject<IEnumMoniker> |
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.
| using Ocean::Media::DirectShow::ScopedIEnumPins = typedef ScopeDirectShowObject<IEnumPins> |
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.
| using Ocean::Media::DirectShow::ScopedIFileSinkFilter = typedef ScopeDirectShowObject<IFileSinkFilter> |
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.
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.
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.
| using Ocean::Media::DirectShow::ScopedIMediaEvent = typedef ScopeDirectShowObject<IMediaEvent> |
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.
| using Ocean::Media::DirectShow::ScopedIMediaFilter = typedef ScopeDirectShowObject<IMediaFilter> |
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.
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.
| using Ocean::Media::DirectShow::ScopedIMoniker = typedef ScopeDirectShowObject<IMoniker> |
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.
| using Ocean::Media::DirectShow::ScopedIPin = typedef ScopeDirectShowObject<IPin> |
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.
| using Ocean::Media::DirectShow::ScopedIPropertyBag = typedef ScopeDirectShowObject<IPropertyBag> |
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.
| using Ocean::Media::DirectShow::ScopeDirectShowObject = typedef ScopedObjectCompileTimeVoidT<T*, release> |
Template specialization for ScopedObjectCompileTimeVoid using the release() function to release DirectShow objects.
| T | The data type of the wrapped object |
| using Ocean::Media::DirectShow::ScopedIRunningObjectTable = typedef ScopeDirectShowObject<IRunningObjectTable> |
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.
|
protected |
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.
| OCEAN_MEDIA_DS_EXPORT std::string Ocean::Media::DirectShow::nameDirectShowLibrary | ( | ) |
Returns the name of this media DirectShow library.
| 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!
| 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!
| void Ocean::Media::DirectShow::registerDirectShowLibrary | ( | ) |
Registers this media library at the global library manager.
This function calls DSLibrary::registerLibrary() only.
| void Ocean::Media::DirectShow::release | ( | T * | object | ) |
This functions allows to release a DirectShow object if it does exist.
| object | DirectShow object to be released |
| bool Ocean::Media::DirectShow::unregisterDirectShowLibrary | ( | ) |
Unregisters this media library at the global library manager.
This function calls DSLibrary::unregisterLibrary() only.