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__
|