1 | /*** Autogenerated by WIDL 6.4 from include/mediaobj.idl - Do not edit ***/
|
---|
2 |
|
---|
3 | #ifdef _WIN32
|
---|
4 | #ifndef __REQUIRED_RPCNDR_H_VERSION__
|
---|
5 | #define __REQUIRED_RPCNDR_H_VERSION__ 475
|
---|
6 | #endif
|
---|
7 | #include <rpc.h>
|
---|
8 | #include <rpcndr.h>
|
---|
9 | #endif
|
---|
10 |
|
---|
11 | #ifndef COM_NO_WINDOWS_H
|
---|
12 | #include <windows.h>
|
---|
13 | #include <ole2.h>
|
---|
14 | #endif
|
---|
15 |
|
---|
16 | #ifndef __mediaobj_h__
|
---|
17 | #define __mediaobj_h__
|
---|
18 |
|
---|
19 | /* Forward declarations */
|
---|
20 |
|
---|
21 | #ifndef __IEnumDMO_FWD_DEFINED__
|
---|
22 | #define __IEnumDMO_FWD_DEFINED__
|
---|
23 | typedef interface IEnumDMO IEnumDMO;
|
---|
24 | #ifdef __cplusplus
|
---|
25 | interface IEnumDMO;
|
---|
26 | #endif /* __cplusplus */
|
---|
27 | #endif
|
---|
28 |
|
---|
29 | #ifndef __IMediaBuffer_FWD_DEFINED__
|
---|
30 | #define __IMediaBuffer_FWD_DEFINED__
|
---|
31 | typedef interface IMediaBuffer IMediaBuffer;
|
---|
32 | #ifdef __cplusplus
|
---|
33 | interface IMediaBuffer;
|
---|
34 | #endif /* __cplusplus */
|
---|
35 | #endif
|
---|
36 |
|
---|
37 | #ifndef __IMediaObject_FWD_DEFINED__
|
---|
38 | #define __IMediaObject_FWD_DEFINED__
|
---|
39 | typedef interface IMediaObject IMediaObject;
|
---|
40 | #ifdef __cplusplus
|
---|
41 | interface IMediaObject;
|
---|
42 | #endif /* __cplusplus */
|
---|
43 | #endif
|
---|
44 |
|
---|
45 | #ifndef __IMediaObjectInPlace_FWD_DEFINED__
|
---|
46 | #define __IMediaObjectInPlace_FWD_DEFINED__
|
---|
47 | typedef interface IMediaObjectInPlace IMediaObjectInPlace;
|
---|
48 | #ifdef __cplusplus
|
---|
49 | interface IMediaObjectInPlace;
|
---|
50 | #endif /* __cplusplus */
|
---|
51 | #endif
|
---|
52 |
|
---|
53 | #ifndef __IDMOQualityControl_FWD_DEFINED__
|
---|
54 | #define __IDMOQualityControl_FWD_DEFINED__
|
---|
55 | typedef interface IDMOQualityControl IDMOQualityControl;
|
---|
56 | #ifdef __cplusplus
|
---|
57 | interface IDMOQualityControl;
|
---|
58 | #endif /* __cplusplus */
|
---|
59 | #endif
|
---|
60 |
|
---|
61 | #ifndef __IDMOVideoOutputOptimizations_FWD_DEFINED__
|
---|
62 | #define __IDMOVideoOutputOptimizations_FWD_DEFINED__
|
---|
63 | typedef interface IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations;
|
---|
64 | #ifdef __cplusplus
|
---|
65 | interface IDMOVideoOutputOptimizations;
|
---|
66 | #endif /* __cplusplus */
|
---|
67 | #endif
|
---|
68 |
|
---|
69 | /* Headers for imported files */
|
---|
70 |
|
---|
71 | #include <unknwn.h>
|
---|
72 | #include <objidl.h>
|
---|
73 | #include <strmif.h>
|
---|
74 |
|
---|
75 | #ifdef __cplusplus
|
---|
76 | extern "C" {
|
---|
77 | #endif
|
---|
78 |
|
---|
79 | typedef struct _DMOMediaType {
|
---|
80 | GUID majortype;
|
---|
81 | GUID subtype;
|
---|
82 | WINBOOL bFixedSizeSamples;
|
---|
83 | WINBOOL bTemporalCompression;
|
---|
84 | ULONG lSampleSize;
|
---|
85 | GUID formattype;
|
---|
86 | IUnknown *pUnk;
|
---|
87 | ULONG cbFormat;
|
---|
88 | BYTE *pbFormat;
|
---|
89 | } DMO_MEDIA_TYPE;
|
---|
90 | /*****************************************************************************
|
---|
91 | * IEnumDMO interface
|
---|
92 | */
|
---|
93 | #ifndef __IEnumDMO_INTERFACE_DEFINED__
|
---|
94 | #define __IEnumDMO_INTERFACE_DEFINED__
|
---|
95 |
|
---|
96 | DEFINE_GUID(IID_IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f);
|
---|
97 | #if defined(__cplusplus) && !defined(CINTERFACE)
|
---|
98 | MIDL_INTERFACE("2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f")
|
---|
99 | IEnumDMO : public IUnknown
|
---|
100 | {
|
---|
101 | virtual HRESULT STDMETHODCALLTYPE Next(
|
---|
102 | DWORD cItemsToFetch,
|
---|
103 | CLSID *pCLSID,
|
---|
104 | WCHAR **Names,
|
---|
105 | DWORD *pcItemsFetched) = 0;
|
---|
106 |
|
---|
107 | virtual HRESULT STDMETHODCALLTYPE Skip(
|
---|
108 | DWORD cItemsToSkip) = 0;
|
---|
109 |
|
---|
110 | virtual HRESULT STDMETHODCALLTYPE Reset(
|
---|
111 | ) = 0;
|
---|
112 |
|
---|
113 | virtual HRESULT STDMETHODCALLTYPE Clone(
|
---|
114 | IEnumDMO **ppEnum) = 0;
|
---|
115 |
|
---|
116 | };
|
---|
117 | #ifdef __CRT_UUID_DECL
|
---|
118 | __CRT_UUID_DECL(IEnumDMO, 0x2c3cd98a, 0x2bfa, 0x4a53, 0x9c,0x27, 0x52,0x49,0xba,0x64,0xba,0x0f)
|
---|
119 | #endif
|
---|
120 | #else
|
---|
121 | typedef struct IEnumDMOVtbl {
|
---|
122 | BEGIN_INTERFACE
|
---|
123 |
|
---|
124 | /*** IUnknown methods ***/
|
---|
125 | HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
---|
126 | IEnumDMO *This,
|
---|
127 | REFIID riid,
|
---|
128 | void **ppvObject);
|
---|
129 |
|
---|
130 | ULONG (STDMETHODCALLTYPE *AddRef)(
|
---|
131 | IEnumDMO *This);
|
---|
132 |
|
---|
133 | ULONG (STDMETHODCALLTYPE *Release)(
|
---|
134 | IEnumDMO *This);
|
---|
135 |
|
---|
136 | /*** IEnumDMO methods ***/
|
---|
137 | HRESULT (STDMETHODCALLTYPE *Next)(
|
---|
138 | IEnumDMO *This,
|
---|
139 | DWORD cItemsToFetch,
|
---|
140 | CLSID *pCLSID,
|
---|
141 | WCHAR **Names,
|
---|
142 | DWORD *pcItemsFetched);
|
---|
143 |
|
---|
144 | HRESULT (STDMETHODCALLTYPE *Skip)(
|
---|
145 | IEnumDMO *This,
|
---|
146 | DWORD cItemsToSkip);
|
---|
147 |
|
---|
148 | HRESULT (STDMETHODCALLTYPE *Reset)(
|
---|
149 | IEnumDMO *This);
|
---|
150 |
|
---|
151 | HRESULT (STDMETHODCALLTYPE *Clone)(
|
---|
152 | IEnumDMO *This,
|
---|
153 | IEnumDMO **ppEnum);
|
---|
154 |
|
---|
155 | END_INTERFACE
|
---|
156 | } IEnumDMOVtbl;
|
---|
157 |
|
---|
158 | interface IEnumDMO {
|
---|
159 | CONST_VTBL IEnumDMOVtbl* lpVtbl;
|
---|
160 | };
|
---|
161 |
|
---|
162 | #ifdef COBJMACROS
|
---|
163 | #ifndef WIDL_C_INLINE_WRAPPERS
|
---|
164 | /*** IUnknown methods ***/
|
---|
165 | #define IEnumDMO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
166 | #define IEnumDMO_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
167 | #define IEnumDMO_Release(This) (This)->lpVtbl->Release(This)
|
---|
168 | /*** IEnumDMO methods ***/
|
---|
169 | #define IEnumDMO_Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched) (This)->lpVtbl->Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched)
|
---|
170 | #define IEnumDMO_Skip(This,cItemsToSkip) (This)->lpVtbl->Skip(This,cItemsToSkip)
|
---|
171 | #define IEnumDMO_Reset(This) (This)->lpVtbl->Reset(This)
|
---|
172 | #define IEnumDMO_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
|
---|
173 | #else
|
---|
174 | /*** IUnknown methods ***/
|
---|
175 | static FORCEINLINE HRESULT IEnumDMO_QueryInterface(IEnumDMO* This,REFIID riid,void **ppvObject) {
|
---|
176 | return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
---|
177 | }
|
---|
178 | static FORCEINLINE ULONG IEnumDMO_AddRef(IEnumDMO* This) {
|
---|
179 | return This->lpVtbl->AddRef(This);
|
---|
180 | }
|
---|
181 | static FORCEINLINE ULONG IEnumDMO_Release(IEnumDMO* This) {
|
---|
182 | return This->lpVtbl->Release(This);
|
---|
183 | }
|
---|
184 | /*** IEnumDMO methods ***/
|
---|
185 | static FORCEINLINE HRESULT IEnumDMO_Next(IEnumDMO* This,DWORD cItemsToFetch,CLSID *pCLSID,WCHAR **Names,DWORD *pcItemsFetched) {
|
---|
186 | return This->lpVtbl->Next(This,cItemsToFetch,pCLSID,Names,pcItemsFetched);
|
---|
187 | }
|
---|
188 | static FORCEINLINE HRESULT IEnumDMO_Skip(IEnumDMO* This,DWORD cItemsToSkip) {
|
---|
189 | return This->lpVtbl->Skip(This,cItemsToSkip);
|
---|
190 | }
|
---|
191 | static FORCEINLINE HRESULT IEnumDMO_Reset(IEnumDMO* This) {
|
---|
192 | return This->lpVtbl->Reset(This);
|
---|
193 | }
|
---|
194 | static FORCEINLINE HRESULT IEnumDMO_Clone(IEnumDMO* This,IEnumDMO **ppEnum) {
|
---|
195 | return This->lpVtbl->Clone(This,ppEnum);
|
---|
196 | }
|
---|
197 | #endif
|
---|
198 | #endif
|
---|
199 |
|
---|
200 | #endif
|
---|
201 |
|
---|
202 |
|
---|
203 | #endif /* __IEnumDMO_INTERFACE_DEFINED__ */
|
---|
204 |
|
---|
205 | /*****************************************************************************
|
---|
206 | * IMediaBuffer interface
|
---|
207 | */
|
---|
208 | #ifndef __IMediaBuffer_INTERFACE_DEFINED__
|
---|
209 | #define __IMediaBuffer_INTERFACE_DEFINED__
|
---|
210 |
|
---|
211 | DEFINE_GUID(IID_IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37);
|
---|
212 | #if defined(__cplusplus) && !defined(CINTERFACE)
|
---|
213 | MIDL_INTERFACE("59eff8b9-938c-4a26-82f2-95cb84cdc837")
|
---|
214 | IMediaBuffer : public IUnknown
|
---|
215 | {
|
---|
216 | virtual HRESULT STDMETHODCALLTYPE SetLength(
|
---|
217 | DWORD cbLength) = 0;
|
---|
218 |
|
---|
219 | virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
|
---|
220 | DWORD *pcbMaxLength) = 0;
|
---|
221 |
|
---|
222 | virtual HRESULT STDMETHODCALLTYPE GetBufferAndLength(
|
---|
223 | BYTE **ppBuffer,
|
---|
224 | DWORD *pcbLength) = 0;
|
---|
225 |
|
---|
226 | };
|
---|
227 | #ifdef __CRT_UUID_DECL
|
---|
228 | __CRT_UUID_DECL(IMediaBuffer, 0x59eff8b9, 0x938c, 0x4a26, 0x82,0xf2, 0x95,0xcb,0x84,0xcd,0xc8,0x37)
|
---|
229 | #endif
|
---|
230 | #else
|
---|
231 | typedef struct IMediaBufferVtbl {
|
---|
232 | BEGIN_INTERFACE
|
---|
233 |
|
---|
234 | /*** IUnknown methods ***/
|
---|
235 | HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
---|
236 | IMediaBuffer *This,
|
---|
237 | REFIID riid,
|
---|
238 | void **ppvObject);
|
---|
239 |
|
---|
240 | ULONG (STDMETHODCALLTYPE *AddRef)(
|
---|
241 | IMediaBuffer *This);
|
---|
242 |
|
---|
243 | ULONG (STDMETHODCALLTYPE *Release)(
|
---|
244 | IMediaBuffer *This);
|
---|
245 |
|
---|
246 | /*** IMediaBuffer methods ***/
|
---|
247 | HRESULT (STDMETHODCALLTYPE *SetLength)(
|
---|
248 | IMediaBuffer *This,
|
---|
249 | DWORD cbLength);
|
---|
250 |
|
---|
251 | HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
|
---|
252 | IMediaBuffer *This,
|
---|
253 | DWORD *pcbMaxLength);
|
---|
254 |
|
---|
255 | HRESULT (STDMETHODCALLTYPE *GetBufferAndLength)(
|
---|
256 | IMediaBuffer *This,
|
---|
257 | BYTE **ppBuffer,
|
---|
258 | DWORD *pcbLength);
|
---|
259 |
|
---|
260 | END_INTERFACE
|
---|
261 | } IMediaBufferVtbl;
|
---|
262 |
|
---|
263 | interface IMediaBuffer {
|
---|
264 | CONST_VTBL IMediaBufferVtbl* lpVtbl;
|
---|
265 | };
|
---|
266 |
|
---|
267 | #ifdef COBJMACROS
|
---|
268 | #ifndef WIDL_C_INLINE_WRAPPERS
|
---|
269 | /*** IUnknown methods ***/
|
---|
270 | #define IMediaBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
271 | #define IMediaBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
272 | #define IMediaBuffer_Release(This) (This)->lpVtbl->Release(This)
|
---|
273 | /*** IMediaBuffer methods ***/
|
---|
274 | #define IMediaBuffer_SetLength(This,cbLength) (This)->lpVtbl->SetLength(This,cbLength)
|
---|
275 | #define IMediaBuffer_GetMaxLength(This,pcbMaxLength) (This)->lpVtbl->GetMaxLength(This,pcbMaxLength)
|
---|
276 | #define IMediaBuffer_GetBufferAndLength(This,ppBuffer,pcbLength) (This)->lpVtbl->GetBufferAndLength(This,ppBuffer,pcbLength)
|
---|
277 | #else
|
---|
278 | /*** IUnknown methods ***/
|
---|
279 | static FORCEINLINE HRESULT IMediaBuffer_QueryInterface(IMediaBuffer* This,REFIID riid,void **ppvObject) {
|
---|
280 | return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
---|
281 | }
|
---|
282 | static FORCEINLINE ULONG IMediaBuffer_AddRef(IMediaBuffer* This) {
|
---|
283 | return This->lpVtbl->AddRef(This);
|
---|
284 | }
|
---|
285 | static FORCEINLINE ULONG IMediaBuffer_Release(IMediaBuffer* This) {
|
---|
286 | return This->lpVtbl->Release(This);
|
---|
287 | }
|
---|
288 | /*** IMediaBuffer methods ***/
|
---|
289 | static FORCEINLINE HRESULT IMediaBuffer_SetLength(IMediaBuffer* This,DWORD cbLength) {
|
---|
290 | return This->lpVtbl->SetLength(This,cbLength);
|
---|
291 | }
|
---|
292 | static FORCEINLINE HRESULT IMediaBuffer_GetMaxLength(IMediaBuffer* This,DWORD *pcbMaxLength) {
|
---|
293 | return This->lpVtbl->GetMaxLength(This,pcbMaxLength);
|
---|
294 | }
|
---|
295 | static FORCEINLINE HRESULT IMediaBuffer_GetBufferAndLength(IMediaBuffer* This,BYTE **ppBuffer,DWORD *pcbLength) {
|
---|
296 | return This->lpVtbl->GetBufferAndLength(This,ppBuffer,pcbLength);
|
---|
297 | }
|
---|
298 | #endif
|
---|
299 | #endif
|
---|
300 |
|
---|
301 | #endif
|
---|
302 |
|
---|
303 |
|
---|
304 | #endif /* __IMediaBuffer_INTERFACE_DEFINED__ */
|
---|
305 |
|
---|
306 | enum _DMO_INPUT_STATUS_FLAGS {
|
---|
307 | DMO_INPUT_STATUSF_ACCEPT_DATA = 0x1
|
---|
308 | };
|
---|
309 | enum _DMO_INPUT_DATA_BUFFER_FLAGS {
|
---|
310 | DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x1,
|
---|
311 | DMO_INPUT_DATA_BUFFERF_TIME = 0x2,
|
---|
312 | DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x4
|
---|
313 | };
|
---|
314 | enum _DMO_PROCESS_OUTPUT_FLAGS {
|
---|
315 | DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1
|
---|
316 | };
|
---|
317 | typedef struct _DMO_OUTPUT_DATA_BUFFER {
|
---|
318 | IMediaBuffer *pBuffer;
|
---|
319 | DWORD dwStatus;
|
---|
320 | REFERENCE_TIME rtTimestamp;
|
---|
321 | REFERENCE_TIME rtTimelength;
|
---|
322 | } DMO_OUTPUT_DATA_BUFFER;
|
---|
323 | typedef struct _DMO_OUTPUT_DATA_BUFFER *PDMO_OUTPUT_DATA_BUFFER;
|
---|
324 | enum _DMO_INPLACE_PROCESS_FLAGS {
|
---|
325 | DMO_INPLACE_NORMAL = 0x0,
|
---|
326 | DMO_INPLACE_ZERO = 0x1
|
---|
327 | };
|
---|
328 | enum _DMO_SET_TYPE_FLAGS {
|
---|
329 | DMO_SET_TYPEF_TEST_ONLY = 0x1,
|
---|
330 | DMO_SET_TYPEF_CLEAR = 0x2
|
---|
331 | };
|
---|
332 | enum _DMO_OUTPUT_DATA_BUFFERF_FLAGS {
|
---|
333 | DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x1,
|
---|
334 | DMO_OUTPUT_DATA_BUFFERF_TIME = 0x2,
|
---|
335 | DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x4,
|
---|
336 | DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x1000000
|
---|
337 | };
|
---|
338 | /*****************************************************************************
|
---|
339 | * IMediaObject interface
|
---|
340 | */
|
---|
341 | #ifndef __IMediaObject_INTERFACE_DEFINED__
|
---|
342 | #define __IMediaObject_INTERFACE_DEFINED__
|
---|
343 |
|
---|
344 | DEFINE_GUID(IID_IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4);
|
---|
345 | #if defined(__cplusplus) && !defined(CINTERFACE)
|
---|
346 | MIDL_INTERFACE("d8ad0f58-5494-4102-97c5-ec798e59bcf4")
|
---|
347 | IMediaObject : public IUnknown
|
---|
348 | {
|
---|
349 | virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
|
---|
350 | DWORD *pcInputStreams,
|
---|
351 | DWORD *pcOutputStreams) = 0;
|
---|
352 |
|
---|
353 | virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo(
|
---|
354 | DWORD dwInputStreamIndex,
|
---|
355 | DWORD *pdwFlags) = 0;
|
---|
356 |
|
---|
357 | virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo(
|
---|
358 | DWORD dwOutputStreamIndex,
|
---|
359 | DWORD *pdwFlags) = 0;
|
---|
360 |
|
---|
361 | virtual HRESULT STDMETHODCALLTYPE GetInputType(
|
---|
362 | DWORD dwInputStreamIndex,
|
---|
363 | DWORD dwTypeIndex,
|
---|
364 | DMO_MEDIA_TYPE *pmt) = 0;
|
---|
365 |
|
---|
366 | virtual HRESULT STDMETHODCALLTYPE GetOutputType(
|
---|
367 | DWORD dwOutputStreamIndex,
|
---|
368 | DWORD dwTypeIndex,
|
---|
369 | DMO_MEDIA_TYPE *pmt) = 0;
|
---|
370 |
|
---|
371 | virtual HRESULT STDMETHODCALLTYPE SetInputType(
|
---|
372 | DWORD dwInputStreamIndex,
|
---|
373 | const DMO_MEDIA_TYPE *pmt,
|
---|
374 | DWORD dwFlags) = 0;
|
---|
375 |
|
---|
376 | virtual HRESULT STDMETHODCALLTYPE SetOutputType(
|
---|
377 | DWORD dwOutputStreamIndex,
|
---|
378 | const DMO_MEDIA_TYPE *pmt,
|
---|
379 | DWORD dwFlags) = 0;
|
---|
380 |
|
---|
381 | virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType(
|
---|
382 | DWORD dwInputStreamIndex,
|
---|
383 | DMO_MEDIA_TYPE *pmt) = 0;
|
---|
384 |
|
---|
385 | virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType(
|
---|
386 | DWORD dwOutputStreamIndex,
|
---|
387 | DMO_MEDIA_TYPE *pmt) = 0;
|
---|
388 |
|
---|
389 | virtual HRESULT STDMETHODCALLTYPE GetInputSizeInfo(
|
---|
390 | DWORD dwInputStreamIndex,
|
---|
391 | DWORD *pcbSize,
|
---|
392 | DWORD *pcbMaxLookahead,
|
---|
393 | DWORD *pcbAlignment) = 0;
|
---|
394 |
|
---|
395 | virtual HRESULT STDMETHODCALLTYPE GetOutputSizeInfo(
|
---|
396 | DWORD dwOutputStreamIndex,
|
---|
397 | DWORD *pcbSize,
|
---|
398 | DWORD *pcbAlignment) = 0;
|
---|
399 |
|
---|
400 | virtual HRESULT STDMETHODCALLTYPE GetInputMaxLatency(
|
---|
401 | DWORD dwInputStreamIndex,
|
---|
402 | REFERENCE_TIME *prtMaxLatency) = 0;
|
---|
403 |
|
---|
404 | virtual HRESULT STDMETHODCALLTYPE SetInputMaxLatency(
|
---|
405 | DWORD dwInputStreamIndex,
|
---|
406 | REFERENCE_TIME rtMaxLatency) = 0;
|
---|
407 |
|
---|
408 | virtual HRESULT STDMETHODCALLTYPE Flush(
|
---|
409 | ) = 0;
|
---|
410 |
|
---|
411 | virtual HRESULT STDMETHODCALLTYPE Discontinuity(
|
---|
412 | DWORD dwInputStreamIndex) = 0;
|
---|
413 |
|
---|
414 | virtual HRESULT STDMETHODCALLTYPE AllocateStreamingResources(
|
---|
415 | ) = 0;
|
---|
416 |
|
---|
417 | virtual HRESULT STDMETHODCALLTYPE FreeStreamingResources(
|
---|
418 | ) = 0;
|
---|
419 |
|
---|
420 | virtual HRESULT STDMETHODCALLTYPE GetInputStatus(
|
---|
421 | DWORD dwInputStreamIndex,
|
---|
422 | DWORD *dwFlags) = 0;
|
---|
423 |
|
---|
424 | virtual HRESULT STDMETHODCALLTYPE ProcessInput(
|
---|
425 | DWORD dwInputStreamIndex,
|
---|
426 | IMediaBuffer *pBuffer,
|
---|
427 | DWORD dwFlags,
|
---|
428 | REFERENCE_TIME rtTimestamp,
|
---|
429 | REFERENCE_TIME rtTimelength) = 0;
|
---|
430 |
|
---|
431 | virtual HRESULT STDMETHODCALLTYPE ProcessOutput(
|
---|
432 | DWORD dwFlags,
|
---|
433 | DWORD cOutputBufferCount,
|
---|
434 | DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
|
---|
435 | DWORD *pdwStatus) = 0;
|
---|
436 |
|
---|
437 | virtual HRESULT STDMETHODCALLTYPE Lock(
|
---|
438 | LONG bLock) = 0;
|
---|
439 |
|
---|
440 | };
|
---|
441 | #ifdef __CRT_UUID_DECL
|
---|
442 | __CRT_UUID_DECL(IMediaObject, 0xd8ad0f58, 0x5494, 0x4102, 0x97,0xc5, 0xec,0x79,0x8e,0x59,0xbc,0xf4)
|
---|
443 | #endif
|
---|
444 | #else
|
---|
445 | typedef struct IMediaObjectVtbl {
|
---|
446 | BEGIN_INTERFACE
|
---|
447 |
|
---|
448 | /*** IUnknown methods ***/
|
---|
449 | HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
---|
450 | IMediaObject *This,
|
---|
451 | REFIID riid,
|
---|
452 | void **ppvObject);
|
---|
453 |
|
---|
454 | ULONG (STDMETHODCALLTYPE *AddRef)(
|
---|
455 | IMediaObject *This);
|
---|
456 |
|
---|
457 | ULONG (STDMETHODCALLTYPE *Release)(
|
---|
458 | IMediaObject *This);
|
---|
459 |
|
---|
460 | /*** IMediaObject methods ***/
|
---|
461 | HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
|
---|
462 | IMediaObject *This,
|
---|
463 | DWORD *pcInputStreams,
|
---|
464 | DWORD *pcOutputStreams);
|
---|
465 |
|
---|
466 | HRESULT (STDMETHODCALLTYPE *GetInputStreamInfo)(
|
---|
467 | IMediaObject *This,
|
---|
468 | DWORD dwInputStreamIndex,
|
---|
469 | DWORD *pdwFlags);
|
---|
470 |
|
---|
471 | HRESULT (STDMETHODCALLTYPE *GetOutputStreamInfo)(
|
---|
472 | IMediaObject *This,
|
---|
473 | DWORD dwOutputStreamIndex,
|
---|
474 | DWORD *pdwFlags);
|
---|
475 |
|
---|
476 | HRESULT (STDMETHODCALLTYPE *GetInputType)(
|
---|
477 | IMediaObject *This,
|
---|
478 | DWORD dwInputStreamIndex,
|
---|
479 | DWORD dwTypeIndex,
|
---|
480 | DMO_MEDIA_TYPE *pmt);
|
---|
481 |
|
---|
482 | HRESULT (STDMETHODCALLTYPE *GetOutputType)(
|
---|
483 | IMediaObject *This,
|
---|
484 | DWORD dwOutputStreamIndex,
|
---|
485 | DWORD dwTypeIndex,
|
---|
486 | DMO_MEDIA_TYPE *pmt);
|
---|
487 |
|
---|
488 | HRESULT (STDMETHODCALLTYPE *SetInputType)(
|
---|
489 | IMediaObject *This,
|
---|
490 | DWORD dwInputStreamIndex,
|
---|
491 | const DMO_MEDIA_TYPE *pmt,
|
---|
492 | DWORD dwFlags);
|
---|
493 |
|
---|
494 | HRESULT (STDMETHODCALLTYPE *SetOutputType)(
|
---|
495 | IMediaObject *This,
|
---|
496 | DWORD dwOutputStreamIndex,
|
---|
497 | const DMO_MEDIA_TYPE *pmt,
|
---|
498 | DWORD dwFlags);
|
---|
499 |
|
---|
500 | HRESULT (STDMETHODCALLTYPE *GetInputCurrentType)(
|
---|
501 | IMediaObject *This,
|
---|
502 | DWORD dwInputStreamIndex,
|
---|
503 | DMO_MEDIA_TYPE *pmt);
|
---|
504 |
|
---|
505 | HRESULT (STDMETHODCALLTYPE *GetOutputCurrentType)(
|
---|
506 | IMediaObject *This,
|
---|
507 | DWORD dwOutputStreamIndex,
|
---|
508 | DMO_MEDIA_TYPE *pmt);
|
---|
509 |
|
---|
510 | HRESULT (STDMETHODCALLTYPE *GetInputSizeInfo)(
|
---|
511 | IMediaObject *This,
|
---|
512 | DWORD dwInputStreamIndex,
|
---|
513 | DWORD *pcbSize,
|
---|
514 | DWORD *pcbMaxLookahead,
|
---|
515 | DWORD *pcbAlignment);
|
---|
516 |
|
---|
517 | HRESULT (STDMETHODCALLTYPE *GetOutputSizeInfo)(
|
---|
518 | IMediaObject *This,
|
---|
519 | DWORD dwOutputStreamIndex,
|
---|
520 | DWORD *pcbSize,
|
---|
521 | DWORD *pcbAlignment);
|
---|
522 |
|
---|
523 | HRESULT (STDMETHODCALLTYPE *GetInputMaxLatency)(
|
---|
524 | IMediaObject *This,
|
---|
525 | DWORD dwInputStreamIndex,
|
---|
526 | REFERENCE_TIME *prtMaxLatency);
|
---|
527 |
|
---|
528 | HRESULT (STDMETHODCALLTYPE *SetInputMaxLatency)(
|
---|
529 | IMediaObject *This,
|
---|
530 | DWORD dwInputStreamIndex,
|
---|
531 | REFERENCE_TIME rtMaxLatency);
|
---|
532 |
|
---|
533 | HRESULT (STDMETHODCALLTYPE *Flush)(
|
---|
534 | IMediaObject *This);
|
---|
535 |
|
---|
536 | HRESULT (STDMETHODCALLTYPE *Discontinuity)(
|
---|
537 | IMediaObject *This,
|
---|
538 | DWORD dwInputStreamIndex);
|
---|
539 |
|
---|
540 | HRESULT (STDMETHODCALLTYPE *AllocateStreamingResources)(
|
---|
541 | IMediaObject *This);
|
---|
542 |
|
---|
543 | HRESULT (STDMETHODCALLTYPE *FreeStreamingResources)(
|
---|
544 | IMediaObject *This);
|
---|
545 |
|
---|
546 | HRESULT (STDMETHODCALLTYPE *GetInputStatus)(
|
---|
547 | IMediaObject *This,
|
---|
548 | DWORD dwInputStreamIndex,
|
---|
549 | DWORD *dwFlags);
|
---|
550 |
|
---|
551 | HRESULT (STDMETHODCALLTYPE *ProcessInput)(
|
---|
552 | IMediaObject *This,
|
---|
553 | DWORD dwInputStreamIndex,
|
---|
554 | IMediaBuffer *pBuffer,
|
---|
555 | DWORD dwFlags,
|
---|
556 | REFERENCE_TIME rtTimestamp,
|
---|
557 | REFERENCE_TIME rtTimelength);
|
---|
558 |
|
---|
559 | HRESULT (STDMETHODCALLTYPE *ProcessOutput)(
|
---|
560 | IMediaObject *This,
|
---|
561 | DWORD dwFlags,
|
---|
562 | DWORD cOutputBufferCount,
|
---|
563 | DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
|
---|
564 | DWORD *pdwStatus);
|
---|
565 |
|
---|
566 | HRESULT (STDMETHODCALLTYPE *Lock)(
|
---|
567 | IMediaObject *This,
|
---|
568 | LONG bLock);
|
---|
569 |
|
---|
570 | END_INTERFACE
|
---|
571 | } IMediaObjectVtbl;
|
---|
572 |
|
---|
573 | interface IMediaObject {
|
---|
574 | CONST_VTBL IMediaObjectVtbl* lpVtbl;
|
---|
575 | };
|
---|
576 |
|
---|
577 | #ifdef COBJMACROS
|
---|
578 | #ifndef WIDL_C_INLINE_WRAPPERS
|
---|
579 | /*** IUnknown methods ***/
|
---|
580 | #define IMediaObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
581 | #define IMediaObject_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
582 | #define IMediaObject_Release(This) (This)->lpVtbl->Release(This)
|
---|
583 | /*** IMediaObject methods ***/
|
---|
584 | #define IMediaObject_GetStreamCount(This,pcInputStreams,pcOutputStreams) (This)->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams)
|
---|
585 | #define IMediaObject_GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags) (This)->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags)
|
---|
586 | #define IMediaObject_GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags) (This)->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags)
|
---|
587 | #define IMediaObject_GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt) (This)->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt)
|
---|
588 | #define IMediaObject_GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt) (This)->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt)
|
---|
589 | #define IMediaObject_SetInputType(This,dwInputStreamIndex,pmt,dwFlags) (This)->lpVtbl->SetInputType(This,dwInputStreamIndex,pmt,dwFlags)
|
---|
590 | #define IMediaObject_SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags) (This)->lpVtbl->SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags)
|
---|
591 | #define IMediaObject_GetInputCurrentType(This,dwInputStreamIndex,pmt) (This)->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt)
|
---|
592 | #define IMediaObject_GetOutputCurrentType(This,dwOutputStreamIndex,pmt) (This)->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt)
|
---|
593 | #define IMediaObject_GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment) (This)->lpVtbl->GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment)
|
---|
594 | #define IMediaObject_GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment) (This)->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment)
|
---|
595 | #define IMediaObject_GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency) (This)->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency)
|
---|
596 | #define IMediaObject_SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency) (This)->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency)
|
---|
597 | #define IMediaObject_Flush(This) (This)->lpVtbl->Flush(This)
|
---|
598 | #define IMediaObject_Discontinuity(This,dwInputStreamIndex) (This)->lpVtbl->Discontinuity(This,dwInputStreamIndex)
|
---|
599 | #define IMediaObject_AllocateStreamingResources(This) (This)->lpVtbl->AllocateStreamingResources(This)
|
---|
600 | #define IMediaObject_FreeStreamingResources(This) (This)->lpVtbl->FreeStreamingResources(This)
|
---|
601 | #define IMediaObject_GetInputStatus(This,dwInputStreamIndex,dwFlags) (This)->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags)
|
---|
602 | #define IMediaObject_ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength) (This)->lpVtbl->ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength)
|
---|
603 | #define IMediaObject_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus) (This)->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus)
|
---|
604 | #define IMediaObject_Lock(This,bLock) (This)->lpVtbl->Lock(This,bLock)
|
---|
605 | #else
|
---|
606 | /*** IUnknown methods ***/
|
---|
607 | static FORCEINLINE HRESULT IMediaObject_QueryInterface(IMediaObject* This,REFIID riid,void **ppvObject) {
|
---|
608 | return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
---|
609 | }
|
---|
610 | static FORCEINLINE ULONG IMediaObject_AddRef(IMediaObject* This) {
|
---|
611 | return This->lpVtbl->AddRef(This);
|
---|
612 | }
|
---|
613 | static FORCEINLINE ULONG IMediaObject_Release(IMediaObject* This) {
|
---|
614 | return This->lpVtbl->Release(This);
|
---|
615 | }
|
---|
616 | /*** IMediaObject methods ***/
|
---|
617 | static FORCEINLINE HRESULT IMediaObject_GetStreamCount(IMediaObject* This,DWORD *pcInputStreams,DWORD *pcOutputStreams) {
|
---|
618 | return This->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams);
|
---|
619 | }
|
---|
620 | static FORCEINLINE HRESULT IMediaObject_GetInputStreamInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pdwFlags) {
|
---|
621 | return This->lpVtbl->GetInputStreamInfo(This,dwInputStreamIndex,pdwFlags);
|
---|
622 | }
|
---|
623 | static FORCEINLINE HRESULT IMediaObject_GetOutputStreamInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pdwFlags) {
|
---|
624 | return This->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamIndex,pdwFlags);
|
---|
625 | }
|
---|
626 | static FORCEINLINE HRESULT IMediaObject_GetInputType(IMediaObject* This,DWORD dwInputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) {
|
---|
627 | return This->lpVtbl->GetInputType(This,dwInputStreamIndex,dwTypeIndex,pmt);
|
---|
628 | }
|
---|
629 | static FORCEINLINE HRESULT IMediaObject_GetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD dwTypeIndex,DMO_MEDIA_TYPE *pmt) {
|
---|
630 | return This->lpVtbl->GetOutputType(This,dwOutputStreamIndex,dwTypeIndex,pmt);
|
---|
631 | }
|
---|
632 | static FORCEINLINE HRESULT IMediaObject_SetInputType(IMediaObject* This,DWORD dwInputStreamIndex,const DMO_MEDIA_TYPE *pmt,DWORD dwFlags) {
|
---|
633 | return This->lpVtbl->SetInputType(This,dwInputStreamIndex,pmt,dwFlags);
|
---|
634 | }
|
---|
635 | static FORCEINLINE HRESULT IMediaObject_SetOutputType(IMediaObject* This,DWORD dwOutputStreamIndex,const DMO_MEDIA_TYPE *pmt,DWORD dwFlags) {
|
---|
636 | return This->lpVtbl->SetOutputType(This,dwOutputStreamIndex,pmt,dwFlags);
|
---|
637 | }
|
---|
638 | static FORCEINLINE HRESULT IMediaObject_GetInputCurrentType(IMediaObject* This,DWORD dwInputStreamIndex,DMO_MEDIA_TYPE *pmt) {
|
---|
639 | return This->lpVtbl->GetInputCurrentType(This,dwInputStreamIndex,pmt);
|
---|
640 | }
|
---|
641 | static FORCEINLINE HRESULT IMediaObject_GetOutputCurrentType(IMediaObject* This,DWORD dwOutputStreamIndex,DMO_MEDIA_TYPE *pmt) {
|
---|
642 | return This->lpVtbl->GetOutputCurrentType(This,dwOutputStreamIndex,pmt);
|
---|
643 | }
|
---|
644 | static FORCEINLINE HRESULT IMediaObject_GetInputSizeInfo(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *pcbSize,DWORD *pcbMaxLookahead,DWORD *pcbAlignment) {
|
---|
645 | return This->lpVtbl->GetInputSizeInfo(This,dwInputStreamIndex,pcbSize,pcbMaxLookahead,pcbAlignment);
|
---|
646 | }
|
---|
647 | static FORCEINLINE HRESULT IMediaObject_GetOutputSizeInfo(IMediaObject* This,DWORD dwOutputStreamIndex,DWORD *pcbSize,DWORD *pcbAlignment) {
|
---|
648 | return This->lpVtbl->GetOutputSizeInfo(This,dwOutputStreamIndex,pcbSize,pcbAlignment);
|
---|
649 | }
|
---|
650 | static FORCEINLINE HRESULT IMediaObject_GetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME *prtMaxLatency) {
|
---|
651 | return This->lpVtbl->GetInputMaxLatency(This,dwInputStreamIndex,prtMaxLatency);
|
---|
652 | }
|
---|
653 | static FORCEINLINE HRESULT IMediaObject_SetInputMaxLatency(IMediaObject* This,DWORD dwInputStreamIndex,REFERENCE_TIME rtMaxLatency) {
|
---|
654 | return This->lpVtbl->SetInputMaxLatency(This,dwInputStreamIndex,rtMaxLatency);
|
---|
655 | }
|
---|
656 | static FORCEINLINE HRESULT IMediaObject_Flush(IMediaObject* This) {
|
---|
657 | return This->lpVtbl->Flush(This);
|
---|
658 | }
|
---|
659 | static FORCEINLINE HRESULT IMediaObject_Discontinuity(IMediaObject* This,DWORD dwInputStreamIndex) {
|
---|
660 | return This->lpVtbl->Discontinuity(This,dwInputStreamIndex);
|
---|
661 | }
|
---|
662 | static FORCEINLINE HRESULT IMediaObject_AllocateStreamingResources(IMediaObject* This) {
|
---|
663 | return This->lpVtbl->AllocateStreamingResources(This);
|
---|
664 | }
|
---|
665 | static FORCEINLINE HRESULT IMediaObject_FreeStreamingResources(IMediaObject* This) {
|
---|
666 | return This->lpVtbl->FreeStreamingResources(This);
|
---|
667 | }
|
---|
668 | static FORCEINLINE HRESULT IMediaObject_GetInputStatus(IMediaObject* This,DWORD dwInputStreamIndex,DWORD *dwFlags) {
|
---|
669 | return This->lpVtbl->GetInputStatus(This,dwInputStreamIndex,dwFlags);
|
---|
670 | }
|
---|
671 | static FORCEINLINE HRESULT IMediaObject_ProcessInput(IMediaObject* This,DWORD dwInputStreamIndex,IMediaBuffer *pBuffer,DWORD dwFlags,REFERENCE_TIME rtTimestamp,REFERENCE_TIME rtTimelength) {
|
---|
672 | return This->lpVtbl->ProcessInput(This,dwInputStreamIndex,pBuffer,dwFlags,rtTimestamp,rtTimelength);
|
---|
673 | }
|
---|
674 | static FORCEINLINE HRESULT IMediaObject_ProcessOutput(IMediaObject* This,DWORD dwFlags,DWORD cOutputBufferCount,DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,DWORD *pdwStatus) {
|
---|
675 | return This->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputBuffers,pdwStatus);
|
---|
676 | }
|
---|
677 | static FORCEINLINE HRESULT IMediaObject_Lock(IMediaObject* This,LONG bLock) {
|
---|
678 | return This->lpVtbl->Lock(This,bLock);
|
---|
679 | }
|
---|
680 | #endif
|
---|
681 | #endif
|
---|
682 |
|
---|
683 | #endif
|
---|
684 |
|
---|
685 |
|
---|
686 | #endif /* __IMediaObject_INTERFACE_DEFINED__ */
|
---|
687 |
|
---|
688 | /*****************************************************************************
|
---|
689 | * IMediaObjectInPlace interface
|
---|
690 | */
|
---|
691 | #ifndef __IMediaObjectInPlace_INTERFACE_DEFINED__
|
---|
692 | #define __IMediaObjectInPlace_INTERFACE_DEFINED__
|
---|
693 |
|
---|
694 | DEFINE_GUID(IID_IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41);
|
---|
695 | #if defined(__cplusplus) && !defined(CINTERFACE)
|
---|
696 | MIDL_INTERFACE("651b9ad0-0fc7-4aa9-9538-d89931010741")
|
---|
697 | IMediaObjectInPlace : public IUnknown
|
---|
698 | {
|
---|
699 | virtual HRESULT STDMETHODCALLTYPE Process(
|
---|
700 | ULONG ulSize,
|
---|
701 | BYTE *pData,
|
---|
702 | REFERENCE_TIME refTimeStart,
|
---|
703 | DWORD dwFlags) = 0;
|
---|
704 |
|
---|
705 | virtual HRESULT STDMETHODCALLTYPE Clone(
|
---|
706 | IMediaObjectInPlace **ppMediaObject) = 0;
|
---|
707 |
|
---|
708 | virtual HRESULT STDMETHODCALLTYPE GetLatency(
|
---|
709 | REFERENCE_TIME *pLatencyTime) = 0;
|
---|
710 |
|
---|
711 | };
|
---|
712 | #ifdef __CRT_UUID_DECL
|
---|
713 | __CRT_UUID_DECL(IMediaObjectInPlace, 0x651b9ad0, 0x0fc7, 0x4aa9, 0x95,0x38, 0xd8,0x99,0x31,0x01,0x07,0x41)
|
---|
714 | #endif
|
---|
715 | #else
|
---|
716 | typedef struct IMediaObjectInPlaceVtbl {
|
---|
717 | BEGIN_INTERFACE
|
---|
718 |
|
---|
719 | /*** IUnknown methods ***/
|
---|
720 | HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
---|
721 | IMediaObjectInPlace *This,
|
---|
722 | REFIID riid,
|
---|
723 | void **ppvObject);
|
---|
724 |
|
---|
725 | ULONG (STDMETHODCALLTYPE *AddRef)(
|
---|
726 | IMediaObjectInPlace *This);
|
---|
727 |
|
---|
728 | ULONG (STDMETHODCALLTYPE *Release)(
|
---|
729 | IMediaObjectInPlace *This);
|
---|
730 |
|
---|
731 | /*** IMediaObjectInPlace methods ***/
|
---|
732 | HRESULT (STDMETHODCALLTYPE *Process)(
|
---|
733 | IMediaObjectInPlace *This,
|
---|
734 | ULONG ulSize,
|
---|
735 | BYTE *pData,
|
---|
736 | REFERENCE_TIME refTimeStart,
|
---|
737 | DWORD dwFlags);
|
---|
738 |
|
---|
739 | HRESULT (STDMETHODCALLTYPE *Clone)(
|
---|
740 | IMediaObjectInPlace *This,
|
---|
741 | IMediaObjectInPlace **ppMediaObject);
|
---|
742 |
|
---|
743 | HRESULT (STDMETHODCALLTYPE *GetLatency)(
|
---|
744 | IMediaObjectInPlace *This,
|
---|
745 | REFERENCE_TIME *pLatencyTime);
|
---|
746 |
|
---|
747 | END_INTERFACE
|
---|
748 | } IMediaObjectInPlaceVtbl;
|
---|
749 |
|
---|
750 | interface IMediaObjectInPlace {
|
---|
751 | CONST_VTBL IMediaObjectInPlaceVtbl* lpVtbl;
|
---|
752 | };
|
---|
753 |
|
---|
754 | #ifdef COBJMACROS
|
---|
755 | #ifndef WIDL_C_INLINE_WRAPPERS
|
---|
756 | /*** IUnknown methods ***/
|
---|
757 | #define IMediaObjectInPlace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
758 | #define IMediaObjectInPlace_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
759 | #define IMediaObjectInPlace_Release(This) (This)->lpVtbl->Release(This)
|
---|
760 | /*** IMediaObjectInPlace methods ***/
|
---|
761 | #define IMediaObjectInPlace_Process(This,ulSize,pData,refTimeStart,dwFlags) (This)->lpVtbl->Process(This,ulSize,pData,refTimeStart,dwFlags)
|
---|
762 | #define IMediaObjectInPlace_Clone(This,ppMediaObject) (This)->lpVtbl->Clone(This,ppMediaObject)
|
---|
763 | #define IMediaObjectInPlace_GetLatency(This,pLatencyTime) (This)->lpVtbl->GetLatency(This,pLatencyTime)
|
---|
764 | #else
|
---|
765 | /*** IUnknown methods ***/
|
---|
766 | static FORCEINLINE HRESULT IMediaObjectInPlace_QueryInterface(IMediaObjectInPlace* This,REFIID riid,void **ppvObject) {
|
---|
767 | return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
---|
768 | }
|
---|
769 | static FORCEINLINE ULONG IMediaObjectInPlace_AddRef(IMediaObjectInPlace* This) {
|
---|
770 | return This->lpVtbl->AddRef(This);
|
---|
771 | }
|
---|
772 | static FORCEINLINE ULONG IMediaObjectInPlace_Release(IMediaObjectInPlace* This) {
|
---|
773 | return This->lpVtbl->Release(This);
|
---|
774 | }
|
---|
775 | /*** IMediaObjectInPlace methods ***/
|
---|
776 | static FORCEINLINE HRESULT IMediaObjectInPlace_Process(IMediaObjectInPlace* This,ULONG ulSize,BYTE *pData,REFERENCE_TIME refTimeStart,DWORD dwFlags) {
|
---|
777 | return This->lpVtbl->Process(This,ulSize,pData,refTimeStart,dwFlags);
|
---|
778 | }
|
---|
779 | static FORCEINLINE HRESULT IMediaObjectInPlace_Clone(IMediaObjectInPlace* This,IMediaObjectInPlace **ppMediaObject) {
|
---|
780 | return This->lpVtbl->Clone(This,ppMediaObject);
|
---|
781 | }
|
---|
782 | static FORCEINLINE HRESULT IMediaObjectInPlace_GetLatency(IMediaObjectInPlace* This,REFERENCE_TIME *pLatencyTime) {
|
---|
783 | return This->lpVtbl->GetLatency(This,pLatencyTime);
|
---|
784 | }
|
---|
785 | #endif
|
---|
786 | #endif
|
---|
787 |
|
---|
788 | #endif
|
---|
789 |
|
---|
790 |
|
---|
791 | #endif /* __IMediaObjectInPlace_INTERFACE_DEFINED__ */
|
---|
792 |
|
---|
793 | enum _DMO_QUALITY_STATUS_FLAGS {
|
---|
794 | DMO_QUALITY_STATUS_ENABLED = 0x1
|
---|
795 | };
|
---|
796 | /*****************************************************************************
|
---|
797 | * IDMOQualityControl interface
|
---|
798 | */
|
---|
799 | #ifndef __IDMOQualityControl_INTERFACE_DEFINED__
|
---|
800 | #define __IDMOQualityControl_INTERFACE_DEFINED__
|
---|
801 |
|
---|
802 | DEFINE_GUID(IID_IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60);
|
---|
803 | #if defined(__cplusplus) && !defined(CINTERFACE)
|
---|
804 | MIDL_INTERFACE("65abea96-cf36-453f-af8a-705e98f16260")
|
---|
805 | IDMOQualityControl : public IUnknown
|
---|
806 | {
|
---|
807 | virtual HRESULT STDMETHODCALLTYPE SetNow(
|
---|
808 | REFERENCE_TIME now) = 0;
|
---|
809 |
|
---|
810 | virtual HRESULT STDMETHODCALLTYPE SetStatus(
|
---|
811 | DWORD flags) = 0;
|
---|
812 |
|
---|
813 | virtual HRESULT STDMETHODCALLTYPE GetStatus(
|
---|
814 | DWORD *flags) = 0;
|
---|
815 |
|
---|
816 | };
|
---|
817 | #ifdef __CRT_UUID_DECL
|
---|
818 | __CRT_UUID_DECL(IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60)
|
---|
819 | #endif
|
---|
820 | #else
|
---|
821 | typedef struct IDMOQualityControlVtbl {
|
---|
822 | BEGIN_INTERFACE
|
---|
823 |
|
---|
824 | /*** IUnknown methods ***/
|
---|
825 | HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
---|
826 | IDMOQualityControl *This,
|
---|
827 | REFIID riid,
|
---|
828 | void **ppvObject);
|
---|
829 |
|
---|
830 | ULONG (STDMETHODCALLTYPE *AddRef)(
|
---|
831 | IDMOQualityControl *This);
|
---|
832 |
|
---|
833 | ULONG (STDMETHODCALLTYPE *Release)(
|
---|
834 | IDMOQualityControl *This);
|
---|
835 |
|
---|
836 | /*** IDMOQualityControl methods ***/
|
---|
837 | HRESULT (STDMETHODCALLTYPE *SetNow)(
|
---|
838 | IDMOQualityControl *This,
|
---|
839 | REFERENCE_TIME now);
|
---|
840 |
|
---|
841 | HRESULT (STDMETHODCALLTYPE *SetStatus)(
|
---|
842 | IDMOQualityControl *This,
|
---|
843 | DWORD flags);
|
---|
844 |
|
---|
845 | HRESULT (STDMETHODCALLTYPE *GetStatus)(
|
---|
846 | IDMOQualityControl *This,
|
---|
847 | DWORD *flags);
|
---|
848 |
|
---|
849 | END_INTERFACE
|
---|
850 | } IDMOQualityControlVtbl;
|
---|
851 |
|
---|
852 | interface IDMOQualityControl {
|
---|
853 | CONST_VTBL IDMOQualityControlVtbl* lpVtbl;
|
---|
854 | };
|
---|
855 |
|
---|
856 | #ifdef COBJMACROS
|
---|
857 | #ifndef WIDL_C_INLINE_WRAPPERS
|
---|
858 | /*** IUnknown methods ***/
|
---|
859 | #define IDMOQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
860 | #define IDMOQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
861 | #define IDMOQualityControl_Release(This) (This)->lpVtbl->Release(This)
|
---|
862 | /*** IDMOQualityControl methods ***/
|
---|
863 | #define IDMOQualityControl_SetNow(This,now) (This)->lpVtbl->SetNow(This,now)
|
---|
864 | #define IDMOQualityControl_SetStatus(This,flags) (This)->lpVtbl->SetStatus(This,flags)
|
---|
865 | #define IDMOQualityControl_GetStatus(This,flags) (This)->lpVtbl->GetStatus(This,flags)
|
---|
866 | #else
|
---|
867 | /*** IUnknown methods ***/
|
---|
868 | static FORCEINLINE HRESULT IDMOQualityControl_QueryInterface(IDMOQualityControl* This,REFIID riid,void **ppvObject) {
|
---|
869 | return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
---|
870 | }
|
---|
871 | static FORCEINLINE ULONG IDMOQualityControl_AddRef(IDMOQualityControl* This) {
|
---|
872 | return This->lpVtbl->AddRef(This);
|
---|
873 | }
|
---|
874 | static FORCEINLINE ULONG IDMOQualityControl_Release(IDMOQualityControl* This) {
|
---|
875 | return This->lpVtbl->Release(This);
|
---|
876 | }
|
---|
877 | /*** IDMOQualityControl methods ***/
|
---|
878 | static FORCEINLINE HRESULT IDMOQualityControl_SetNow(IDMOQualityControl* This,REFERENCE_TIME now) {
|
---|
879 | return This->lpVtbl->SetNow(This,now);
|
---|
880 | }
|
---|
881 | static FORCEINLINE HRESULT IDMOQualityControl_SetStatus(IDMOQualityControl* This,DWORD flags) {
|
---|
882 | return This->lpVtbl->SetStatus(This,flags);
|
---|
883 | }
|
---|
884 | static FORCEINLINE HRESULT IDMOQualityControl_GetStatus(IDMOQualityControl* This,DWORD *flags) {
|
---|
885 | return This->lpVtbl->GetStatus(This,flags);
|
---|
886 | }
|
---|
887 | #endif
|
---|
888 | #endif
|
---|
889 |
|
---|
890 | #endif
|
---|
891 |
|
---|
892 |
|
---|
893 | #endif /* __IDMOQualityControl_INTERFACE_DEFINED__ */
|
---|
894 |
|
---|
895 | enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS {
|
---|
896 | DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x1
|
---|
897 | };
|
---|
898 | /*****************************************************************************
|
---|
899 | * IDMOVideoOutputOptimizations interface
|
---|
900 | */
|
---|
901 | #ifndef __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
|
---|
902 | #define __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
|
---|
903 |
|
---|
904 | DEFINE_GUID(IID_IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac);
|
---|
905 | #if defined(__cplusplus) && !defined(CINTERFACE)
|
---|
906 | MIDL_INTERFACE("be8f4f4e-5b16-4d29-b350-7f6b5d9298ac")
|
---|
907 | IDMOVideoOutputOptimizations : public IUnknown
|
---|
908 | {
|
---|
909 | virtual HRESULT STDMETHODCALLTYPE QueryOperationModePreferences(
|
---|
910 | ULONG index,
|
---|
911 | DWORD *flags) = 0;
|
---|
912 |
|
---|
913 | virtual HRESULT STDMETHODCALLTYPE SetOperationMode(
|
---|
914 | ULONG index,
|
---|
915 | DWORD flags) = 0;
|
---|
916 |
|
---|
917 | virtual HRESULT STDMETHODCALLTYPE GetCurrentOperationMode(
|
---|
918 | ULONG index,
|
---|
919 | DWORD *flags) = 0;
|
---|
920 |
|
---|
921 | virtual HRESULT STDMETHODCALLTYPE GetCurrentSampleRequirements(
|
---|
922 | ULONG index,
|
---|
923 | DWORD *flags) = 0;
|
---|
924 |
|
---|
925 | };
|
---|
926 | #ifdef __CRT_UUID_DECL
|
---|
927 | __CRT_UUID_DECL(IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac)
|
---|
928 | #endif
|
---|
929 | #else
|
---|
930 | typedef struct IDMOVideoOutputOptimizationsVtbl {
|
---|
931 | BEGIN_INTERFACE
|
---|
932 |
|
---|
933 | /*** IUnknown methods ***/
|
---|
934 | HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
---|
935 | IDMOVideoOutputOptimizations *This,
|
---|
936 | REFIID riid,
|
---|
937 | void **ppvObject);
|
---|
938 |
|
---|
939 | ULONG (STDMETHODCALLTYPE *AddRef)(
|
---|
940 | IDMOVideoOutputOptimizations *This);
|
---|
941 |
|
---|
942 | ULONG (STDMETHODCALLTYPE *Release)(
|
---|
943 | IDMOVideoOutputOptimizations *This);
|
---|
944 |
|
---|
945 | /*** IDMOVideoOutputOptimizations methods ***/
|
---|
946 | HRESULT (STDMETHODCALLTYPE *QueryOperationModePreferences)(
|
---|
947 | IDMOVideoOutputOptimizations *This,
|
---|
948 | ULONG index,
|
---|
949 | DWORD *flags);
|
---|
950 |
|
---|
951 | HRESULT (STDMETHODCALLTYPE *SetOperationMode)(
|
---|
952 | IDMOVideoOutputOptimizations *This,
|
---|
953 | ULONG index,
|
---|
954 | DWORD flags);
|
---|
955 |
|
---|
956 | HRESULT (STDMETHODCALLTYPE *GetCurrentOperationMode)(
|
---|
957 | IDMOVideoOutputOptimizations *This,
|
---|
958 | ULONG index,
|
---|
959 | DWORD *flags);
|
---|
960 |
|
---|
961 | HRESULT (STDMETHODCALLTYPE *GetCurrentSampleRequirements)(
|
---|
962 | IDMOVideoOutputOptimizations *This,
|
---|
963 | ULONG index,
|
---|
964 | DWORD *flags);
|
---|
965 |
|
---|
966 | END_INTERFACE
|
---|
967 | } IDMOVideoOutputOptimizationsVtbl;
|
---|
968 |
|
---|
969 | interface IDMOVideoOutputOptimizations {
|
---|
970 | CONST_VTBL IDMOVideoOutputOptimizationsVtbl* lpVtbl;
|
---|
971 | };
|
---|
972 |
|
---|
973 | #ifdef COBJMACROS
|
---|
974 | #ifndef WIDL_C_INLINE_WRAPPERS
|
---|
975 | /*** IUnknown methods ***/
|
---|
976 | #define IDMOVideoOutputOptimizations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
|
---|
977 | #define IDMOVideoOutputOptimizations_AddRef(This) (This)->lpVtbl->AddRef(This)
|
---|
978 | #define IDMOVideoOutputOptimizations_Release(This) (This)->lpVtbl->Release(This)
|
---|
979 | /*** IDMOVideoOutputOptimizations methods ***/
|
---|
980 | #define IDMOVideoOutputOptimizations_QueryOperationModePreferences(This,index,flags) (This)->lpVtbl->QueryOperationModePreferences(This,index,flags)
|
---|
981 | #define IDMOVideoOutputOptimizations_SetOperationMode(This,index,flags) (This)->lpVtbl->SetOperationMode(This,index,flags)
|
---|
982 | #define IDMOVideoOutputOptimizations_GetCurrentOperationMode(This,index,flags) (This)->lpVtbl->GetCurrentOperationMode(This,index,flags)
|
---|
983 | #define IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(This,index,flags) (This)->lpVtbl->GetCurrentSampleRequirements(This,index,flags)
|
---|
984 | #else
|
---|
985 | /*** IUnknown methods ***/
|
---|
986 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryInterface(IDMOVideoOutputOptimizations* This,REFIID riid,void **ppvObject) {
|
---|
987 | return This->lpVtbl->QueryInterface(This,riid,ppvObject);
|
---|
988 | }
|
---|
989 | static FORCEINLINE ULONG IDMOVideoOutputOptimizations_AddRef(IDMOVideoOutputOptimizations* This) {
|
---|
990 | return This->lpVtbl->AddRef(This);
|
---|
991 | }
|
---|
992 | static FORCEINLINE ULONG IDMOVideoOutputOptimizations_Release(IDMOVideoOutputOptimizations* This) {
|
---|
993 | return This->lpVtbl->Release(This);
|
---|
994 | }
|
---|
995 | /*** IDMOVideoOutputOptimizations methods ***/
|
---|
996 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryOperationModePreferences(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
|
---|
997 | return This->lpVtbl->QueryOperationModePreferences(This,index,flags);
|
---|
998 | }
|
---|
999 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_SetOperationMode(IDMOVideoOutputOptimizations* This,ULONG index,DWORD flags) {
|
---|
1000 | return This->lpVtbl->SetOperationMode(This,index,flags);
|
---|
1001 | }
|
---|
1002 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentOperationMode(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
|
---|
1003 | return This->lpVtbl->GetCurrentOperationMode(This,index,flags);
|
---|
1004 | }
|
---|
1005 | static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
|
---|
1006 | return This->lpVtbl->GetCurrentSampleRequirements(This,index,flags);
|
---|
1007 | }
|
---|
1008 | #endif
|
---|
1009 | #endif
|
---|
1010 |
|
---|
1011 | #endif
|
---|
1012 |
|
---|
1013 |
|
---|
1014 | #endif /* __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__ */
|
---|
1015 |
|
---|
1016 | /* Begin additional prototypes for all interfaces */
|
---|
1017 |
|
---|
1018 |
|
---|
1019 | /* End additional prototypes */
|
---|
1020 |
|
---|
1021 | #ifdef __cplusplus
|
---|
1022 | }
|
---|
1023 | #endif
|
---|
1024 |
|
---|
1025 | #endif /* __mediaobj_h__ */
|
---|