Direct access to the underlying DirectShow audio and video processing filters can be accomplished through the IltmmObjectWrapper interface. This allows the user to programmatically manipulate the individual processors properties. Please consult the individual processing filters documentation to determine the capabilities of that filter.
For example, lets assume that you have added 2 video processors to the ltmmPlay object, and you would like to obtain the underlying DirectShow filter for the second processor.
The first step would be to obtain the selected video processors collection from the ltmmPlay object using the following code:
IltmmProcessors* pProcessors;
play->get_SelectedVideoProcessors(&pProcessors); // get the selected video processor collection
Next, you would get the second processor:
IltmmProcessor* pProcessor;
pProcessors->Item(1, &pProcessor); // get the second processor
pProcessors->Release(); // do not need the collection anymore
Now, you can obtain the IltmmObjectWrapper interface:
IltmmObjectWrapper* pWrapper;
pProcessor->QueryInterface(IID_IltmmObjectWrapper, (void**) &pWrapper); // get the wrapper interface
pProcessor->Release(); // do not need this anymore
And finally, you can get the underlying DirectShow filter:
IUnknown* pObject;
pWrapper->GetWrappedObject(&pObject); // get the DirectShow filter
pWrapper->Release(); // do not need this anymore
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document