Direct access to the underlying DirectShow audio and video compression filters can be accomplished through the IltmmObjectWrapper interface. Accessing the interface directly makes it possible to programmatically manipulate an individual compressor's properties. Please consult the individual compression filter's documentation to determine the capabilities of that filter.
For example, suppose you wanted to access a particular compressor in the ltmmConvert object. Perform the following steps to access it directly:
Obtain the video compressors collection from the ltmmConvert object:
IltmmCompressors* pCompressors;
convert->get_VideoCompressors (&pCompressors); // get the video compressor collection
Next, get the selected compressor:
IltmmCompressor* pCompressor;
long index;
pCompressors->get_Selection (&index); // get the index of the selected compressor
pCompressors->Item(index, &pCompressor); // get the compressor
pCompressors->Release(); // do not need the collection anymore
Now, obtain the IltmmObjectWrapper interface:
IltmmObjectWrapper* pWrapper;
pCompressor->QueryInterface(IID_IltmmObjectWrapper, (void**) &pWrapper); // get the wrapper interface
pCompressor->Release(); // do not need this anymore
Finally, 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