The following code enumerates the valid audio and video compressors for the MKV target format.
// include the LEAD Media Foundation TOOLKIT header#include "ltmf.h"void EnumMKVCompressors(IltmfConvert *pConvert, HWND hwndParent){IltmfCompressors *pCompressors;IltmfCompressor *pCompressor;IltmfTargetFormats *pTargetformats;IltmfTargetFormat* pTargetformat;long lCount, lIndex, lValid;BSTR Name;VARIANT_BOOL vbIsLeadTargetFormat;// set the target format to MKVpConvert->put_TargetFormat(ltmfConvert_TargetFormat_MKV);pConvert->get_TargetFormats(&pTargetformats);pTargetformats->Item(ltmfConvert_TargetFormat_MKV, &pTargetformat);pTargetformats->Release();// state whether this is a LEAD target formatpTargetformat->LeadTargetFormat(&vbIsLeadTargetFormat);// LEAD target format, enum compressors through AudioCompressors and VideoCompressors interfaces.if ( vbIsLeadTargetFormat ){// Audio// get the compressors collectionpConvert->get_AudioCompressors(&pCompressors);pCompressors->get_Count(&lCount);for (lIndex = 0; lIndex < lCount; lIndex++){pCompressors->Item(lIndex, &pCompressor);pCompressor->get_Name(&Name);pTargetformat->IsValidCompressor(Name, &lValid);if (lValid != ltmfTargetFormat_Compressor_Invalid){// do whatever needed with the valid compressor (i.e. add it to some list)}::SysFreeString(Name);pCompressor->Release();}pCompressors->Release();// Video// get the compressors collectionpConvert->get_VideoCompressors(&pCompressors);pCompressors->get_Count(&lCount);for (lIndex = 0; lIndex < lCount; lIndex++){pCompressors->Item(lIndex, &pCompressor);pCompressor->get_Name(&Name);pTargetformat->IsValidCompressor(Name, &lValid);if (lValid != ltmfTargetFormat_Compressor_Invalid){// do whatever needed with the valid compressor (i.e. add it to some list)}::SysFreeString(Name);pCompressor->Release();}pCompressors->Release();}else{// not LEAD target format, use target format profile dialog.VARIANT_BOOL vbDialog;pTargetformat->HasDialog(ltmfTargetFormat_Dlg_Profile, &vbDialog);if (vbDialog){pTargetformat->ShowDialog(ltmfTargetFormat_Dlg_Profile, (long)hwndParent);}}pTargetformat->Release();}
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
