ReactOS 0.4.16-dev-91-g764881a
mediaobj.idl
Go to the documentation of this file.
1/*
2 * Copyright (C) 2002 Alexandre Julliard
3 * Copyright (C) 2004 Vincent BĂ©ron
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20import "unknwn.idl";
21import "objidl.idl";
22import "strmif.idl";
23
24interface IDMOQualityControl;
25interface IDMOVideoOutputOptimizations;
26
27typedef struct _DMOMediaType
28{
39
40/*****************************************************************************
41 * IEnumDMO interface
42 */
43[
44 object,
45 uuid(2C3CD98A-2BFA-4A53-9C27-5249BA64BA0F),
47]
48interface IEnumDMO : IUnknown
49{
50 [local]
52 [in] DWORD cItemsToFetch,
53 [out] CLSID *pCLSID,
54 [out] WCHAR **Names,
55 [out] DWORD *pcItemsFetched
56 );
57
59 [in] DWORD cItemsToSkip
60 );
61
63
65 [out] IEnumDMO **ppEnum
66 );
67}
68
69/*****************************************************************************
70 * IMediaBuffer interface
71 */
72[
73 object,
74 uuid(59eff8b9-938c-4a26-82f2-95cb84cdc837),
75 local
76]
77interface IMediaBuffer : IUnknown
78{
80 DWORD cbLength
81 );
82
84 [out] DWORD *pcbMaxLength
85 );
86
88 [out] BYTE **ppBuffer,
89 [out] DWORD *pcbLength
90 );
91}
92
93typedef struct _DMO_OUTPUT_DATA_BUFFER {
94 IMediaBuffer *pBuffer;
99
101 DMO_INPLACE_NORMAL = 0x00000000,
102 DMO_INPLACE_ZERO = 0x00000001
104
105/*****************************************************************************
106 * IMediaObject interface
107 */
108[
109 object,
110 uuid(d8ad0f58-5494-4102-97c5-ec798e59bcf4),
111 local
112]
114{
116 [out] DWORD *pcInputStreams,
117 [out] DWORD *pcOutputStreams
118 );
119
121 DWORD dwInputStreamIndex,
122 [out] DWORD *pdwFlags
123 );
124
126 DWORD dwOutputStreamIndex,
127 [out] DWORD *pdwFlags
128 );
129
131 DWORD dwInputStreamIndex,
132 DWORD dwTypeIndex,
133 [out] DMO_MEDIA_TYPE *pmt
134 );
135
137 DWORD dwOutputStreamIndex,
138 DWORD dwTypeIndex,
139 [out] DMO_MEDIA_TYPE *pmt
140 );
141
143 DWORD dwInputStreamIndex,
144 [in] const DMO_MEDIA_TYPE *pmt,
146 );
147
149 DWORD dwOutputStreamIndex,
150 [in] const DMO_MEDIA_TYPE *pmt,
152 );
153
155 DWORD dwInputStreamIndex,
156 [out] DMO_MEDIA_TYPE *pmt
157 );
158
160 DWORD dwOutputStreamIndex,
161 [out] DMO_MEDIA_TYPE *pmt
162 );
163
165 DWORD dwInputStreamIndex,
166 [out] DWORD *pcbSize,
167 [out] DWORD *pcbMaxLookahead,
168 [out] DWORD *pcbAlignment
169 );
170
172 DWORD dwOutputStreamIndex,
173 [out] DWORD *pcbSize,
174 [out] DWORD *pcbAlignment
175 );
176
178 DWORD dwInputStreamIndex,
179 [out] REFERENCE_TIME *prtMaxLatency
180 );
181
183 DWORD dwInputStreamIndex,
184 REFERENCE_TIME rtMaxLatency
185 );
186
188
189 HRESULT Discontinuity(DWORD dwInputStreamIndex);
190
192
194
196 DWORD dwInputStreamIndex,
197 [out] DWORD *dwFlags
198 );
199
201 DWORD dwInputStreamIndex,
202 IMediaBuffer *pBuffer,
206 );
207
210 DWORD cOutputBufferCount,
211 [in,out] DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
212 [out] DWORD *pdwStatus
213 );
214
216};
217
218/*****************************************************************************
219 * IMediaObjectInPlace interface
220 */
221
222[
223 object,
224 uuid(651b9ad0-0fc7-4aa9-9538-d89931010741),
225 local
226]
229 [in] ULONG ulSize,
230 [in,out] BYTE* pData,
231 [in] REFERENCE_TIME refTimeStart,
233 );
234
236 [out] IMediaObjectInPlace **ppMediaObject
237 );
238
240 [out] REFERENCE_TIME *pLatencyTime
241 );
242}
PWSTR Names[]
coclass PSFactoryBuffer pointer_default(unique)] interface ObjectRpcBaseTypes
Definition: dcom.idl:35
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define local
Definition: zutil.h:30
const GLubyte * c
Definition: glext.h:8905
GLuint in
Definition: glext.h:9616
HRESULT Skip([in] DWORD cItemsToSkip)
HRESULT Clone([out] IEnumDMO **ppEnum)
HRESULT Next([in] DWORD cItemsToFetch, [out] CLSID *pCLSID, [out] WCHAR **Names, [out] DWORD *pcItemsFetched)
HRESULT Reset()
HRESULT GetLatency([out] REFERENCE_TIME *pLatencyTime)
HRESULT Clone([out] IMediaObjectInPlace **ppMediaObject)
HRESULT Process([in] ULONG ulSize, [in, out] BYTE *pData, [in] REFERENCE_TIME refTimeStart, [in] DWORD dwFlags)
HRESULT AllocateStreamingResources()
HRESULT SetInputMaxLatency(DWORD dwInputStreamIndex, REFERENCE_TIME rtMaxLatency)
HRESULT GetInputSizeInfo(DWORD dwInputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbMaxLookahead, [out] DWORD *pcbAlignment)
HRESULT GetOutputCurrentType(DWORD dwOutputStreamIndex, [out] DMO_MEDIA_TYPE *pmt)
HRESULT ProcessOutput(DWORD dwFlags, DWORD cOutputBufferCount, [in, out] DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, [out] DWORD *pdwStatus)
HRESULT Discontinuity(DWORD dwInputStreamIndex)
HRESULT GetInputCurrentType(DWORD dwInputStreamIndex, [out] DMO_MEDIA_TYPE *pmt)
HRESULT GetStreamCount([out] DWORD *pcInputStreams, [out] DWORD *pcOutputStreams)
HRESULT GetInputStreamInfo(DWORD dwInputStreamIndex, [out] DWORD *pdwFlags)
HRESULT GetOutputStreamInfo(DWORD dwOutputStreamIndex, [out] DWORD *pdwFlags)
HRESULT GetInputType(DWORD dwInputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt)
HRESULT GetOutputType(DWORD dwOutputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt)
HRESULT Flush()
HRESULT GetInputMaxLatency(DWORD dwInputStreamIndex, [out] REFERENCE_TIME *prtMaxLatency)
HRESULT SetOutputType(DWORD dwOutputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags)
HRESULT GetInputStatus(DWORD dwInputStreamIndex, [out] DWORD *dwFlags)
HRESULT GetOutputSizeInfo(DWORD dwOutputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbAlignment)
HRESULT ProcessInput(DWORD dwInputStreamIndex, IMediaBuffer *pBuffer, DWORD dwFlags, REFERENCE_TIME rtTimestamp, REFERENCE_TIME rtTimelength)
HRESULT FreeStreamingResources()
HRESULT SetInputType(DWORD dwInputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags)
HRESULT Lock(LONG bLock)
HRESULT GetBufferAndLength([out] BYTE **ppBuffer, [out] DWORD *pcbLength)
HRESULT GetMaxLength([out] DWORD *pcbMaxLength)
HRESULT SetLength(DWORD cbLength)
Definition: msctf.idl:550
long LONG
Definition: pedump.c:60
struct _DMOMediaType DMO_MEDIA_TYPE
REFERENCE_TIME rtTimestamp
Definition: mediaobj.idl:96
DMO_OUTPUT_DATA_BUFFER
Definition: mediaobj.idl:98
* PDMO_OUTPUT_DATA_BUFFER
Definition: mediaobj.idl:98
_DMO_INPLACE_PROCESS_FLAGS
Definition: mediaobj.idl:100
@ DMO_INPLACE_ZERO
Definition: mediaobj.idl:102
@ DMO_INPLACE_NORMAL
Definition: mediaobj.idl:101
REFERENCE_TIME rtTimelength
Definition: mediaobj.idl:97
DWORD dwStatus
Definition: mediaobj.idl:95
PVOID pBuffer
static FILE * out
Definition: regtests2xml.c:44
#define f2(x, y, z)
Definition: sha1.c:31
GUID majortype
Definition: mediaobj.idl:36
IUnknown * pUnk
Definition: mediaobj.idl:42
ULONG lSampleSize
Definition: mediaobj.idl:40
ULONG cbFormat
Definition: mediaobj.idl:43
BOOL bFixedSizeSamples
Definition: mediaobj.idl:38
BYTE * pbFormat
Definition: mediaobj.idl:44
BOOL bTemporalCompression
Definition: mediaobj.idl:39
GUID formattype
Definition: mediaobj.idl:41
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
uint32_t ULONG
Definition: typedefs.h:59
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193