Create a branch for network fixes.
[reactos.git] / include / dxsdk / dmoreg.h
1 #ifndef __DMOREG_H__
2 #define __DMOREG_H__
3
4 #include "mediaobj.h"
5
6 DEFINE_GUID(DMOCATEGORY_ACOUSTIC_ECHO_CANCEL, 0xBF963D80, 0xC559, 0x11D0, 0x8A, 0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1);
7 DEFINE_GUID(DMOCATEGORY_AGC, 0xE88C9BA0, 0xC557, 0x11D0, 0x8A, 0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1);
8 DEFINE_GUID(DMOCATEGORY_AUDIO_CAPTURE_EFFECT, 0xF665AAba, 0x3E09, 0x4920, 0xAA, 0x5F,0x21,0x98,0x11,0x14,0x8F,0x09);
9 DEFINE_GUID(DMOCATEGORY_AUDIO_DECODER, 0x57F2db8b, 0xE6BB, 0x4513, 0x9D, 0x43,0xDC,0xD2,0xA6,0x59,0x31,0x25);
10 DEFINE_GUID(DMOCATEGORY_AUDIO_EFFECT, 0xF3602b3f, 0x0592, 0x48DF, 0xA4, 0xCD,0x67,0x47,0x21,0xE7,0xEB,0xEB);
11 DEFINE_GUID(DMOCATEGORY_AUDIO_ENCODER, 0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43,0x00,0xA0,0xC9,0x11,0xCE,0x86);
12 DEFINE_GUID(DMOCATEGORY_AUDIO_NOISE_SUPPRESS, 0xE07f903f, 0x62FD, 0x4e60, 0x8C, 0xDD,0xDE,0xA7,0x23,0x66,0x65,0xB5);
13 DEFINE_GUID(DMOCATEGORY_VIDEO_DECODER, 0x4A69b442, 0x28BE, 0x4991, 0x96, 0x9C,0xB5,0x00,0xAD,0xF5,0xd8,0xA8);
14 DEFINE_GUID(DMOCATEGORY_VIDEO_EFFECT, 0xd990eE14, 0x776C, 0x4723, 0xBE, 0x46,0x3D,0xA2,0xF5,0x6F,0x10,0xB9);
15 DEFINE_GUID(DMOCATEGORY_VIDEO_ENCODER, 0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43,0x00,0xA0,0xC9,0x11,0xCE,0x86);
16
17 typedef struct _DMO_PARTIAL_MEDIATYPE
18 {
19 GUID type;
20 GUID subtype;
21 } DMO_PARTIAL_MEDIATYPE, *PDMO_PARTIAL_MEDIATYPE;
22
23 enum DMO_REGISTER_FLAGS
24 {
25 DMO_REGISTERF_IS_KEYED = 0x00000001
26 };
27
28 enum DMO_ENUM_FLAGS
29 {
30 DMO_ENUMF_INCLUDE_KEYED = 0x00000001
31 };
32
33 STDAPI
34 DMOEnum(
35 REFGUID guidCategory,
36 DWORD dwFlags,
37 DWORD cInTypes,
38 const DMO_PARTIAL_MEDIATYPE *pInTypes,
39 DWORD cOutTypes,
40 const DMO_PARTIAL_MEDIATYPE *pOutTypes,
41 IEnumDMO **ppEnum);
42
43 STDAPI
44 DMOGetName(
45 REFCLSID clsidDMO,
46 WCHAR szName[80]);
47
48 STDAPI DMOGetTypes(
49 REFCLSID clsidDMO,
50 unsigned long ulInputTypesRequested,
51 unsigned long *pulInputTypesSupplied,
52 DMO_PARTIAL_MEDIATYPE *pInputTypes,
53 unsigned long ulOutputTypesRequested,
54 unsigned long *pulOutputTypesSupplied,
55 DMO_PARTIAL_MEDIATYPE *pOutputTypes
56 );
57
58 STDAPI
59 DMORegister(
60 LPCWSTR szName,
61 REFCLSID clsidDMO,
62 REFGUID guidCategory,
63 DWORD dwFlags,
64 DWORD cInTypes,
65 const DMO_PARTIAL_MEDIATYPE *pInTypes,
66 DWORD cOutTypes,
67 const DMO_PARTIAL_MEDIATYPE *pOutTypes);
68
69 STDAPI
70 DMOUnregister(
71 REFCLSID clsidDMO,
72 REFGUID guidCategory);
73
74 #endif
75