Enumerating MPEG2 Format Compatible Compressors Example for C
/* the following code demonstrates enumerates the valid audio 
 and video compressors for the 
   MPEG2 target format. A recommended compressor is also retrieved. 
 */
void EnumMPEG2Compressors(IltmmConvert *pConvert)
{
   IltmmCompressors *pCompressors;
   IltmmCompressor *pCompressor;
   IltmmTargetFormats *pTargetformats;
   IltmmTargetFormat* pTargetformat;
   long lCount, lIndex, lValid;
   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, &Compressors);
   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, &valid);
      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, &Compressors);
   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, &valid);
      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);
   pTargetformat->Release();
}