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 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 Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Multimedia C API Help