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