home *** CD-ROM | disk | FTP | other *** search
/ Beginning Direct3D Game Programming / Direct3D.iso / directx / dxf / include / dmoreg.h < prev    next >
C/C++ Source or Header  |  2000-10-01  |  4KB  |  111 lines

  1. //------------------------------------------------------------------------------
  2. // File: DMOReg.h
  3. //
  4. // Desc: 
  5. //
  6. // Copyright (c) 1999 - 2000, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9.  
  10. #ifndef __DMOREG_H__
  11. #define __DMOREG_H__
  12.  
  13. #include "mediaobj.h"
  14.  
  15.  
  16. // 57f2db8b-e6bb-4513-9d43-dcd2a6593125
  17. DEFINE_GUID(DMOCATEGORY_AUDIO_DECODER, 0x57f2db8b,0xe6bb,0x4513,0x9d,0x43,0xdc,0xd2,0xa6,0x59,0x31,0x25);
  18. // 33D9A761-90C8-11d0-BD43-00A0C911CE86
  19. DEFINE_GUID(DMOCATEGORY_AUDIO_ENCODER, 0x33D9A761,0x90C8,0x11d0,0xBD,0x43,0x00,0xA0,0xC9,0x11,0xCE,0x86);
  20. // 4a69b442-28be-4991-969c-b500adf5d8a8
  21. DEFINE_GUID(DMOCATEGORY_VIDEO_DECODER, 0x4a69b442,0x28be,0x4991,0x96,0x9c,0xb5,0x00,0xad,0xf5,0xd8,0xa8);
  22. // 33D9A760-90C8-11d0-BD43-00A0C911CE86
  23. DEFINE_GUID(DMOCATEGORY_VIDEO_ENCODER, 0x33D9A760,0x90C8,0x11d0,0xBD,0x43,0x00,0xA0,0xC9,0x11,0xCE,0x86);
  24. // f3602b3f-0592-48df-a4cd-674721e7ebeb
  25. DEFINE_GUID(DMOCATEGORY_AUDIO_EFFECT, 0xf3602b3f,0x0592,0x48df,0xa4,0xcd,0x67,0x47,0x21,0xe7,0xeb,0xeb);
  26. // d990ee14-776c-4723-be46-3da2f56f10b9
  27. DEFINE_GUID(DMOCATEGORY_VIDEO_EFFECT, 0xd990ee14,0x776c,0x4723,0xbe,0x46,0x3d,0xa2,0xf5,0x6f,0x10,0xb9);
  28. // f665aaba-3e09-4920-aa5f-219811148f09
  29. DEFINE_GUID(DMOCATEGORY_AUDIO_CAPTURE_EFFECT, 0xf665aaba,0x3e09,0x4920,0xaa,0x5f,0x21,0x98,0x11,0x14,0x8f,0x09);
  30.  
  31. // Acoustic Echo Canceller {BF963D80-C559-11D0-8A2B-00A0C9255AC1}
  32. // Matches KSNODETYPE_ACOUSTIC_ECHO_CANCEL in ksmedia.h
  33. DEFINE_GUID(DMOCATEGORY_ACOUSTIC_ECHO_CANCEL, 0xBF963D80L, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1);
  34.  
  35. // Noise Supression {E07F903F-62FD-4e60-8CDD-DEA7236665B5}
  36. // Matches KSNODETYPE_AUDIO_NOISE_SUPPRESS in post Windows ME DDK's ksmedia.h
  37. DEFINE_GUID(DMOCATEGORY_AUDIO_NOISE_SUPPRESS, 0xe07f903f, 0x62fd, 0x4e60, 0x8c, 0xdd, 0xde, 0xa7, 0x23, 0x66, 0x65, 0xb5);
  38.  
  39. // Automatic Gain Control {E88C9BA0-C557-11D0-8A2B-00A0C9255AC1}
  40. // Matches KSNODETYPE_AGC in ksmedia.h
  41. DEFINE_GUID(DMOCATEGORY_AGC, 0xE88C9BA0L, 0xC557, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1);
  42.  
  43. typedef struct _DMO_PARTIAL_MEDIATYPE {
  44.    GUID type;
  45.    GUID subtype;
  46. } DMO_PARTIAL_MEDIATYPE, *PDMO_PARTIAL_MEDIATYPE;
  47.  
  48. enum DMO_REGISTER_FLAGS {
  49.    DMO_REGISTERF_IS_KEYED = 0x00000001
  50. };
  51.  
  52. enum DMO_ENUM_FLAGS {
  53.    DMO_ENUMF_INCLUDE_KEYED = 0x00000001
  54. };
  55.  
  56. STDAPI DMORegister(
  57.    LPCWSTR szName,
  58.    REFCLSID clsidDMO,
  59.    REFGUID guidCategory,
  60.    DWORD dwFlags, // DMO_REGISTERF_XXX
  61.    //
  62.    // Register all mediatypes supported by the object.  This carries no
  63.    // information about which combinations of input/output types would
  64.    // actually work.
  65.    //
  66.    DWORD cInTypes,
  67.    const DMO_PARTIAL_MEDIATYPE *pInTypes,
  68.    DWORD cOutTypes,
  69.    const DMO_PARTIAL_MEDIATYPE *pOutTypes
  70. );
  71.  
  72. STDAPI DMOUnregister(
  73.    REFCLSID clsidDMO,
  74.    REFGUID guidCategory // optional - GUID_NULL means unregister from all
  75. );
  76.  
  77. STDAPI DMOEnum(
  78.    REFGUID guidCategory, // GUID_NULL for "all"
  79.    DWORD dwFlags, // DMO_ENUMF_XXX
  80.    //
  81.     // Enumerate only objects that support at least one of the specified input types
  82.     // and at least one of the specified output types.  If no input types are specified,
  83.     // enumerate objects regardless of what input types they support.  Same for
  84.     // output types.
  85.    //
  86.    DWORD cInTypes,
  87.    const DMO_PARTIAL_MEDIATYPE *pInTypes, // can be NULL only of ulInTypes = 0
  88.    DWORD cOutTypes,
  89.    const DMO_PARTIAL_MEDIATYPE *pOutTypes, // can be NULL only of ulOutTypes = 0
  90.    //
  91.    // Output parameter - this receives a pointer to the DMO CLSID enumerator
  92.    //
  93.    IEnumDMO **ppEnum
  94. );
  95.  
  96. STDAPI DMOGetTypes(
  97.    REFCLSID clsidDMO,
  98.    unsigned long ulInputTypesRequested,
  99.    unsigned long *pulInputTypesSupplied,
  100.    DMO_PARTIAL_MEDIATYPE *pInputTypes,
  101.    unsigned long ulOutputTypesRequested,
  102.    unsigned long *pulOutputTypesSupplied,
  103.    DMO_PARTIAL_MEDIATYPE *pOutputTypes
  104. );
  105.  
  106. STDAPI DMOGetName(
  107.    REFCLSID clsidDMO,
  108.    WCHAR szName[80]
  109. );
  110. #endif //__DMOREG_H__
  111.