The following code demonstrates enumerates the valid audio and video compressors for the MPEG2 target format. A recommended compressor is also retrieved.
void EnumMPEG2CompressorsExample (IltmmConvert *pConvert)
{
IltmmCompressors *pCompressors;
IltmmCompressor *pCompressor;
IltmmTargetFormats *pTargetformats;
IltmmTargetFormat* pTargetformat;
long lCount, lIndex;
BSTR Name;
/* set the target format to MPEG2 */
IltmmConvert_put_TargetFormat(pConvert, ltmmCapture_TargetFormat_MPEG2_PROGRAM);
IltmmConvert_get_TargetFormats(pConvert, &pTargetformats);
IltmmTargetFormats_Item(pTargetformats, ltmmCapture_TargetFormat_MPEG2_PROGRAM, &pTargetformat);
IUnknown_Release(pTargetformats);
/* Audio */
/* get the compressors collection */
IltmmConvert_get_AudioCompressors(pConvert, &pCompressors);
IltmmCompressors_get_Count(pCompressors, &lCount);
for(lIndex = 0; lIndex < lCount; lIndex++)
{
long lValid;
IltmmCompressors_Item(pCompressors, lIndex, &pCompressor);
IltmmCompressor_get_Name(pCompressor, &Name);
IltmmTargetFormat_IsValidCompressor(pTargetformat, Name, &lValid);
if( lValid != ltmmTargetFormat_Compressor_Invalid )
{
// do whatever needed with the valid compressor (i.e. add it to some list)
}
SysFreeString(Name);
IUnknown_Release(pCompressor);
}
// get the recommended compressor for the current format
IltmmTargetFormat_get_RecommendedAudioCompressor(pTargetformat, &Name);
if( Name )
{
// do whatever needed with the recommended compressor (i.e. select it)
}
IUnknown_Release(pCompressors);
/*Video*/
/* get the compressors collection */
IltmmConvert_get_VideoCompressors(pConvert, &pCompressors);
IltmmCompressors_get_Count(pCompressors, &lCount);
for(lIndex = 0; lIndex < lCount; lIndex++)
{
long lValid;
IltmmCompressors_Item(pCompressors, lIndex, &pCompressor);
IltmmCompressor_get_Name(pCompressor, &Name);
IltmmTargetFormat_IsValidCompressor(pTargetformat, Name, &lValid);
if( lValid != ltmmTargetFormat_Compressor_Invalid )
{
// do whatever needed with the valid compressor (i.e. add it to some list)
}
SysFreeString(Name);
IUnknown_Release(pCompressor);
}
// get the recommended compressor for the current format
IltmmTargetFormat_get_RecommendedVideoCompressor(pTargetformat, &Name);
if( Name )
{
// do whatever needed with the recommended compressor (i.e. select it)
}
IUnknown_Release(pCompressors);
IUnknown_Release(pTargetformat);
}
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