master
1/*** Autogenerated by WIDL 10.4 from include/mftransform.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 __mftransform_h__
17#define __mftransform_h__
18
19/* Forward declarations */
20
21#ifndef __IMFTransform_FWD_DEFINED__
22#define __IMFTransform_FWD_DEFINED__
23typedef interface IMFTransform IMFTransform;
24#ifdef __cplusplus
25interface IMFTransform;
26#endif /* __cplusplus */
27#endif
28
29/* Headers for imported files */
30
31#include <mfobjects.h>
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
37#define MFT_OUTPUT_BOUND_LOWER_UNBOUNDED MINLONGLONG
38#define MFT_OUTPUT_BOUND_UPPER_UNBOUNDED MAXLONGLONG
39typedef enum _MFT_MESSAGE_TYPE {
40 MFT_MESSAGE_COMMAND_FLUSH = 0x0,
41 MFT_MESSAGE_COMMAND_DRAIN = 0x1,
42 MFT_MESSAGE_SET_D3D_MANAGER = 0x2,
43 MFT_MESSAGE_DROP_SAMPLES = 0x3,
44 MFT_MESSAGE_COMMAND_TICK = 0x4,
45 MFT_MESSAGE_NOTIFY_BEGIN_STREAMING = 0x10000000,
46 MFT_MESSAGE_NOTIFY_END_STREAMING = 0x10000001,
47 MFT_MESSAGE_NOTIFY_END_OF_STREAM = 0x10000002,
48 MFT_MESSAGE_NOTIFY_START_OF_STREAM = 0x10000003,
49 MFT_MESSAGE_NOTIFY_RELEASE_RESOURCES = 0x10000004,
50 MFT_MESSAGE_NOTIFY_REACQUIRE_RESOURCES = 0x10000005,
51 MFT_MESSAGE_NOTIFY_EVENT = 0x10000006,
52 MFT_MESSAGE_COMMAND_SET_OUTPUT_STREAM_STATE = 0x10000007,
53 MFT_MESSAGE_COMMAND_FLUSH_OUTPUT_STREAM = 0x10000008,
54 MFT_MESSAGE_COMMAND_MARKER = 0x20000000
55} MFT_MESSAGE_TYPE;
56enum _MFT_SET_TYPE_FLAGS {
57 MFT_SET_TYPE_TEST_ONLY = 0x1
58};
59enum _MFT_INPUT_STREAM_INFO_FLAGS {
60 MFT_INPUT_STREAM_WHOLE_SAMPLES = 0x1,
61 MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x2,
62 MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE = 0x4,
63 MFT_INPUT_STREAM_HOLDS_BUFFERS = 0x8,
64 MFT_INPUT_STREAM_DOES_NOT_ADDREF = 0x100,
65 MFT_INPUT_STREAM_REMOVABLE = 0x200,
66 MFT_INPUT_STREAM_OPTIONAL = 0x400,
67 MFT_INPUT_STREAM_PROCESSES_IN_PLACE = 0x800
68};
69enum _MFT_INPUT_STATUS_FLAGS {
70 MFT_INPUT_STATUS_ACCEPT_DATA = 0x1
71};
72enum _MFT_INPUT_DATA_BUFFER_FLAGS {
73 MFT_INPUT_DATA_BUFFER_PLACEHOLDER = 0xffffffff
74};
75enum _MFT_OUTPUT_STREAM_INFO_FLAGS {
76 MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x1,
77 MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x2,
78 MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 0x4,
79 MFT_OUTPUT_STREAM_DISCARDABLE = 0x8,
80 MFT_OUTPUT_STREAM_OPTIONAL = 0x10,
81 MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 0x100,
82 MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 0x200,
83 MFT_OUTPUT_STREAM_LAZY_READ = 0x400,
84 MFT_OUTPUT_STREAM_REMOVABLE = 0x800
85};
86enum _MFT_OUTPUT_DATA_BUFFER_FLAGS {
87 MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x1000000,
88 MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x100,
89 MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x200,
90 MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x300
91};
92enum _MFT_OUTPUT_STATUS_FLAGS {
93 MFT_OUTPUT_STATUS_SAMPLE_READY = 0x1
94};
95enum _MFT_PROCESS_OUTPUT_FLAGS {
96 MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1,
97 MFT_PROCESS_OUTPUT_REGENERATE_LAST_OUTPUT = 0x2
98};
99enum _MFT_PROCESS_OUTPUT_STATUS {
100 MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS = 0x100
101};
102enum _MFT_DRAIN_TYPE {
103 MFT_DRAIN_PRODUCE_TAILS = 0x0,
104 MFT_DRAIN_NO_TAILS = 0x1
105};
106typedef enum _MF3DVideoOutputType {
107 MF3DVideoOutputType_BaseView = 0,
108 MF3DVideoOutputType_Stereo = 1
109} MF3DVideoOutputType;
110typedef struct _MFT_INPUT_STREAM_INFO {
111 LONGLONG hnsMaxLatency;
112 DWORD dwFlags;
113 DWORD cbSize;
114 DWORD cbMaxLookahead;
115 DWORD cbAlignment;
116} MFT_INPUT_STREAM_INFO;
117typedef struct _MFT_OUTPUT_STREAM_INFO {
118 DWORD dwFlags;
119 DWORD cbSize;
120 DWORD cbAlignment;
121} MFT_OUTPUT_STREAM_INFO;
122typedef struct _MFT_OUTPUT_DATA_BUFFER {
123 DWORD dwStreamID;
124 IMFSample *pSample;
125 DWORD dwStatus;
126 IMFCollection *pEvents;
127} MFT_OUTPUT_DATA_BUFFER;
128typedef struct _MFT_OUTPUT_DATA_BUFFER *PMFT_OUTPUT_DATA_BUFFER;
129/*****************************************************************************
130 * IMFTransform interface
131 */
132#ifndef __IMFTransform_INTERFACE_DEFINED__
133#define __IMFTransform_INTERFACE_DEFINED__
134
135DEFINE_GUID(IID_IMFTransform, 0xbf94c121, 0x5b05, 0x4e6f, 0x80,0x00, 0xba,0x59,0x89,0x61,0x41,0x4d);
136#if defined(__cplusplus) && !defined(CINTERFACE)
137MIDL_INTERFACE("bf94c121-5b05-4e6f-8000-ba598961414d")
138IMFTransform : public IUnknown
139{
140 virtual HRESULT STDMETHODCALLTYPE GetStreamLimits(
141 DWORD *input_minimum,
142 DWORD *input_maximum,
143 DWORD *output_minimum,
144 DWORD *output_maximum) = 0;
145
146 virtual HRESULT STDMETHODCALLTYPE GetStreamCount(
147 DWORD *inputs,
148 DWORD *outputs) = 0;
149
150 virtual HRESULT STDMETHODCALLTYPE GetStreamIDs(
151 DWORD input_size,
152 DWORD *inputs,
153 DWORD output_size,
154 DWORD *outputs) = 0;
155
156 virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo(
157 DWORD id,
158 MFT_INPUT_STREAM_INFO *info) = 0;
159
160 virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo(
161 DWORD id,
162 MFT_OUTPUT_STREAM_INFO *info) = 0;
163
164 virtual HRESULT STDMETHODCALLTYPE GetAttributes(
165 IMFAttributes **attributes) = 0;
166
167 virtual HRESULT STDMETHODCALLTYPE GetInputStreamAttributes(
168 DWORD id,
169 IMFAttributes **attributes) = 0;
170
171 virtual HRESULT STDMETHODCALLTYPE GetOutputStreamAttributes(
172 DWORD id,
173 IMFAttributes **attributes) = 0;
174
175 virtual HRESULT STDMETHODCALLTYPE DeleteInputStream(
176 DWORD id) = 0;
177
178 virtual HRESULT STDMETHODCALLTYPE AddInputStreams(
179 DWORD streams,
180 DWORD *ids) = 0;
181
182 virtual HRESULT STDMETHODCALLTYPE GetInputAvailableType(
183 DWORD id,
184 DWORD index,
185 IMFMediaType **type) = 0;
186
187 virtual HRESULT STDMETHODCALLTYPE GetOutputAvailableType(
188 DWORD id,
189 DWORD index,
190 IMFMediaType **type) = 0;
191
192 virtual HRESULT STDMETHODCALLTYPE SetInputType(
193 DWORD id,
194 IMFMediaType *type,
195 DWORD flags) = 0;
196
197 virtual HRESULT STDMETHODCALLTYPE SetOutputType(
198 DWORD id,
199 IMFMediaType *type,
200 DWORD flags) = 0;
201
202 virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType(
203 DWORD id,
204 IMFMediaType **type) = 0;
205
206 virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType(
207 DWORD id,
208 IMFMediaType **type) = 0;
209
210 virtual HRESULT STDMETHODCALLTYPE GetInputStatus(
211 DWORD id,
212 DWORD *flags) = 0;
213
214 virtual HRESULT STDMETHODCALLTYPE GetOutputStatus(
215 DWORD *flags) = 0;
216
217 virtual HRESULT STDMETHODCALLTYPE SetOutputBounds(
218 LONGLONG lower,
219 LONGLONG upper) = 0;
220
221 virtual HRESULT STDMETHODCALLTYPE ProcessEvent(
222 DWORD id,
223 IMFMediaEvent *event) = 0;
224
225 virtual HRESULT STDMETHODCALLTYPE ProcessMessage(
226 MFT_MESSAGE_TYPE message,
227 ULONG_PTR param) = 0;
228
229 virtual HRESULT STDMETHODCALLTYPE ProcessInput(
230 DWORD id,
231 IMFSample *sample,
232 DWORD flags) = 0;
233
234 virtual HRESULT STDMETHODCALLTYPE ProcessOutput(
235 DWORD flags,
236 DWORD count,
237 MFT_OUTPUT_DATA_BUFFER *samples,
238 DWORD *status) = 0;
239
240};
241#ifdef __CRT_UUID_DECL
242__CRT_UUID_DECL(IMFTransform, 0xbf94c121, 0x5b05, 0x4e6f, 0x80,0x00, 0xba,0x59,0x89,0x61,0x41,0x4d)
243#endif
244#else
245typedef struct IMFTransformVtbl {
246 BEGIN_INTERFACE
247
248 /*** IUnknown methods ***/
249 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
250 IMFTransform *This,
251 REFIID riid,
252 void **ppvObject);
253
254 ULONG (STDMETHODCALLTYPE *AddRef)(
255 IMFTransform *This);
256
257 ULONG (STDMETHODCALLTYPE *Release)(
258 IMFTransform *This);
259
260 /*** IMFTransform methods ***/
261 HRESULT (STDMETHODCALLTYPE *GetStreamLimits)(
262 IMFTransform *This,
263 DWORD *input_minimum,
264 DWORD *input_maximum,
265 DWORD *output_minimum,
266 DWORD *output_maximum);
267
268 HRESULT (STDMETHODCALLTYPE *GetStreamCount)(
269 IMFTransform *This,
270 DWORD *inputs,
271 DWORD *outputs);
272
273 HRESULT (STDMETHODCALLTYPE *GetStreamIDs)(
274 IMFTransform *This,
275 DWORD input_size,
276 DWORD *inputs,
277 DWORD output_size,
278 DWORD *outputs);
279
280 HRESULT (STDMETHODCALLTYPE *GetInputStreamInfo)(
281 IMFTransform *This,
282 DWORD id,
283 MFT_INPUT_STREAM_INFO *info);
284
285 HRESULT (STDMETHODCALLTYPE *GetOutputStreamInfo)(
286 IMFTransform *This,
287 DWORD id,
288 MFT_OUTPUT_STREAM_INFO *info);
289
290 HRESULT (STDMETHODCALLTYPE *GetAttributes)(
291 IMFTransform *This,
292 IMFAttributes **attributes);
293
294 HRESULT (STDMETHODCALLTYPE *GetInputStreamAttributes)(
295 IMFTransform *This,
296 DWORD id,
297 IMFAttributes **attributes);
298
299 HRESULT (STDMETHODCALLTYPE *GetOutputStreamAttributes)(
300 IMFTransform *This,
301 DWORD id,
302 IMFAttributes **attributes);
303
304 HRESULT (STDMETHODCALLTYPE *DeleteInputStream)(
305 IMFTransform *This,
306 DWORD id);
307
308 HRESULT (STDMETHODCALLTYPE *AddInputStreams)(
309 IMFTransform *This,
310 DWORD streams,
311 DWORD *ids);
312
313 HRESULT (STDMETHODCALLTYPE *GetInputAvailableType)(
314 IMFTransform *This,
315 DWORD id,
316 DWORD index,
317 IMFMediaType **type);
318
319 HRESULT (STDMETHODCALLTYPE *GetOutputAvailableType)(
320 IMFTransform *This,
321 DWORD id,
322 DWORD index,
323 IMFMediaType **type);
324
325 HRESULT (STDMETHODCALLTYPE *SetInputType)(
326 IMFTransform *This,
327 DWORD id,
328 IMFMediaType *type,
329 DWORD flags);
330
331 HRESULT (STDMETHODCALLTYPE *SetOutputType)(
332 IMFTransform *This,
333 DWORD id,
334 IMFMediaType *type,
335 DWORD flags);
336
337 HRESULT (STDMETHODCALLTYPE *GetInputCurrentType)(
338 IMFTransform *This,
339 DWORD id,
340 IMFMediaType **type);
341
342 HRESULT (STDMETHODCALLTYPE *GetOutputCurrentType)(
343 IMFTransform *This,
344 DWORD id,
345 IMFMediaType **type);
346
347 HRESULT (STDMETHODCALLTYPE *GetInputStatus)(
348 IMFTransform *This,
349 DWORD id,
350 DWORD *flags);
351
352 HRESULT (STDMETHODCALLTYPE *GetOutputStatus)(
353 IMFTransform *This,
354 DWORD *flags);
355
356 HRESULT (STDMETHODCALLTYPE *SetOutputBounds)(
357 IMFTransform *This,
358 LONGLONG lower,
359 LONGLONG upper);
360
361 HRESULT (STDMETHODCALLTYPE *ProcessEvent)(
362 IMFTransform *This,
363 DWORD id,
364 IMFMediaEvent *event);
365
366 HRESULT (STDMETHODCALLTYPE *ProcessMessage)(
367 IMFTransform *This,
368 MFT_MESSAGE_TYPE message,
369 ULONG_PTR param);
370
371 HRESULT (STDMETHODCALLTYPE *ProcessInput)(
372 IMFTransform *This,
373 DWORD id,
374 IMFSample *sample,
375 DWORD flags);
376
377 HRESULT (STDMETHODCALLTYPE *ProcessOutput)(
378 IMFTransform *This,
379 DWORD flags,
380 DWORD count,
381 MFT_OUTPUT_DATA_BUFFER *samples,
382 DWORD *status);
383
384 END_INTERFACE
385} IMFTransformVtbl;
386
387interface IMFTransform {
388 CONST_VTBL IMFTransformVtbl* lpVtbl;
389};
390
391#ifdef COBJMACROS
392#ifndef WIDL_C_INLINE_WRAPPERS
393/*** IUnknown methods ***/
394#define IMFTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
395#define IMFTransform_AddRef(This) (This)->lpVtbl->AddRef(This)
396#define IMFTransform_Release(This) (This)->lpVtbl->Release(This)
397/*** IMFTransform methods ***/
398#define IMFTransform_GetStreamLimits(This,input_minimum,input_maximum,output_minimum,output_maximum) (This)->lpVtbl->GetStreamLimits(This,input_minimum,input_maximum,output_minimum,output_maximum)
399#define IMFTransform_GetStreamCount(This,inputs,outputs) (This)->lpVtbl->GetStreamCount(This,inputs,outputs)
400#define IMFTransform_GetStreamIDs(This,input_size,inputs,output_size,outputs) (This)->lpVtbl->GetStreamIDs(This,input_size,inputs,output_size,outputs)
401#define IMFTransform_GetInputStreamInfo(This,id,info) (This)->lpVtbl->GetInputStreamInfo(This,id,info)
402#define IMFTransform_GetOutputStreamInfo(This,id,info) (This)->lpVtbl->GetOutputStreamInfo(This,id,info)
403#define IMFTransform_GetAttributes(This,attributes) (This)->lpVtbl->GetAttributes(This,attributes)
404#define IMFTransform_GetInputStreamAttributes(This,id,attributes) (This)->lpVtbl->GetInputStreamAttributes(This,id,attributes)
405#define IMFTransform_GetOutputStreamAttributes(This,id,attributes) (This)->lpVtbl->GetOutputStreamAttributes(This,id,attributes)
406#define IMFTransform_DeleteInputStream(This,id) (This)->lpVtbl->DeleteInputStream(This,id)
407#define IMFTransform_AddInputStreams(This,streams,ids) (This)->lpVtbl->AddInputStreams(This,streams,ids)
408#define IMFTransform_GetInputAvailableType(This,id,index,type) (This)->lpVtbl->GetInputAvailableType(This,id,index,type)
409#define IMFTransform_GetOutputAvailableType(This,id,index,type) (This)->lpVtbl->GetOutputAvailableType(This,id,index,type)
410#define IMFTransform_SetInputType(This,id,type,flags) (This)->lpVtbl->SetInputType(This,id,type,flags)
411#define IMFTransform_SetOutputType(This,id,type,flags) (This)->lpVtbl->SetOutputType(This,id,type,flags)
412#define IMFTransform_GetInputCurrentType(This,id,type) (This)->lpVtbl->GetInputCurrentType(This,id,type)
413#define IMFTransform_GetOutputCurrentType(This,id,type) (This)->lpVtbl->GetOutputCurrentType(This,id,type)
414#define IMFTransform_GetInputStatus(This,id,flags) (This)->lpVtbl->GetInputStatus(This,id,flags)
415#define IMFTransform_GetOutputStatus(This,flags) (This)->lpVtbl->GetOutputStatus(This,flags)
416#define IMFTransform_SetOutputBounds(This,lower,upper) (This)->lpVtbl->SetOutputBounds(This,lower,upper)
417#define IMFTransform_ProcessEvent(This,id,event) (This)->lpVtbl->ProcessEvent(This,id,event)
418#define IMFTransform_ProcessMessage(This,message,param) (This)->lpVtbl->ProcessMessage(This,message,param)
419#define IMFTransform_ProcessInput(This,id,sample,flags) (This)->lpVtbl->ProcessInput(This,id,sample,flags)
420#define IMFTransform_ProcessOutput(This,flags,count,samples,status) (This)->lpVtbl->ProcessOutput(This,flags,count,samples,status)
421#else
422/*** IUnknown methods ***/
423static inline HRESULT IMFTransform_QueryInterface(IMFTransform* This,REFIID riid,void **ppvObject) {
424 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
425}
426static inline ULONG IMFTransform_AddRef(IMFTransform* This) {
427 return This->lpVtbl->AddRef(This);
428}
429static inline ULONG IMFTransform_Release(IMFTransform* This) {
430 return This->lpVtbl->Release(This);
431}
432/*** IMFTransform methods ***/
433static inline HRESULT IMFTransform_GetStreamLimits(IMFTransform* This,DWORD *input_minimum,DWORD *input_maximum,DWORD *output_minimum,DWORD *output_maximum) {
434 return This->lpVtbl->GetStreamLimits(This,input_minimum,input_maximum,output_minimum,output_maximum);
435}
436static inline HRESULT IMFTransform_GetStreamCount(IMFTransform* This,DWORD *inputs,DWORD *outputs) {
437 return This->lpVtbl->GetStreamCount(This,inputs,outputs);
438}
439static inline HRESULT IMFTransform_GetStreamIDs(IMFTransform* This,DWORD input_size,DWORD *inputs,DWORD output_size,DWORD *outputs) {
440 return This->lpVtbl->GetStreamIDs(This,input_size,inputs,output_size,outputs);
441}
442static inline HRESULT IMFTransform_GetInputStreamInfo(IMFTransform* This,DWORD id,MFT_INPUT_STREAM_INFO *info) {
443 return This->lpVtbl->GetInputStreamInfo(This,id,info);
444}
445static inline HRESULT IMFTransform_GetOutputStreamInfo(IMFTransform* This,DWORD id,MFT_OUTPUT_STREAM_INFO *info) {
446 return This->lpVtbl->GetOutputStreamInfo(This,id,info);
447}
448static inline HRESULT IMFTransform_GetAttributes(IMFTransform* This,IMFAttributes **attributes) {
449 return This->lpVtbl->GetAttributes(This,attributes);
450}
451static inline HRESULT IMFTransform_GetInputStreamAttributes(IMFTransform* This,DWORD id,IMFAttributes **attributes) {
452 return This->lpVtbl->GetInputStreamAttributes(This,id,attributes);
453}
454static inline HRESULT IMFTransform_GetOutputStreamAttributes(IMFTransform* This,DWORD id,IMFAttributes **attributes) {
455 return This->lpVtbl->GetOutputStreamAttributes(This,id,attributes);
456}
457static inline HRESULT IMFTransform_DeleteInputStream(IMFTransform* This,DWORD id) {
458 return This->lpVtbl->DeleteInputStream(This,id);
459}
460static inline HRESULT IMFTransform_AddInputStreams(IMFTransform* This,DWORD streams,DWORD *ids) {
461 return This->lpVtbl->AddInputStreams(This,streams,ids);
462}
463static inline HRESULT IMFTransform_GetInputAvailableType(IMFTransform* This,DWORD id,DWORD index,IMFMediaType **type) {
464 return This->lpVtbl->GetInputAvailableType(This,id,index,type);
465}
466static inline HRESULT IMFTransform_GetOutputAvailableType(IMFTransform* This,DWORD id,DWORD index,IMFMediaType **type) {
467 return This->lpVtbl->GetOutputAvailableType(This,id,index,type);
468}
469static inline HRESULT IMFTransform_SetInputType(IMFTransform* This,DWORD id,IMFMediaType *type,DWORD flags) {
470 return This->lpVtbl->SetInputType(This,id,type,flags);
471}
472static inline HRESULT IMFTransform_SetOutputType(IMFTransform* This,DWORD id,IMFMediaType *type,DWORD flags) {
473 return This->lpVtbl->SetOutputType(This,id,type,flags);
474}
475static inline HRESULT IMFTransform_GetInputCurrentType(IMFTransform* This,DWORD id,IMFMediaType **type) {
476 return This->lpVtbl->GetInputCurrentType(This,id,type);
477}
478static inline HRESULT IMFTransform_GetOutputCurrentType(IMFTransform* This,DWORD id,IMFMediaType **type) {
479 return This->lpVtbl->GetOutputCurrentType(This,id,type);
480}
481static inline HRESULT IMFTransform_GetInputStatus(IMFTransform* This,DWORD id,DWORD *flags) {
482 return This->lpVtbl->GetInputStatus(This,id,flags);
483}
484static inline HRESULT IMFTransform_GetOutputStatus(IMFTransform* This,DWORD *flags) {
485 return This->lpVtbl->GetOutputStatus(This,flags);
486}
487static inline HRESULT IMFTransform_SetOutputBounds(IMFTransform* This,LONGLONG lower,LONGLONG upper) {
488 return This->lpVtbl->SetOutputBounds(This,lower,upper);
489}
490static inline HRESULT IMFTransform_ProcessEvent(IMFTransform* This,DWORD id,IMFMediaEvent *event) {
491 return This->lpVtbl->ProcessEvent(This,id,event);
492}
493static inline HRESULT IMFTransform_ProcessMessage(IMFTransform* This,MFT_MESSAGE_TYPE message,ULONG_PTR param) {
494 return This->lpVtbl->ProcessMessage(This,message,param);
495}
496static inline HRESULT IMFTransform_ProcessInput(IMFTransform* This,DWORD id,IMFSample *sample,DWORD flags) {
497 return This->lpVtbl->ProcessInput(This,id,sample,flags);
498}
499static inline HRESULT IMFTransform_ProcessOutput(IMFTransform* This,DWORD flags,DWORD count,MFT_OUTPUT_DATA_BUFFER *samples,DWORD *status) {
500 return This->lpVtbl->ProcessOutput(This,flags,count,samples,status);
501}
502#endif
503#endif
504
505#endif
506
507
508#endif /* __IMFTransform_INTERFACE_DEFINED__ */
509
510HRESULT WINAPI MFCreateTransformActivate(IMFActivate **activate);
511EXTERN_GUID(MF_SA_BUFFERS_PER_SAMPLE, 0x873c5171, 0x1e3d, 0x4e25, 0x98, 0x8d, 0xb4, 0x33, 0xce, 0x04, 0x19, 0x83);
512EXTERN_GUID(MF_SA_D3D_AWARE, 0xeaa35c29, 0x775e, 0x488e, 0x9b, 0x61, 0xb3, 0x28, 0x3e, 0x49, 0x58, 0x3b);
513EXTERN_GUID(MF_SA_D3D11_ALLOW_DYNAMIC_YUV_TEXTURE, 0xce06d49f, 0x0613, 0x4b9d, 0x86, 0xa6, 0xd8, 0xc4, 0xf9, 0xc1, 0x00, 0x75);
514EXTERN_GUID(MF_SA_D3D11_AWARE, 0x206b4fc8, 0xfcf9, 0x4c51, 0xaf, 0xe3, 0x97, 0x64, 0x36, 0x9e, 0x33, 0xa0);
515EXTERN_GUID(MF_SA_D3D11_BINDFLAGS, 0xeacf97ad, 0x065c, 0x4408, 0xbe, 0xe3, 0xfd, 0xcb, 0xfd, 0x12, 0x8b, 0xe2);
516EXTERN_GUID(MF_SA_D3D11_HW_PROTECTED, 0x3a8ba9d9, 0x92ca, 0x4307, 0xa3, 0x91, 0x69, 0x99, 0xdb, 0xf3, 0xb6, 0xce);
517EXTERN_GUID(MF_SA_D3D11_SHARED, 0x7b8f32c3, 0x6d96, 0x4b89, 0x92, 0x03, 0xdd, 0x38, 0xb6, 0x14, 0x14, 0xf3);
518EXTERN_GUID(MF_SA_D3D11_SHARED_WITHOUT_MUTEX, 0x39dbd44d, 0x2e44, 0x4931, 0xa4, 0xc8, 0x35, 0x2d, 0x3d, 0xc4, 0x21, 0x15);
519EXTERN_GUID(MF_SA_D3D11_USAGE, 0xe85fe442, 0x2ca3, 0x486e, 0xa9, 0xc7, 0x10, 0x9d, 0xda, 0x60, 0x98, 0x80);
520EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT, 0x18802c61, 0x324b, 0x4952, 0xab, 0xd0, 0x17, 0x6f, 0xf5, 0xc6, 0x96, 0xff);
521EXTERN_GUID(MF_SA_REQUIRED_SAMPLE_COUNT_PROGRESSIVE, 0xb172d58e, 0xfa77, 0x4e48, 0x8d, 0x2a, 0x1d, 0xf2, 0xd8, 0x50, 0xea, 0xc2);
522EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT, 0x851745d5, 0xc3d6, 0x476d, 0x95, 0x27, 0x49, 0x8e, 0xf2, 0xd1, 0x0d, 0x18);
523EXTERN_GUID(MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT_PROGRESSIVE, 0x0f5523a5, 0x1cb2, 0x47c5, 0xa5, 0x50, 0x2e, 0xeb, 0x84, 0xb4, 0xd1, 0x4a);
524EXTERN_GUID(MF_TRANSFORM_ASYNC, 0xf81a699a, 0x649a, 0x497d, 0x8c, 0x73, 0x29, 0xf8, 0xfe, 0xd6, 0xad, 0x7a);
525EXTERN_GUID(MF_TRANSFORM_ASYNC_UNLOCK, 0xe5666d6b, 0x3422, 0x4eb6, 0xa4, 0x21, 0xda, 0x7d, 0xb1, 0xf8, 0xe2, 0x07);
526EXTERN_GUID(MF_TRANSFORM_CATEGORY_Attribute, 0xceabba49, 0x506d, 0x4757, 0xa6, 0xff, 0x66, 0xc1, 0x84, 0x98, 0x7e, 0x4e);
527EXTERN_GUID(MF_TRANSFORM_FLAGS_Attribute, 0x9359bb7e, 0x6275, 0x46c4, 0xa0, 0x25, 0x1c, 0x01, 0xe4, 0x5f, 0x1a, 0x86);
528EXTERN_GUID(MFT_CODEC_MERIT_Attribute, 0x88a7cb15, 0x7b07, 0x4a34, 0x91, 0x28, 0xe6, 0x4c, 0x67, 0x03, 0xc4, 0xd3);
529EXTERN_GUID(MFT_CONNECTED_STREAM_ATTRIBUTE, 0x71eeb820, 0xa59f, 0x4de2, 0xbc, 0xec, 0x38, 0xdb, 0x1d, 0xd6, 0x11, 0xa4);
530EXTERN_GUID(MFT_CONNECTED_TO_HW_STREAM, 0x34e6e728, 0x06d6, 0x4491, 0xa5, 0x53, 0x47, 0x95, 0x65, 0x0d, 0xb9, 0x12);
531EXTERN_GUID(MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER, 0xef80833f, 0xf8fa, 0x44d9, 0x80, 0xd8, 0x41, 0xed, 0x62, 0x32, 0x67, 0x0c);
532EXTERN_GUID(MFT_DECODER_FINAL_VIDEO_RESOLUTION_HINT, 0xdc2f8496, 0x15c4, 0x407a, 0xb6, 0xf0, 0x1b, 0x66, 0xab, 0x5f, 0xbf, 0x53);
533EXTERN_GUID(MFT_ENCODER_SUPPORTS_CONFIG_EVENT, 0x86a355ae, 0x3a77, 0x4ec4, 0x9f, 0x31, 0x01, 0x14, 0x9a, 0x4e, 0x92, 0xde);
534EXTERN_GUID(MFT_ENUM_HARDWARE_URL_Attribute, 0x2fb866ac, 0xb078, 0x4942, 0xab, 0x6c, 0x00, 0x3d, 0x05, 0xcd, 0xa6, 0x74);
535EXTERN_GUID(MFT_ENUM_HARDWARE_VENDOR_ID_Attribute, 0x3aecb0cc, 0x035b, 0x4bcc, 0x81, 0x85, 0x2b, 0x8d, 0x55, 0x1e, 0xf3, 0xaf);
536EXTERN_GUID(MFT_ENUM_TRANSCODE_ONLY_ATTRIBUTE, 0x111ea8cd, 0xb62a, 0x4bdb, 0x89, 0xf6, 0x67, 0xff, 0xcd, 0xc2, 0x45, 0x8b);
537EXTERN_GUID(MFT_FIELDOFUSE_UNLOCK_Attribute, 0x8ec2e9fd, 0x9148, 0x410d, 0x83, 0x1e, 0x70, 0x24, 0x39, 0x46, 0x1a, 0x8e);
538EXTERN_GUID(MFT_FRIENDLY_NAME_Attribute, 0x314ffbae, 0x5b41, 0x4c95, 0x9c, 0x19, 0x4e, 0x7d, 0x58, 0x6f, 0xac, 0xe3);
539EXTERN_GUID(MFT_INPUT_TYPES_Attributes, 0x4276c9b1, 0x759d, 0x4bf3, 0x9c, 0xd0, 0x0d, 0x72, 0x3d, 0x13, 0x8f, 0x96);
540EXTERN_GUID(MFT_OUTPUT_TYPES_Attributes, 0x8eae8cf3, 0xa44f, 0x4306, 0xba, 0x5c, 0xbf, 0x5d, 0xda, 0x24, 0x28, 0x18);
541EXTERN_GUID(MFT_PREFERRED_ENCODER_PROFILE, 0x53004909, 0x1ef5, 0x46d7, 0xa1, 0x8e, 0x5a, 0x75, 0xf8, 0xb5, 0x90, 0x5f);
542EXTERN_GUID(MFT_PREFERRED_OUTPUTTYPE_Attribute, 0x7e700499, 0x396a, 0x49ee, 0xb1, 0xb4, 0xf6, 0x28, 0x02, 0x1e, 0x8c, 0x9d);
543EXTERN_GUID(MFT_PROCESS_LOCAL_Attribute, 0x543186e4, 0x4649, 0x4e65, 0xb5, 0x88, 0x4a, 0xa3, 0x52, 0xaf, 0xf3, 0x79);
544EXTERN_GUID(MFT_REMUX_MARK_I_PICTURE_AS_CLEAN_POINT, 0x364e8f85, 0x3f2e, 0x436c, 0xb2, 0xa2, 0x44, 0x40, 0xa0, 0x12, 0xa9, 0xe8);
545EXTERN_GUID(MFT_SUPPORT_3DVIDEO, 0x093f81b1, 0x4f2e, 0x4631, 0x81, 0x68, 0x79, 0x34, 0x03, 0x2a, 0x01, 0xd3);
546EXTERN_GUID(MFT_TRANSFORM_CLSID_Attribute, 0x6821c42b, 0x65a4, 0x4e82, 0x99, 0xbc, 0x9a, 0x88, 0x20, 0x5e, 0xcd, 0x0c);
547DEFINE_PROPERTYKEY(MFPKEY_CLSID, 0xc57a84c0, 0x1a80, 0x40a3, 0x97, 0xb5, 0x92, 0x72, 0xa4, 0x03, 0xc8, 0xae, 1);
548DEFINE_PROPERTYKEY(MFPKEY_CATEGORY, 0xc57a84c0, 0x1a80, 0x40a3, 0x97, 0xb5, 0x92, 0x72, 0xa4, 0x03, 0xc8, 0xae, 2);
549DEFINE_PROPERTYKEY(MFPKEY_EXATTRIBUTE_SUPPORTED, 0x456fe843, 0x3c87, 0x40c0, 0x94, 0x9d, 0x14, 0x09, 0xc9, 0x7d, 0xab, 0x2c, 1);
550DEFINE_PROPERTYKEY(MFPKEY_MULTICHANNEL_CHANNEL_MASK, 0x58bdaf8c, 0x3224, 0x4692, 0x86, 0xd0, 0x44, 0xd6, 0x5c, 0x5b, 0xf8, 0x2b, 1);
551/* Begin additional prototypes for all interfaces */
552
553
554/* End additional prototypes */
555
556#ifdef __cplusplus
557}
558#endif
559
560#endif /* __mftransform_h__ */