ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mfreadwrite.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 66225 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /*** Autogenerated by WIDL 6.4 from include/mfreadwrite.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 __mfreadwrite_h__
17 #define __mfreadwrite_h__
18
19 /* Forward declarations */
20
21 #ifndef __IMFSourceReaderCallback_FWD_DEFINED__
22 #define __IMFSourceReaderCallback_FWD_DEFINED__
23 typedef interface IMFSourceReaderCallback IMFSourceReaderCallback;
24 #ifdef __cplusplus
25 interface IMFSourceReaderCallback;
26 #endif /* __cplusplus */
27 #endif
28
29 #ifndef __IMFSourceReaderCallback2_FWD_DEFINED__
30 #define __IMFSourceReaderCallback2_FWD_DEFINED__
31 typedef interface IMFSourceReaderCallback2 IMFSourceReaderCallback2;
32 #ifdef __cplusplus
33 interface IMFSourceReaderCallback2;
34 #endif /* __cplusplus */
35 #endif
36
37 #ifndef __IMFSourceReader_FWD_DEFINED__
38 #define __IMFSourceReader_FWD_DEFINED__
39 typedef interface IMFSourceReader IMFSourceReader;
40 #ifdef __cplusplus
41 interface IMFSourceReader;
42 #endif /* __cplusplus */
43 #endif
44
45 #ifndef __IMFSourceReaderEx_FWD_DEFINED__
46 #define __IMFSourceReaderEx_FWD_DEFINED__
47 typedef interface IMFSourceReaderEx IMFSourceReaderEx;
48 #ifdef __cplusplus
49 interface IMFSourceReaderEx;
50 #endif /* __cplusplus */
51 #endif
52
53 #ifndef __IMFSinkWriter_FWD_DEFINED__
54 #define __IMFSinkWriter_FWD_DEFINED__
55 typedef interface IMFSinkWriter IMFSinkWriter;
56 #ifdef __cplusplus
57 interface IMFSinkWriter;
58 #endif /* __cplusplus */
59 #endif
60
61 #ifndef __IMFSinkWriterEx_FWD_DEFINED__
62 #define __IMFSinkWriterEx_FWD_DEFINED__
63 typedef interface IMFSinkWriterEx IMFSinkWriterEx;
64 #ifdef __cplusplus
65 interface IMFSinkWriterEx;
66 #endif /* __cplusplus */
67 #endif
68
69 #ifndef __IMFSinkWriterEncoderConfig_FWD_DEFINED__
70 #define __IMFSinkWriterEncoderConfig_FWD_DEFINED__
71 typedef interface IMFSinkWriterEncoderConfig IMFSinkWriterEncoderConfig;
72 #ifdef __cplusplus
73 interface IMFSinkWriterEncoderConfig;
74 #endif /* __cplusplus */
75 #endif
76
77 #ifndef __IMFSinkWriterCallback_FWD_DEFINED__
78 #define __IMFSinkWriterCallback_FWD_DEFINED__
79 typedef interface IMFSinkWriterCallback IMFSinkWriterCallback;
80 #ifdef __cplusplus
81 interface IMFSinkWriterCallback;
82 #endif /* __cplusplus */
83 #endif
84
85 #ifndef __IMFSinkWriterCallback2_FWD_DEFINED__
86 #define __IMFSinkWriterCallback2_FWD_DEFINED__
87 typedef interface IMFSinkWriterCallback2 IMFSinkWriterCallback2;
88 #ifdef __cplusplus
89 interface IMFSinkWriterCallback2;
90 #endif /* __cplusplus */
91 #endif
92
93 #ifndef __IMFReadWriteClassFactory_FWD_DEFINED__
94 #define __IMFReadWriteClassFactory_FWD_DEFINED__
95 typedef interface IMFReadWriteClassFactory IMFReadWriteClassFactory;
96 #ifdef __cplusplus
97 interface IMFReadWriteClassFactory;
98 #endif /* __cplusplus */
99 #endif
100
101 /* Headers for imported files */
102
103 #include <mfobjects.h>
104 #include <mftransform.h>
105
106 #ifdef __cplusplus
107 extern "C" {
108 #endif
109
110 typedef enum MF_SOURCE_READER_CONTROL_FLAG {
111 MF_SOURCE_READER_CONTROLF_DRAIN = 0x1
112 } MF_SOURCE_READER_CONTROL_FLAG;
113 DEFINE_ENUM_FLAG_OPERATORS(MF_SOURCE_READER_CONTROL_FLAG)
114 enum {
115 MF_SOURCE_READER_INVALID_STREAM_INDEX = 0xffffffff,
116 MF_SOURCE_READER_ALL_STREAMS = 0xfffffffe,
117 MF_SOURCE_READER_ANY_STREAM = 0xfffffffe,
118 MF_SOURCE_READER_FIRST_AUDIO_STREAM = 0xfffffffd,
119 MF_SOURCE_READER_FIRST_VIDEO_STREAM = 0xfffffffc,
120 MF_SOURCE_READER_MEDIASOURCE = 0xffffffff,
121 MF_SOURCE_READER_CURRENT_TYPE_INDEX = 0xffffffff
122 };
123 typedef enum MF_SOURCE_READER_FLAG {
124 MF_SOURCE_READERF_ERROR = 0x1,
125 MF_SOURCE_READERF_ENDOFSTREAM = 0x2,
126 MF_SOURCE_READERF_NEWSTREAM = 0x4,
127 MF_SOURCE_READERF_NATIVEMEDIATYPECHANGED = 0x10,
128 MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED = 0x20,
129 MF_SOURCE_READERF_STREAMTICK = 0x100,
130 MF_SOURCE_READERF_ALLEFFECTSREMOVED = 0x200
131 } MF_SOURCE_READER_FLAG;
132 DEFINE_ENUM_FLAG_OPERATORS(MF_SOURCE_READER_FLAG)
133 enum {
134 MF_SINK_WRITER_INVALID_STREAM_INDEX = 0xffffffff,
135 MF_SINK_WRITER_ALL_STREAMS = 0xfffffffe,
136 MF_SINK_WRITER_MEDIASINK = 0xffffffff
137 };
138 typedef struct _MF_SINK_WRITER_STATISTICS {
139 DWORD cb;
140 LONGLONG llLastTimestampReceived;
141 LONGLONG llLastTimestampEncoded;
142 LONGLONG llLastTimestampProcessed;
143 LONGLONG llLastStreamTickReceived;
144 LONGLONG llLastSinkSampleRequest;
145 QWORD qwNumSamplesReceived;
146 QWORD qwNumSamplesEncoded;
147 QWORD qwNumSamplesProcessed;
148 QWORD qwNumStreamTicksReceived;
149 DWORD dwByteCountQueued;
150 QWORD qwByteCountProcessed;
151 DWORD dwNumOutstandingSinkSampleRequests;
152 DWORD dwAverageSampleRateReceived;
153 DWORD dwAverageSampleRateEncoded;
154 DWORD dwAverageSampleRateProcessed;
155 } MF_SINK_WRITER_STATISTICS;
156 EXTERN_GUID(CLSID_MFReadWriteClassFactory, 0x48e2ed0f, 0x98c2, 0x4a37, 0xbe, 0xd5, 0x16, 0x63, 0x12, 0xdd, 0xd8, 0x3f);
157 EXTERN_GUID(CLSID_MFSourceReader, 0x1777133c, 0x0881, 0x411b, 0xa5, 0x77, 0xad, 0x54, 0x5f, 0x07, 0x14, 0xc4);
158 EXTERN_GUID(CLSID_MFSinkWriter, 0xa3bbfb17, 0x8273, 0x4e52, 0x9e, 0x0e, 0x97, 0x39, 0xdc, 0x88, 0x79, 0x90);
159 EXTERN_GUID(MF_MEDIASINK_AUTOFINALIZE_SUPPORTED, 0x48c131be, 0x135a, 0x41cb, 0x82, 0x90, 0x03, 0x65, 0x25, 0x09, 0xc9, 0x99);
160 EXTERN_GUID(MF_MEDIASINK_ENABLE_AUTOFINALIZE, 0x34014265, 0xcb7e, 0x4cde, 0xac, 0x7c, 0xef, 0xfd, 0x3b, 0x3c, 0x25, 0x30);
161 EXTERN_GUID(MF_SINK_WRITER_ASYNC_CALLBACK, 0x48cb183e, 0x7b0b, 0x46f4, 0x82, 0x2e, 0x5e, 0x1d, 0x2d, 0xda, 0x43, 0x54);
162 EXTERN_GUID(MF_SINK_WRITER_DISABLE_THROTTLING, 0x08b845d8, 0x2b74, 0x4afe, 0x9d, 0x53, 0xbe, 0x16, 0xd2, 0xd5, 0xae, 0x4f);
163 EXTERN_GUID(MF_SINK_WRITER_D3D_MANAGER, 0xec822da2, 0xe1e9, 0x4b29, 0xa0, 0xd8, 0x56, 0x3c, 0x71, 0x9f, 0x52, 0x69);
164 EXTERN_GUID(MF_SINK_WRITER_ENCODER_CONFIG, 0xad91cd04, 0xa7cc, 0x4ac7, 0x99, 0xb6, 0xa5, 0x7b, 0x9a, 0x4a, 0x7c, 0x70);
165 EXTERN_GUID(MF_READWRITE_DISABLE_CONVERTERS, 0x98d5b065, 0x1374, 0x4847, 0x8d, 0x5d, 0x31, 0x52, 0x0f, 0xee, 0x71, 0x56);
166 EXTERN_GUID(MF_READWRITE_ENABLE_AUTOFINALIZE, 0xdd7ca129, 0x8cd1, 0x4dc5, 0x9d, 0xde, 0xce, 0x16, 0x86, 0x75, 0xde, 0x61);
167 EXTERN_GUID(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, 0xa634a91c, 0x822b, 0x41b9, 0xa4, 0x94, 0x4d, 0xe4, 0x64, 0x36, 0x12, 0xb0);
168 EXTERN_GUID(MF_READWRITE_MMCSS_CLASS, 0x39384300, 0xd0eb, 0x40b1, 0x87, 0xa0, 0x33, 0x18, 0x87, 0x1b, 0x5a, 0x53);
169 EXTERN_GUID(MF_READWRITE_MMCSS_PRIORITY, 0x43ad19ce, 0xf33f, 0x4ba9, 0xa5, 0x80, 0xe4, 0xcd, 0x12, 0xf2, 0xd1, 0x44);
170 EXTERN_GUID(MF_READWRITE_MMCSS_CLASS_AUDIO, 0x430847da, 0x0890, 0x4b0e, 0x93, 0x8c, 0x05, 0x43, 0x32, 0xc5, 0x47, 0xe1);
171 EXTERN_GUID(MF_READWRITE_MMCSS_PRIORITY_AUDIO, 0x273db885, 0x2de2, 0x4db2, 0xa6, 0xa7, 0xfd, 0xb6, 0x6f, 0xb4, 0x0b, 0x61);
172 EXTERN_GUID(MF_READWRITE_D3D_OPTIONAL, 0x216479d9, 0x3071, 0x42ca, 0xbb, 0x6c, 0x4c, 0x22, 0x10, 0x2e, 0x1d, 0x18);
173 EXTERN_GUID(MF_SOURCE_READER_ASYNC_CALLBACK, 0x1e3dbeac, 0xbb43, 0x4c35, 0xb5, 0x07, 0xcd, 0x64, 0x44, 0x64, 0xc9, 0x65);
174 EXTERN_GUID(MF_SOURCE_READER_D3D_MANAGER, 0xec822da2, 0xe1e9, 0x4b29, 0xa0, 0xd8, 0x56, 0x3c, 0x71, 0x9f, 0x52, 0x69);
175 EXTERN_GUID(MF_SOURCE_READER_D3D11_BIND_FLAGS, 0x33f3197b, 0xf73a, 0x4e14, 0x8d, 0x85, 0x0e, 0x4c, 0x43, 0x68, 0x78, 0x8d);
176 EXTERN_GUID(MF_SOURCE_READER_DISABLE_CAMERA_PLUGINS, 0x9d3365dd, 0x058f, 0x4cfb, 0x9f, 0x97, 0xb3, 0x14, 0xcc, 0x99, 0xc8, 0xad);
177 EXTERN_GUID(MF_SOURCE_READER_DISABLE_DXVA, 0xaa456cfd, 0x3943, 0x4a1e, 0xa7, 0x7d, 0x18, 0x38, 0xc0, 0xea, 0x2e, 0x35);
178 EXTERN_GUID(MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN, 0x56b67165, 0x219e, 0x456d, 0xa2, 0x2e, 0x2d, 0x30, 0x04, 0xc7, 0xfe, 0x56);
179 EXTERN_GUID(MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING, 0x0f81da2c, 0xb537, 0x4672, 0xa8, 0xb2, 0xa6, 0x81, 0xb1, 0x73, 0x07, 0xa3);
180 EXTERN_GUID(MF_SOURCE_READER_ENABLE_TRANSCODE_ONLY_TRANSFORMS, 0xdfd4f008, 0xb5fd, 0x4e78, 0xae, 0x44, 0x62, 0xa1, 0xe6, 0x7b, 0xbe, 0x27);
181 EXTERN_GUID(MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING, 0xfb394f3d, 0xccf1, 0x42ee, 0xbb, 0xb3, 0xf9, 0xb8, 0x45, 0xd5, 0x68, 0x1d);
182 EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS, 0x6d23f5c8, 0xc5d7, 0x4a9b, 0x99, 0x71, 0x5d, 0x11, 0xf8, 0xbc, 0xa8, 0x80);
183 EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CONFIG, 0x9085abeb, 0x0354, 0x48f9, 0xab, 0xb5, 0x20, 0x0d, 0xf8, 0x38, 0xc6, 0x8e);
184 /*****************************************************************************
185 * IMFSourceReaderCallback interface
186 */
187 #ifndef __IMFSourceReaderCallback_INTERFACE_DEFINED__
188 #define __IMFSourceReaderCallback_INTERFACE_DEFINED__
189
190 DEFINE_GUID(IID_IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67);
191 #if defined(__cplusplus) && !defined(CINTERFACE)
192 MIDL_INTERFACE("deec8d99-fa1d-4d82-84c2-2c8969944867")
193 IMFSourceReaderCallback : public IUnknown
194 {
195 virtual HRESULT STDMETHODCALLTYPE OnReadSample(
196 HRESULT hr,
197 DWORD stream_index,
198 DWORD stream_flags,
199 LONGLONG timestamp,
200 IMFSample *sample) = 0;
201
202 virtual HRESULT STDMETHODCALLTYPE OnFlush(
203 DWORD stream_index) = 0;
204
205 virtual HRESULT STDMETHODCALLTYPE OnEvent(
206 DWORD stream_index,
207 IMFMediaEvent *event) = 0;
208
209 };
210 #ifdef __CRT_UUID_DECL
211 __CRT_UUID_DECL(IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67)
212 #endif
213 #else
214 typedef struct IMFSourceReaderCallbackVtbl {
215 BEGIN_INTERFACE
216
217 /*** IUnknown methods ***/
218 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
219 IMFSourceReaderCallback *This,
220 REFIID riid,
221 void **ppvObject);
222
223 ULONG (STDMETHODCALLTYPE *AddRef)(
224 IMFSourceReaderCallback *This);
225
226 ULONG (STDMETHODCALLTYPE *Release)(
227 IMFSourceReaderCallback *This);
228
229 /*** IMFSourceReaderCallback methods ***/
230 HRESULT (STDMETHODCALLTYPE *OnReadSample)(
231 IMFSourceReaderCallback *This,
232 HRESULT hr,
233 DWORD stream_index,
234 DWORD stream_flags,
235 LONGLONG timestamp,
236 IMFSample *sample);
237
238 HRESULT (STDMETHODCALLTYPE *OnFlush)(
239 IMFSourceReaderCallback *This,
240 DWORD stream_index);
241
242 HRESULT (STDMETHODCALLTYPE *OnEvent)(
243 IMFSourceReaderCallback *This,
244 DWORD stream_index,
245 IMFMediaEvent *event);
246
247 END_INTERFACE
248 } IMFSourceReaderCallbackVtbl;
249
250 interface IMFSourceReaderCallback {
251 CONST_VTBL IMFSourceReaderCallbackVtbl* lpVtbl;
252 };
253
254 #ifdef COBJMACROS
255 #ifndef WIDL_C_INLINE_WRAPPERS
256 /*** IUnknown methods ***/
257 #define IMFSourceReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
258 #define IMFSourceReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
259 #define IMFSourceReaderCallback_Release(This) (This)->lpVtbl->Release(This)
260 /*** IMFSourceReaderCallback methods ***/
261 #define IMFSourceReaderCallback_OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample) (This)->lpVtbl->OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample)
262 #define IMFSourceReaderCallback_OnFlush(This,stream_index) (This)->lpVtbl->OnFlush(This,stream_index)
263 #define IMFSourceReaderCallback_OnEvent(This,stream_index,event) (This)->lpVtbl->OnEvent(This,stream_index,event)
264 #else
265 /*** IUnknown methods ***/
266 static FORCEINLINE HRESULT IMFSourceReaderCallback_QueryInterface(IMFSourceReaderCallback* This,REFIID riid,void **ppvObject) {
267 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
268 }
269 static FORCEINLINE ULONG IMFSourceReaderCallback_AddRef(IMFSourceReaderCallback* This) {
270 return This->lpVtbl->AddRef(This);
271 }
272 static FORCEINLINE ULONG IMFSourceReaderCallback_Release(IMFSourceReaderCallback* This) {
273 return This->lpVtbl->Release(This);
274 }
275 /*** IMFSourceReaderCallback methods ***/
276 static FORCEINLINE HRESULT IMFSourceReaderCallback_OnReadSample(IMFSourceReaderCallback* This,HRESULT hr,DWORD stream_index,DWORD stream_flags,LONGLONG timestamp,IMFSample *sample) {
277 return This->lpVtbl->OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample);
278 }
279 static FORCEINLINE HRESULT IMFSourceReaderCallback_OnFlush(IMFSourceReaderCallback* This,DWORD stream_index) {
280 return This->lpVtbl->OnFlush(This,stream_index);
281 }
282 static FORCEINLINE HRESULT IMFSourceReaderCallback_OnEvent(IMFSourceReaderCallback* This,DWORD stream_index,IMFMediaEvent *event) {
283 return This->lpVtbl->OnEvent(This,stream_index,event);
284 }
285 #endif
286 #endif
287
288 #endif
289
290
291 #endif /* __IMFSourceReaderCallback_INTERFACE_DEFINED__ */
292
293 /*****************************************************************************
294 * IMFSourceReaderCallback2 interface
295 */
296 #ifndef __IMFSourceReaderCallback2_INTERFACE_DEFINED__
297 #define __IMFSourceReaderCallback2_INTERFACE_DEFINED__
298
299 DEFINE_GUID(IID_IMFSourceReaderCallback2, 0xcf839fe6, 0x8c2a, 0x4dd2, 0xb6,0xea, 0xc2,0x2d,0x69,0x61,0xaf,0x05);
300 #if defined(__cplusplus) && !defined(CINTERFACE)
301 MIDL_INTERFACE("cf839fe6-8c2a-4dd2-b6ea-c22d6961af05")
302 IMFSourceReaderCallback2 : public IMFSourceReaderCallback
303 {
304 virtual HRESULT STDMETHODCALLTYPE OnTransformChange(
305 ) = 0;
306
307 virtual HRESULT STDMETHODCALLTYPE OnStreamError(
308 DWORD stream_index,
309 HRESULT status) = 0;
310
311 };
312 #ifdef __CRT_UUID_DECL
313 __CRT_UUID_DECL(IMFSourceReaderCallback2, 0xcf839fe6, 0x8c2a, 0x4dd2, 0xb6,0xea, 0xc2,0x2d,0x69,0x61,0xaf,0x05)
314 #endif
315 #else
316 typedef struct IMFSourceReaderCallback2Vtbl {
317 BEGIN_INTERFACE
318
319 /*** IUnknown methods ***/
320 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
321 IMFSourceReaderCallback2 *This,
322 REFIID riid,
323 void **ppvObject);
324
325 ULONG (STDMETHODCALLTYPE *AddRef)(
326 IMFSourceReaderCallback2 *This);
327
328 ULONG (STDMETHODCALLTYPE *Release)(
329 IMFSourceReaderCallback2 *This);
330
331 /*** IMFSourceReaderCallback methods ***/
332 HRESULT (STDMETHODCALLTYPE *OnReadSample)(
333 IMFSourceReaderCallback2 *This,
334 HRESULT hr,
335 DWORD stream_index,
336 DWORD stream_flags,
337 LONGLONG timestamp,
338 IMFSample *sample);
339
340 HRESULT (STDMETHODCALLTYPE *OnFlush)(
341 IMFSourceReaderCallback2 *This,
342 DWORD stream_index);
343
344 HRESULT (STDMETHODCALLTYPE *OnEvent)(
345 IMFSourceReaderCallback2 *This,
346 DWORD stream_index,
347 IMFMediaEvent *event);
348
349 /*** IMFSourceReaderCallback2 methods ***/
350 HRESULT (STDMETHODCALLTYPE *OnTransformChange)(
351 IMFSourceReaderCallback2 *This);
352
353 HRESULT (STDMETHODCALLTYPE *OnStreamError)(
354 IMFSourceReaderCallback2 *This,
355 DWORD stream_index,
356 HRESULT status);
357
358 END_INTERFACE
359 } IMFSourceReaderCallback2Vtbl;
360
361 interface IMFSourceReaderCallback2 {
362 CONST_VTBL IMFSourceReaderCallback2Vtbl* lpVtbl;
363 };
364
365 #ifdef COBJMACROS
366 #ifndef WIDL_C_INLINE_WRAPPERS
367 /*** IUnknown methods ***/
368 #define IMFSourceReaderCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
369 #define IMFSourceReaderCallback2_AddRef(This) (This)->lpVtbl->AddRef(This)
370 #define IMFSourceReaderCallback2_Release(This) (This)->lpVtbl->Release(This)
371 /*** IMFSourceReaderCallback methods ***/
372 #define IMFSourceReaderCallback2_OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample) (This)->lpVtbl->OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample)
373 #define IMFSourceReaderCallback2_OnFlush(This,stream_index) (This)->lpVtbl->OnFlush(This,stream_index)
374 #define IMFSourceReaderCallback2_OnEvent(This,stream_index,event) (This)->lpVtbl->OnEvent(This,stream_index,event)
375 /*** IMFSourceReaderCallback2 methods ***/
376 #define IMFSourceReaderCallback2_OnTransformChange(This) (This)->lpVtbl->OnTransformChange(This)
377 #define IMFSourceReaderCallback2_OnStreamError(This,stream_index,status) (This)->lpVtbl->OnStreamError(This,stream_index,status)
378 #else
379 /*** IUnknown methods ***/
380 static FORCEINLINE HRESULT IMFSourceReaderCallback2_QueryInterface(IMFSourceReaderCallback2* This,REFIID riid,void **ppvObject) {
381 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
382 }
383 static FORCEINLINE ULONG IMFSourceReaderCallback2_AddRef(IMFSourceReaderCallback2* This) {
384 return This->lpVtbl->AddRef(This);
385 }
386 static FORCEINLINE ULONG IMFSourceReaderCallback2_Release(IMFSourceReaderCallback2* This) {
387 return This->lpVtbl->Release(This);
388 }
389 /*** IMFSourceReaderCallback methods ***/
390 static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnReadSample(IMFSourceReaderCallback2* This,HRESULT hr,DWORD stream_index,DWORD stream_flags,LONGLONG timestamp,IMFSample *sample) {
391 return This->lpVtbl->OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample);
392 }
393 static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnFlush(IMFSourceReaderCallback2* This,DWORD stream_index) {
394 return This->lpVtbl->OnFlush(This,stream_index);
395 }
396 static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnEvent(IMFSourceReaderCallback2* This,DWORD stream_index,IMFMediaEvent *event) {
397 return This->lpVtbl->OnEvent(This,stream_index,event);
398 }
399 /*** IMFSourceReaderCallback2 methods ***/
400 static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnTransformChange(IMFSourceReaderCallback2* This) {
401 return This->lpVtbl->OnTransformChange(This);
402 }
403 static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnStreamError(IMFSourceReaderCallback2* This,DWORD stream_index,HRESULT status) {
404 return This->lpVtbl->OnStreamError(This,stream_index,status);
405 }
406 #endif
407 #endif
408
409 #endif
410
411
412 #endif /* __IMFSourceReaderCallback2_INTERFACE_DEFINED__ */
413
414 #ifndef __IMFMediaSource_FWD_DEFINED__
415 #define __IMFMediaSource_FWD_DEFINED__
416 typedef interface IMFMediaSource IMFMediaSource;
417 #ifdef __cplusplus
418 interface IMFMediaSource;
419 #endif /* __cplusplus */
420 #endif
421
422 /*****************************************************************************
423 * IMFSourceReader interface
424 */
425 #ifndef __IMFSourceReader_INTERFACE_DEFINED__
426 #define __IMFSourceReader_INTERFACE_DEFINED__
427
428 DEFINE_GUID(IID_IMFSourceReader, 0x70ae66f2, 0xc809, 0x4e4f, 0x89,0x15, 0xbd,0xcb,0x40,0x6b,0x79,0x93);
429 #if defined(__cplusplus) && !defined(CINTERFACE)
430 MIDL_INTERFACE("70ae66f2-c809-4e4f-8915-bdcb406b7993")
431 IMFSourceReader : public IUnknown
432 {
433 virtual HRESULT STDMETHODCALLTYPE GetStreamSelection(
434 DWORD index,
435 WINBOOL *selected) = 0;
436
437 virtual HRESULT STDMETHODCALLTYPE SetStreamSelection(
438 DWORD index,
439 WINBOOL selected) = 0;
440
441 virtual HRESULT STDMETHODCALLTYPE GetNativeMediaType(
442 DWORD index,
443 DWORD typeindex,
444 IMFMediaType **type) = 0;
445
446 virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType(
447 DWORD index,
448 IMFMediaType **type) = 0;
449
450 virtual HRESULT STDMETHODCALLTYPE SetCurrentMediaType(
451 DWORD index,
452 DWORD *reserved,
453 IMFMediaType *type) = 0;
454
455 virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(
456 REFGUID format,
457 REFPROPVARIANT position) = 0;
458
459 virtual HRESULT STDMETHODCALLTYPE ReadSample(
460 DWORD index,
461 DWORD flags,
462 DWORD *actualindex,
463 DWORD *sampleflags,
464 LONGLONG *timestamp,
465 IMFSample **sample) = 0;
466
467 virtual HRESULT STDMETHODCALLTYPE Flush(
468 DWORD index) = 0;
469
470 virtual HRESULT STDMETHODCALLTYPE GetServiceForStream(
471 DWORD index,
472 REFGUID service,
473 REFIID riid,
474 void **object) = 0;
475
476 virtual HRESULT STDMETHODCALLTYPE GetPresentationAttribute(
477 DWORD index,
478 REFGUID guid,
479 PROPVARIANT *attr) = 0;
480
481 };
482 #ifdef __CRT_UUID_DECL
483 __CRT_UUID_DECL(IMFSourceReader, 0x70ae66f2, 0xc809, 0x4e4f, 0x89,0x15, 0xbd,0xcb,0x40,0x6b,0x79,0x93)
484 #endif
485 #else
486 typedef struct IMFSourceReaderVtbl {
487 BEGIN_INTERFACE
488
489 /*** IUnknown methods ***/
490 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
491 IMFSourceReader *This,
492 REFIID riid,
493 void **ppvObject);
494
495 ULONG (STDMETHODCALLTYPE *AddRef)(
496 IMFSourceReader *This);
497
498 ULONG (STDMETHODCALLTYPE *Release)(
499 IMFSourceReader *This);
500
501 /*** IMFSourceReader methods ***/
502 HRESULT (STDMETHODCALLTYPE *GetStreamSelection)(
503 IMFSourceReader *This,
504 DWORD index,
505 WINBOOL *selected);
506
507 HRESULT (STDMETHODCALLTYPE *SetStreamSelection)(
508 IMFSourceReader *This,
509 DWORD index,
510 WINBOOL selected);
511
512 HRESULT (STDMETHODCALLTYPE *GetNativeMediaType)(
513 IMFSourceReader *This,
514 DWORD index,
515 DWORD typeindex,
516 IMFMediaType **type);
517
518 HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
519 IMFSourceReader *This,
520 DWORD index,
521 IMFMediaType **type);
522
523 HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)(
524 IMFSourceReader *This,
525 DWORD index,
526 DWORD *reserved,
527 IMFMediaType *type);
528
529 HRESULT (STDMETHODCALLTYPE *SetCurrentPosition)(
530 IMFSourceReader *This,
531 REFGUID format,
532 REFPROPVARIANT position);
533
534 HRESULT (STDMETHODCALLTYPE *ReadSample)(
535 IMFSourceReader *This,
536 DWORD index,
537 DWORD flags,
538 DWORD *actualindex,
539 DWORD *sampleflags,
540 LONGLONG *timestamp,
541 IMFSample **sample);
542
543 HRESULT (STDMETHODCALLTYPE *Flush)(
544 IMFSourceReader *This,
545 DWORD index);
546
547 HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
548 IMFSourceReader *This,
549 DWORD index,
550 REFGUID service,
551 REFIID riid,
552 void **object);
553
554 HRESULT (STDMETHODCALLTYPE *GetPresentationAttribute)(
555 IMFSourceReader *This,
556 DWORD index,
557 REFGUID guid,
558 PROPVARIANT *attr);
559
560 END_INTERFACE
561 } IMFSourceReaderVtbl;
562
563 interface IMFSourceReader {
564 CONST_VTBL IMFSourceReaderVtbl* lpVtbl;
565 };
566
567 #ifdef COBJMACROS
568 #ifndef WIDL_C_INLINE_WRAPPERS
569 /*** IUnknown methods ***/
570 #define IMFSourceReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
571 #define IMFSourceReader_AddRef(This) (This)->lpVtbl->AddRef(This)
572 #define IMFSourceReader_Release(This) (This)->lpVtbl->Release(This)
573 /*** IMFSourceReader methods ***/
574 #define IMFSourceReader_GetStreamSelection(This,index,selected) (This)->lpVtbl->GetStreamSelection(This,index,selected)
575 #define IMFSourceReader_SetStreamSelection(This,index,selected) (This)->lpVtbl->SetStreamSelection(This,index,selected)
576 #define IMFSourceReader_GetNativeMediaType(This,index,typeindex,type) (This)->lpVtbl->GetNativeMediaType(This,index,typeindex,type)
577 #define IMFSourceReader_GetCurrentMediaType(This,index,type) (This)->lpVtbl->GetCurrentMediaType(This,index,type)
578 #define IMFSourceReader_SetCurrentMediaType(This,index,reserved,type) (This)->lpVtbl->SetCurrentMediaType(This,index,reserved,type)
579 #define IMFSourceReader_SetCurrentPosition(This,format,position) (This)->lpVtbl->SetCurrentPosition(This,format,position)
580 #define IMFSourceReader_ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample) (This)->lpVtbl->ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample)
581 #define IMFSourceReader_Flush(This,index) (This)->lpVtbl->Flush(This,index)
582 #define IMFSourceReader_GetServiceForStream(This,index,service,riid,object) (This)->lpVtbl->GetServiceForStream(This,index,service,riid,object)
583 #define IMFSourceReader_GetPresentationAttribute(This,index,guid,attr) (This)->lpVtbl->GetPresentationAttribute(This,index,guid,attr)
584 #else
585 /*** IUnknown methods ***/
586 static FORCEINLINE HRESULT IMFSourceReader_QueryInterface(IMFSourceReader* This,REFIID riid,void **ppvObject) {
587 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
588 }
589 static FORCEINLINE ULONG IMFSourceReader_AddRef(IMFSourceReader* This) {
590 return This->lpVtbl->AddRef(This);
591 }
592 static FORCEINLINE ULONG IMFSourceReader_Release(IMFSourceReader* This) {
593 return This->lpVtbl->Release(This);
594 }
595 /*** IMFSourceReader methods ***/
596 static FORCEINLINE HRESULT IMFSourceReader_GetStreamSelection(IMFSourceReader* This,DWORD index,WINBOOL *selected) {
597 return This->lpVtbl->GetStreamSelection(This,index,selected);
598 }
599 static FORCEINLINE HRESULT IMFSourceReader_SetStreamSelection(IMFSourceReader* This,DWORD index,WINBOOL selected) {
600 return This->lpVtbl->SetStreamSelection(This,index,selected);
601 }
602 static FORCEINLINE HRESULT IMFSourceReader_GetNativeMediaType(IMFSourceReader* This,DWORD index,DWORD typeindex,IMFMediaType **type) {
603 return This->lpVtbl->GetNativeMediaType(This,index,typeindex,type);
604 }
605 static FORCEINLINE HRESULT IMFSourceReader_GetCurrentMediaType(IMFSourceReader* This,DWORD index,IMFMediaType **type) {
606 return This->lpVtbl->GetCurrentMediaType(This,index,type);
607 }
608 static FORCEINLINE HRESULT IMFSourceReader_SetCurrentMediaType(IMFSourceReader* This,DWORD index,DWORD *reserved,IMFMediaType *type) {
609 return This->lpVtbl->SetCurrentMediaType(This,index,reserved,type);
610 }
611 static FORCEINLINE HRESULT IMFSourceReader_SetCurrentPosition(IMFSourceReader* This,REFGUID format,REFPROPVARIANT position) {
612 return This->lpVtbl->SetCurrentPosition(This,format,position);
613 }
614 static FORCEINLINE HRESULT IMFSourceReader_ReadSample(IMFSourceReader* This,DWORD index,DWORD flags,DWORD *actualindex,DWORD *sampleflags,LONGLONG *timestamp,IMFSample **sample) {
615 return This->lpVtbl->ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample);
616 }
617 static FORCEINLINE HRESULT IMFSourceReader_Flush(IMFSourceReader* This,DWORD index) {
618 return This->lpVtbl->Flush(This,index);
619 }
620 static FORCEINLINE HRESULT IMFSourceReader_GetServiceForStream(IMFSourceReader* This,DWORD index,REFGUID service,REFIID riid,void **object) {
621 return This->lpVtbl->GetServiceForStream(This,index,service,riid,object);
622 }
623 static FORCEINLINE HRESULT IMFSourceReader_GetPresentationAttribute(IMFSourceReader* This,DWORD index,REFGUID guid,PROPVARIANT *attr) {
624 return This->lpVtbl->GetPresentationAttribute(This,index,guid,attr);
625 }
626 #endif
627 #endif
628
629 #endif
630
631
632 #endif /* __IMFSourceReader_INTERFACE_DEFINED__ */
633
634 /*****************************************************************************
635 * IMFSourceReaderEx interface
636 */
637 #ifndef __IMFSourceReaderEx_INTERFACE_DEFINED__
638 #define __IMFSourceReaderEx_INTERFACE_DEFINED__
639
640 DEFINE_GUID(IID_IMFSourceReaderEx, 0x7b981cf0, 0x560e, 0x4116, 0x98,0x75, 0xb0,0x99,0x89,0x5f,0x23,0xd7);
641 #if defined(__cplusplus) && !defined(CINTERFACE)
642 MIDL_INTERFACE("7b981cf0-560e-4116-9875-b099895f23d7")
643 IMFSourceReaderEx : public IMFSourceReader
644 {
645 virtual HRESULT STDMETHODCALLTYPE SetNativeMediaType(
646 DWORD stream_index,
647 IMFMediaType *media_type,
648 DWORD *stream_flags) = 0;
649
650 virtual HRESULT STDMETHODCALLTYPE AddTransformForStream(
651 DWORD stream_index,
652 IUnknown *transform) = 0;
653
654 virtual HRESULT STDMETHODCALLTYPE RemoveAllTransformsForStream(
655 DWORD stream_index) = 0;
656
657 virtual HRESULT STDMETHODCALLTYPE GetTransformForStream(
658 DWORD stream_index,
659 DWORD transform_index,
660 GUID *category,
661 IMFTransform **transform) = 0;
662
663 };
664 #ifdef __CRT_UUID_DECL
665 __CRT_UUID_DECL(IMFSourceReaderEx, 0x7b981cf0, 0x560e, 0x4116, 0x98,0x75, 0xb0,0x99,0x89,0x5f,0x23,0xd7)
666 #endif
667 #else
668 typedef struct IMFSourceReaderExVtbl {
669 BEGIN_INTERFACE
670
671 /*** IUnknown methods ***/
672 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
673 IMFSourceReaderEx *This,
674 REFIID riid,
675 void **ppvObject);
676
677 ULONG (STDMETHODCALLTYPE *AddRef)(
678 IMFSourceReaderEx *This);
679
680 ULONG (STDMETHODCALLTYPE *Release)(
681 IMFSourceReaderEx *This);
682
683 /*** IMFSourceReader methods ***/
684 HRESULT (STDMETHODCALLTYPE *GetStreamSelection)(
685 IMFSourceReaderEx *This,
686 DWORD index,
687 WINBOOL *selected);
688
689 HRESULT (STDMETHODCALLTYPE *SetStreamSelection)(
690 IMFSourceReaderEx *This,
691 DWORD index,
692 WINBOOL selected);
693
694 HRESULT (STDMETHODCALLTYPE *GetNativeMediaType)(
695 IMFSourceReaderEx *This,
696 DWORD index,
697 DWORD typeindex,
698 IMFMediaType **type);
699
700 HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
701 IMFSourceReaderEx *This,
702 DWORD index,
703 IMFMediaType **type);
704
705 HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)(
706 IMFSourceReaderEx *This,
707 DWORD index,
708 DWORD *reserved,
709 IMFMediaType *type);
710
711 HRESULT (STDMETHODCALLTYPE *SetCurrentPosition)(
712 IMFSourceReaderEx *This,
713 REFGUID format,
714 REFPROPVARIANT position);
715
716 HRESULT (STDMETHODCALLTYPE *ReadSample)(
717 IMFSourceReaderEx *This,
718 DWORD index,
719 DWORD flags,
720 DWORD *actualindex,
721 DWORD *sampleflags,
722 LONGLONG *timestamp,
723 IMFSample **sample);
724
725 HRESULT (STDMETHODCALLTYPE *Flush)(
726 IMFSourceReaderEx *This,
727 DWORD index);
728
729 HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
730 IMFSourceReaderEx *This,
731 DWORD index,
732 REFGUID service,
733 REFIID riid,
734 void **object);
735
736 HRESULT (STDMETHODCALLTYPE *GetPresentationAttribute)(
737 IMFSourceReaderEx *This,
738 DWORD index,
739 REFGUID guid,
740 PROPVARIANT *attr);
741
742 /*** IMFSourceReaderEx methods ***/
743 HRESULT (STDMETHODCALLTYPE *SetNativeMediaType)(
744 IMFSourceReaderEx *This,
745 DWORD stream_index,
746 IMFMediaType *media_type,
747 DWORD *stream_flags);
748
749 HRESULT (STDMETHODCALLTYPE *AddTransformForStream)(
750 IMFSourceReaderEx *This,
751 DWORD stream_index,
752 IUnknown *transform);
753
754 HRESULT (STDMETHODCALLTYPE *RemoveAllTransformsForStream)(
755 IMFSourceReaderEx *This,
756 DWORD stream_index);
757
758 HRESULT (STDMETHODCALLTYPE *GetTransformForStream)(
759 IMFSourceReaderEx *This,
760 DWORD stream_index,
761 DWORD transform_index,
762 GUID *category,
763 IMFTransform **transform);
764
765 END_INTERFACE
766 } IMFSourceReaderExVtbl;
767
768 interface IMFSourceReaderEx {
769 CONST_VTBL IMFSourceReaderExVtbl* lpVtbl;
770 };
771
772 #ifdef COBJMACROS
773 #ifndef WIDL_C_INLINE_WRAPPERS
774 /*** IUnknown methods ***/
775 #define IMFSourceReaderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
776 #define IMFSourceReaderEx_AddRef(This) (This)->lpVtbl->AddRef(This)
777 #define IMFSourceReaderEx_Release(This) (This)->lpVtbl->Release(This)
778 /*** IMFSourceReader methods ***/
779 #define IMFSourceReaderEx_GetStreamSelection(This,index,selected) (This)->lpVtbl->GetStreamSelection(This,index,selected)
780 #define IMFSourceReaderEx_SetStreamSelection(This,index,selected) (This)->lpVtbl->SetStreamSelection(This,index,selected)
781 #define IMFSourceReaderEx_GetNativeMediaType(This,index,typeindex,type) (This)->lpVtbl->GetNativeMediaType(This,index,typeindex,type)
782 #define IMFSourceReaderEx_GetCurrentMediaType(This,index,type) (This)->lpVtbl->GetCurrentMediaType(This,index,type)
783 #define IMFSourceReaderEx_SetCurrentMediaType(This,index,reserved,type) (This)->lpVtbl->SetCurrentMediaType(This,index,reserved,type)
784 #define IMFSourceReaderEx_SetCurrentPosition(This,format,position) (This)->lpVtbl->SetCurrentPosition(This,format,position)
785 #define IMFSourceReaderEx_ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample) (This)->lpVtbl->ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample)
786 #define IMFSourceReaderEx_Flush(This,index) (This)->lpVtbl->Flush(This,index)
787 #define IMFSourceReaderEx_GetServiceForStream(This,index,service,riid,object) (This)->lpVtbl->GetServiceForStream(This,index,service,riid,object)
788 #define IMFSourceReaderEx_GetPresentationAttribute(This,index,guid,attr) (This)->lpVtbl->GetPresentationAttribute(This,index,guid,attr)
789 /*** IMFSourceReaderEx methods ***/
790 #define IMFSourceReaderEx_SetNativeMediaType(This,stream_index,media_type,stream_flags) (This)->lpVtbl->SetNativeMediaType(This,stream_index,media_type,stream_flags)
791 #define IMFSourceReaderEx_AddTransformForStream(This,stream_index,transform) (This)->lpVtbl->AddTransformForStream(This,stream_index,transform)
792 #define IMFSourceReaderEx_RemoveAllTransformsForStream(This,stream_index) (This)->lpVtbl->RemoveAllTransformsForStream(This,stream_index)
793 #define IMFSourceReaderEx_GetTransformForStream(This,stream_index,transform_index,category,transform) (This)->lpVtbl->GetTransformForStream(This,stream_index,transform_index,category,transform)
794 #else
795 /*** IUnknown methods ***/
796 static FORCEINLINE HRESULT IMFSourceReaderEx_QueryInterface(IMFSourceReaderEx* This,REFIID riid,void **ppvObject) {
797 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
798 }
799 static FORCEINLINE ULONG IMFSourceReaderEx_AddRef(IMFSourceReaderEx* This) {
800 return This->lpVtbl->AddRef(This);
801 }
802 static FORCEINLINE ULONG IMFSourceReaderEx_Release(IMFSourceReaderEx* This) {
803 return This->lpVtbl->Release(This);
804 }
805 /*** IMFSourceReader methods ***/
806 static FORCEINLINE HRESULT IMFSourceReaderEx_GetStreamSelection(IMFSourceReaderEx* This,DWORD index,WINBOOL *selected) {
807 return This->lpVtbl->GetStreamSelection(This,index,selected);
808 }
809 static FORCEINLINE HRESULT IMFSourceReaderEx_SetStreamSelection(IMFSourceReaderEx* This,DWORD index,WINBOOL selected) {
810 return This->lpVtbl->SetStreamSelection(This,index,selected);
811 }
812 static FORCEINLINE HRESULT IMFSourceReaderEx_GetNativeMediaType(IMFSourceReaderEx* This,DWORD index,DWORD typeindex,IMFMediaType **type) {
813 return This->lpVtbl->GetNativeMediaType(This,index,typeindex,type);
814 }
815 static FORCEINLINE HRESULT IMFSourceReaderEx_GetCurrentMediaType(IMFSourceReaderEx* This,DWORD index,IMFMediaType **type) {
816 return This->lpVtbl->GetCurrentMediaType(This,index,type);
817 }
818 static FORCEINLINE HRESULT IMFSourceReaderEx_SetCurrentMediaType(IMFSourceReaderEx* This,DWORD index,DWORD *reserved,IMFMediaType *type) {
819 return This->lpVtbl->SetCurrentMediaType(This,index,reserved,type);
820 }
821 static FORCEINLINE HRESULT IMFSourceReaderEx_SetCurrentPosition(IMFSourceReaderEx* This,REFGUID format,REFPROPVARIANT position) {
822 return This->lpVtbl->SetCurrentPosition(This,format,position);
823 }
824 static FORCEINLINE HRESULT IMFSourceReaderEx_ReadSample(IMFSourceReaderEx* This,DWORD index,DWORD flags,DWORD *actualindex,DWORD *sampleflags,LONGLONG *timestamp,IMFSample **sample) {
825 return This->lpVtbl->ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample);
826 }
827 static FORCEINLINE HRESULT IMFSourceReaderEx_Flush(IMFSourceReaderEx* This,DWORD index) {
828 return This->lpVtbl->Flush(This,index);
829 }
830 static FORCEINLINE HRESULT IMFSourceReaderEx_GetServiceForStream(IMFSourceReaderEx* This,DWORD index,REFGUID service,REFIID riid,void **object) {
831 return This->lpVtbl->GetServiceForStream(This,index,service,riid,object);
832 }
833 static FORCEINLINE HRESULT IMFSourceReaderEx_GetPresentationAttribute(IMFSourceReaderEx* This,DWORD index,REFGUID guid,PROPVARIANT *attr) {
834 return This->lpVtbl->GetPresentationAttribute(This,index,guid,attr);
835 }
836 /*** IMFSourceReaderEx methods ***/
837 static FORCEINLINE HRESULT IMFSourceReaderEx_SetNativeMediaType(IMFSourceReaderEx* This,DWORD stream_index,IMFMediaType *media_type,DWORD *stream_flags) {
838 return This->lpVtbl->SetNativeMediaType(This,stream_index,media_type,stream_flags);
839 }
840 static FORCEINLINE HRESULT IMFSourceReaderEx_AddTransformForStream(IMFSourceReaderEx* This,DWORD stream_index,IUnknown *transform) {
841 return This->lpVtbl->AddTransformForStream(This,stream_index,transform);
842 }
843 static FORCEINLINE HRESULT IMFSourceReaderEx_RemoveAllTransformsForStream(IMFSourceReaderEx* This,DWORD stream_index) {
844 return This->lpVtbl->RemoveAllTransformsForStream(This,stream_index);
845 }
846 static FORCEINLINE HRESULT IMFSourceReaderEx_GetTransformForStream(IMFSourceReaderEx* This,DWORD stream_index,DWORD transform_index,GUID *category,IMFTransform **transform) {
847 return This->lpVtbl->GetTransformForStream(This,stream_index,transform_index,category,transform);
848 }
849 #endif
850 #endif
851
852 #endif
853
854
855 #endif /* __IMFSourceReaderEx_INTERFACE_DEFINED__ */
856
857 /*****************************************************************************
858 * IMFSinkWriter interface
859 */
860 #ifndef __IMFSinkWriter_INTERFACE_DEFINED__
861 #define __IMFSinkWriter_INTERFACE_DEFINED__
862
863 DEFINE_GUID(IID_IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d);
864 #if defined(__cplusplus) && !defined(CINTERFACE)
865 MIDL_INTERFACE("3137f1cd-fe5e-4805-a5d8-fb477448cb3d")
866 IMFSinkWriter : public IUnknown
867 {
868 virtual HRESULT STDMETHODCALLTYPE AddStream(
869 IMFMediaType *type,
870 DWORD *index) = 0;
871
872 virtual HRESULT STDMETHODCALLTYPE SetInputMediaType(
873 DWORD index,
874 IMFMediaType *type,
875 IMFAttributes *parameters) = 0;
876
877 virtual HRESULT STDMETHODCALLTYPE BeginWriting(
878 ) = 0;
879
880 virtual HRESULT STDMETHODCALLTYPE WriteSample(
881 DWORD index,
882 IMFSample *sample) = 0;
883
884 virtual HRESULT STDMETHODCALLTYPE SendStreamTick(
885 DWORD index,
886 LONGLONG timestamp) = 0;
887
888 virtual HRESULT STDMETHODCALLTYPE PlaceMarker(
889 DWORD index,
890 void *context) = 0;
891
892 virtual HRESULT STDMETHODCALLTYPE NotifyEndOfSegment(
893 DWORD index) = 0;
894
895 virtual HRESULT STDMETHODCALLTYPE Flush(
896 DWORD index) = 0;
897
898 virtual HRESULT STDMETHODCALLTYPE Finalize(
899 ) = 0;
900
901 virtual HRESULT STDMETHODCALLTYPE GetServiceForStream(
902 DWORD index,
903 REFGUID service,
904 REFIID riid,
905 void **object) = 0;
906
907 virtual HRESULT STDMETHODCALLTYPE GetStatistics(
908 DWORD index,
909 MF_SINK_WRITER_STATISTICS *stats) = 0;
910
911 };
912 #ifdef __CRT_UUID_DECL
913 __CRT_UUID_DECL(IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d)
914 #endif
915 #else
916 typedef struct IMFSinkWriterVtbl {
917 BEGIN_INTERFACE
918
919 /*** IUnknown methods ***/
920 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
921 IMFSinkWriter *This,
922 REFIID riid,
923 void **ppvObject);
924
925 ULONG (STDMETHODCALLTYPE *AddRef)(
926 IMFSinkWriter *This);
927
928 ULONG (STDMETHODCALLTYPE *Release)(
929 IMFSinkWriter *This);
930
931 /*** IMFSinkWriter methods ***/
932 HRESULT (STDMETHODCALLTYPE *AddStream)(
933 IMFSinkWriter *This,
934 IMFMediaType *type,
935 DWORD *index);
936
937 HRESULT (STDMETHODCALLTYPE *SetInputMediaType)(
938 IMFSinkWriter *This,
939 DWORD index,
940 IMFMediaType *type,
941 IMFAttributes *parameters);
942
943 HRESULT (STDMETHODCALLTYPE *BeginWriting)(
944 IMFSinkWriter *This);
945
946 HRESULT (STDMETHODCALLTYPE *WriteSample)(
947 IMFSinkWriter *This,
948 DWORD index,
949 IMFSample *sample);
950
951 HRESULT (STDMETHODCALLTYPE *SendStreamTick)(
952 IMFSinkWriter *This,
953 DWORD index,
954 LONGLONG timestamp);
955
956 HRESULT (STDMETHODCALLTYPE *PlaceMarker)(
957 IMFSinkWriter *This,
958 DWORD index,
959 void *context);
960
961 HRESULT (STDMETHODCALLTYPE *NotifyEndOfSegment)(
962 IMFSinkWriter *This,
963 DWORD index);
964
965 HRESULT (STDMETHODCALLTYPE *Flush)(
966 IMFSinkWriter *This,
967 DWORD index);
968
969 HRESULT (STDMETHODCALLTYPE *Finalize)(
970 IMFSinkWriter *This);
971
972 HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
973 IMFSinkWriter *This,
974 DWORD index,
975 REFGUID service,
976 REFIID riid,
977 void **object);
978
979 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
980 IMFSinkWriter *This,
981 DWORD index,
982 MF_SINK_WRITER_STATISTICS *stats);
983
984 END_INTERFACE
985 } IMFSinkWriterVtbl;
986
987 interface IMFSinkWriter {
988 CONST_VTBL IMFSinkWriterVtbl* lpVtbl;
989 };
990
991 #ifdef COBJMACROS
992 #ifndef WIDL_C_INLINE_WRAPPERS
993 /*** IUnknown methods ***/
994 #define IMFSinkWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
995 #define IMFSinkWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
996 #define IMFSinkWriter_Release(This) (This)->lpVtbl->Release(This)
997 /*** IMFSinkWriter methods ***/
998 #define IMFSinkWriter_AddStream(This,type,index) (This)->lpVtbl->AddStream(This,type,index)
999 #define IMFSinkWriter_SetInputMediaType(This,index,type,parameters) (This)->lpVtbl->SetInputMediaType(This,index,type,parameters)
1000 #define IMFSinkWriter_BeginWriting(This) (This)->lpVtbl->BeginWriting(This)
1001 #define IMFSinkWriter_WriteSample(This,index,sample) (This)->lpVtbl->WriteSample(This,index,sample)
1002 #define IMFSinkWriter_SendStreamTick(This,index,timestamp) (This)->lpVtbl->SendStreamTick(This,index,timestamp)
1003 #define IMFSinkWriter_PlaceMarker(This,index,context) (This)->lpVtbl->PlaceMarker(This,index,context)
1004 #define IMFSinkWriter_NotifyEndOfSegment(This,index) (This)->lpVtbl->NotifyEndOfSegment(This,index)
1005 #define IMFSinkWriter_Flush(This,index) (This)->lpVtbl->Flush(This,index)
1006 #define IMFSinkWriter_Finalize(This) (This)->lpVtbl->Finalize(This)
1007 #define IMFSinkWriter_GetServiceForStream(This,index,service,riid,object) (This)->lpVtbl->GetServiceForStream(This,index,service,riid,object)
1008 #define IMFSinkWriter_GetStatistics(This,index,stats) (This)->lpVtbl->GetStatistics(This,index,stats)
1009 #else
1010 /*** IUnknown methods ***/
1011 static FORCEINLINE HRESULT IMFSinkWriter_QueryInterface(IMFSinkWriter* This,REFIID riid,void **ppvObject) {
1012 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1013 }
1014 static FORCEINLINE ULONG IMFSinkWriter_AddRef(IMFSinkWriter* This) {
1015 return This->lpVtbl->AddRef(This);
1016 }
1017 static FORCEINLINE ULONG IMFSinkWriter_Release(IMFSinkWriter* This) {
1018 return This->lpVtbl->Release(This);
1019 }
1020 /*** IMFSinkWriter methods ***/
1021 static FORCEINLINE HRESULT IMFSinkWriter_AddStream(IMFSinkWriter* This,IMFMediaType *type,DWORD *index) {
1022 return This->lpVtbl->AddStream(This,type,index);
1023 }
1024 static FORCEINLINE HRESULT IMFSinkWriter_SetInputMediaType(IMFSinkWriter* This,DWORD index,IMFMediaType *type,IMFAttributes *parameters) {
1025 return This->lpVtbl->SetInputMediaType(This,index,type,parameters);
1026 }
1027 static FORCEINLINE HRESULT IMFSinkWriter_BeginWriting(IMFSinkWriter* This) {
1028 return This->lpVtbl->BeginWriting(This);
1029 }
1030 static FORCEINLINE HRESULT IMFSinkWriter_WriteSample(IMFSinkWriter* This,DWORD index,IMFSample *sample) {
1031 return This->lpVtbl->WriteSample(This,index,sample);
1032 }
1033 static FORCEINLINE HRESULT IMFSinkWriter_SendStreamTick(IMFSinkWriter* This,DWORD index,LONGLONG timestamp) {
1034 return This->lpVtbl->SendStreamTick(This,index,timestamp);
1035 }
1036 static FORCEINLINE HRESULT IMFSinkWriter_PlaceMarker(IMFSinkWriter* This,DWORD index,void *context) {
1037 return This->lpVtbl->PlaceMarker(This,index,context);
1038 }
1039 static FORCEINLINE HRESULT IMFSinkWriter_NotifyEndOfSegment(IMFSinkWriter* This,DWORD index) {
1040 return This->lpVtbl->NotifyEndOfSegment(This,index);
1041 }
1042 static FORCEINLINE HRESULT IMFSinkWriter_Flush(IMFSinkWriter* This,DWORD index) {
1043 return This->lpVtbl->Flush(This,index);
1044 }
1045 static FORCEINLINE HRESULT IMFSinkWriter_Finalize(IMFSinkWriter* This) {
1046 return This->lpVtbl->Finalize(This);
1047 }
1048 static FORCEINLINE HRESULT IMFSinkWriter_GetServiceForStream(IMFSinkWriter* This,DWORD index,REFGUID service,REFIID riid,void **object) {
1049 return This->lpVtbl->GetServiceForStream(This,index,service,riid,object);
1050 }
1051 static FORCEINLINE HRESULT IMFSinkWriter_GetStatistics(IMFSinkWriter* This,DWORD index,MF_SINK_WRITER_STATISTICS *stats) {
1052 return This->lpVtbl->GetStatistics(This,index,stats);
1053 }
1054 #endif
1055 #endif
1056
1057 #endif
1058
1059
1060 #endif /* __IMFSinkWriter_INTERFACE_DEFINED__ */
1061
1062 /*****************************************************************************
1063 * IMFSinkWriterEx interface
1064 */
1065 #ifndef __IMFSinkWriterEx_INTERFACE_DEFINED__
1066 #define __IMFSinkWriterEx_INTERFACE_DEFINED__
1067
1068 DEFINE_GUID(IID_IMFSinkWriterEx, 0x588d72ab, 0x5bc1, 0x496a, 0x87,0x14, 0xb7,0x06,0x17,0x14,0x1b,0x25);
1069 #if defined(__cplusplus) && !defined(CINTERFACE)
1070 MIDL_INTERFACE("588d72ab-5bc1-496a-8714-b70617141b25")
1071 IMFSinkWriterEx : public IMFSinkWriter
1072 {
1073 virtual HRESULT STDMETHODCALLTYPE GetTransformForStream(
1074 DWORD index,
1075 DWORD tindex,
1076 GUID *category,
1077 IMFTransform **transform) = 0;
1078
1079 };
1080 #ifdef __CRT_UUID_DECL
1081 __CRT_UUID_DECL(IMFSinkWriterEx, 0x588d72ab, 0x5bc1, 0x496a, 0x87,0x14, 0xb7,0x06,0x17,0x14,0x1b,0x25)
1082 #endif
1083 #else
1084 typedef struct IMFSinkWriterExVtbl {
1085 BEGIN_INTERFACE
1086
1087 /*** IUnknown methods ***/
1088 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1089 IMFSinkWriterEx *This,
1090 REFIID riid,
1091 void **ppvObject);
1092
1093 ULONG (STDMETHODCALLTYPE *AddRef)(
1094 IMFSinkWriterEx *This);
1095
1096 ULONG (STDMETHODCALLTYPE *Release)(
1097 IMFSinkWriterEx *This);
1098
1099 /*** IMFSinkWriter methods ***/
1100 HRESULT (STDMETHODCALLTYPE *AddStream)(
1101 IMFSinkWriterEx *This,
1102 IMFMediaType *type,
1103 DWORD *index);
1104
1105 HRESULT (STDMETHODCALLTYPE *SetInputMediaType)(
1106 IMFSinkWriterEx *This,
1107 DWORD index,
1108 IMFMediaType *type,
1109 IMFAttributes *parameters);
1110
1111 HRESULT (STDMETHODCALLTYPE *BeginWriting)(
1112 IMFSinkWriterEx *This);
1113
1114 HRESULT (STDMETHODCALLTYPE *WriteSample)(
1115 IMFSinkWriterEx *This,
1116 DWORD index,
1117 IMFSample *sample);
1118
1119 HRESULT (STDMETHODCALLTYPE *SendStreamTick)(
1120 IMFSinkWriterEx *This,
1121 DWORD index,
1122 LONGLONG timestamp);
1123
1124 HRESULT (STDMETHODCALLTYPE *PlaceMarker)(
1125 IMFSinkWriterEx *This,
1126 DWORD index,
1127 void *context);
1128
1129 HRESULT (STDMETHODCALLTYPE *NotifyEndOfSegment)(
1130 IMFSinkWriterEx *This,
1131 DWORD index);
1132
1133 HRESULT (STDMETHODCALLTYPE *Flush)(
1134 IMFSinkWriterEx *This,
1135 DWORD index);
1136
1137 HRESULT (STDMETHODCALLTYPE *Finalize)(
1138 IMFSinkWriterEx *This);
1139
1140 HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
1141 IMFSinkWriterEx *This,
1142 DWORD index,
1143 REFGUID service,
1144 REFIID riid,
1145 void **object);
1146
1147 HRESULT (STDMETHODCALLTYPE *GetStatistics)(
1148 IMFSinkWriterEx *This,
1149 DWORD index,
1150 MF_SINK_WRITER_STATISTICS *stats);
1151
1152 /*** IMFSinkWriterEx methods ***/
1153 HRESULT (STDMETHODCALLTYPE *GetTransformForStream)(
1154 IMFSinkWriterEx *This,
1155 DWORD index,
1156 DWORD tindex,
1157 GUID *category,
1158 IMFTransform **transform);
1159
1160 END_INTERFACE
1161 } IMFSinkWriterExVtbl;
1162
1163 interface IMFSinkWriterEx {
1164 CONST_VTBL IMFSinkWriterExVtbl* lpVtbl;
1165 };
1166
1167 #ifdef COBJMACROS
1168 #ifndef WIDL_C_INLINE_WRAPPERS
1169 /*** IUnknown methods ***/
1170 #define IMFSinkWriterEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1171 #define IMFSinkWriterEx_AddRef(This) (This)->lpVtbl->AddRef(This)
1172 #define IMFSinkWriterEx_Release(This) (This)->lpVtbl->Release(This)
1173 /*** IMFSinkWriter methods ***/
1174 #define IMFSinkWriterEx_AddStream(This,type,index) (This)->lpVtbl->AddStream(This,type,index)
1175 #define IMFSinkWriterEx_SetInputMediaType(This,index,type,parameters) (This)->lpVtbl->SetInputMediaType(This,index,type,parameters)
1176 #define IMFSinkWriterEx_BeginWriting(This) (This)->lpVtbl->BeginWriting(This)
1177 #define IMFSinkWriterEx_WriteSample(This,index,sample) (This)->lpVtbl->WriteSample(This,index,sample)
1178 #define IMFSinkWriterEx_SendStreamTick(This,index,timestamp) (This)->lpVtbl->SendStreamTick(This,index,timestamp)
1179 #define IMFSinkWriterEx_PlaceMarker(This,index,context) (This)->lpVtbl->PlaceMarker(This,index,context)
1180 #define IMFSinkWriterEx_NotifyEndOfSegment(This,index) (This)->lpVtbl->NotifyEndOfSegment(This,index)
1181 #define IMFSinkWriterEx_Flush(This,index) (This)->lpVtbl->Flush(This,index)
1182 #define IMFSinkWriterEx_Finalize(This) (This)->lpVtbl->Finalize(This)
1183 #define IMFSinkWriterEx_GetServiceForStream(This,index,service,riid,object) (This)->lpVtbl->GetServiceForStream(This,index,service,riid,object)
1184 #define IMFSinkWriterEx_GetStatistics(This,index,stats) (This)->lpVtbl->GetStatistics(This,index,stats)
1185 /*** IMFSinkWriterEx methods ***/
1186 #define IMFSinkWriterEx_GetTransformForStream(This,index,tindex,category,transform) (This)->lpVtbl->GetTransformForStream(This,index,tindex,category,transform)
1187 #else
1188 /*** IUnknown methods ***/
1189 static FORCEINLINE HRESULT IMFSinkWriterEx_QueryInterface(IMFSinkWriterEx* This,REFIID riid,void **ppvObject) {
1190 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1191 }
1192 static FORCEINLINE ULONG IMFSinkWriterEx_AddRef(IMFSinkWriterEx* This) {
1193 return This->lpVtbl->AddRef(This);
1194 }
1195 static FORCEINLINE ULONG IMFSinkWriterEx_Release(IMFSinkWriterEx* This) {
1196 return This->lpVtbl->Release(This);
1197 }
1198 /*** IMFSinkWriter methods ***/
1199 static FORCEINLINE HRESULT IMFSinkWriterEx_AddStream(IMFSinkWriterEx* This,IMFMediaType *type,DWORD *index) {
1200 return This->lpVtbl->AddStream(This,type,index);
1201 }
1202 static FORCEINLINE HRESULT IMFSinkWriterEx_SetInputMediaType(IMFSinkWriterEx* This,DWORD index,IMFMediaType *type,IMFAttributes *parameters) {
1203 return This->lpVtbl->SetInputMediaType(This,index,type,parameters);
1204 }
1205 static FORCEINLINE HRESULT IMFSinkWriterEx_BeginWriting(IMFSinkWriterEx* This) {
1206 return This->lpVtbl->BeginWriting(This);
1207 }
1208 static FORCEINLINE HRESULT IMFSinkWriterEx_WriteSample(IMFSinkWriterEx* This,DWORD index,IMFSample *sample) {
1209 return This->lpVtbl->WriteSample(This,index,sample);
1210 }
1211 static FORCEINLINE HRESULT IMFSinkWriterEx_SendStreamTick(IMFSinkWriterEx* This,DWORD index,LONGLONG timestamp) {
1212 return This->lpVtbl->SendStreamTick(This,index,timestamp);
1213 }
1214 static FORCEINLINE HRESULT IMFSinkWriterEx_PlaceMarker(IMFSinkWriterEx* This,DWORD index,void *context) {
1215 return This->lpVtbl->PlaceMarker(This,index,context);
1216 }
1217 static FORCEINLINE HRESULT IMFSinkWriterEx_NotifyEndOfSegment(IMFSinkWriterEx* This,DWORD index) {
1218 return This->lpVtbl->NotifyEndOfSegment(This,index);
1219 }
1220 static FORCEINLINE HRESULT IMFSinkWriterEx_Flush(IMFSinkWriterEx* This,DWORD index) {
1221 return This->lpVtbl->Flush(This,index);
1222 }
1223 static FORCEINLINE HRESULT IMFSinkWriterEx_Finalize(IMFSinkWriterEx* This) {
1224 return This->lpVtbl->Finalize(This);
1225 }
1226 static FORCEINLINE HRESULT IMFSinkWriterEx_GetServiceForStream(IMFSinkWriterEx* This,DWORD index,REFGUID service,REFIID riid,void **object) {
1227 return This->lpVtbl->GetServiceForStream(This,index,service,riid,object);
1228 }
1229 static FORCEINLINE HRESULT IMFSinkWriterEx_GetStatistics(IMFSinkWriterEx* This,DWORD index,MF_SINK_WRITER_STATISTICS *stats) {
1230 return This->lpVtbl->GetStatistics(This,index,stats);
1231 }
1232 /*** IMFSinkWriterEx methods ***/
1233 static FORCEINLINE HRESULT IMFSinkWriterEx_GetTransformForStream(IMFSinkWriterEx* This,DWORD index,DWORD tindex,GUID *category,IMFTransform **transform) {
1234 return This->lpVtbl->GetTransformForStream(This,index,tindex,category,transform);
1235 }
1236 #endif
1237 #endif
1238
1239 #endif
1240
1241
1242 #endif /* __IMFSinkWriterEx_INTERFACE_DEFINED__ */
1243
1244 /*****************************************************************************
1245 * IMFSinkWriterEncoderConfig interface
1246 */
1247 #ifndef __IMFSinkWriterEncoderConfig_INTERFACE_DEFINED__
1248 #define __IMFSinkWriterEncoderConfig_INTERFACE_DEFINED__
1249
1250 DEFINE_GUID(IID_IMFSinkWriterEncoderConfig, 0x17c3779e, 0x3cde, 0x4ede, 0x8c,0x60, 0x38,0x99,0xf5,0xf5,0x3a,0xd6);
1251 #if defined(__cplusplus) && !defined(CINTERFACE)
1252 MIDL_INTERFACE("17c3779e-3cde-4ede-8c60-3899f5f53ad6")
1253 IMFSinkWriterEncoderConfig : public IUnknown
1254 {
1255 virtual HRESULT STDMETHODCALLTYPE SetTargetMediaType(
1256 DWORD stream_index,
1257 IMFMediaType *media_type,
1258 IMFAttributes *encoding_parameters) = 0;
1259
1260 virtual HRESULT STDMETHODCALLTYPE PlaceEncodingParameters(
1261 DWORD stream_index,
1262 IMFAttributes *encoding_parameters) = 0;
1263
1264 };
1265 #ifdef __CRT_UUID_DECL
1266 __CRT_UUID_DECL(IMFSinkWriterEncoderConfig, 0x17c3779e, 0x3cde, 0x4ede, 0x8c,0x60, 0x38,0x99,0xf5,0xf5,0x3a,0xd6)
1267 #endif
1268 #else
1269 typedef struct IMFSinkWriterEncoderConfigVtbl {
1270 BEGIN_INTERFACE
1271
1272 /*** IUnknown methods ***/
1273 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1274 IMFSinkWriterEncoderConfig *This,
1275 REFIID riid,
1276 void **ppvObject);
1277
1278 ULONG (STDMETHODCALLTYPE *AddRef)(
1279 IMFSinkWriterEncoderConfig *This);
1280
1281 ULONG (STDMETHODCALLTYPE *Release)(
1282 IMFSinkWriterEncoderConfig *This);
1283
1284 /*** IMFSinkWriterEncoderConfig methods ***/
1285 HRESULT (STDMETHODCALLTYPE *SetTargetMediaType)(
1286 IMFSinkWriterEncoderConfig *This,
1287 DWORD stream_index,
1288 IMFMediaType *media_type,
1289 IMFAttributes *encoding_parameters);
1290
1291 HRESULT (STDMETHODCALLTYPE *PlaceEncodingParameters)(
1292 IMFSinkWriterEncoderConfig *This,
1293 DWORD stream_index,
1294 IMFAttributes *encoding_parameters);
1295
1296 END_INTERFACE
1297 } IMFSinkWriterEncoderConfigVtbl;
1298
1299 interface IMFSinkWriterEncoderConfig {
1300 CONST_VTBL IMFSinkWriterEncoderConfigVtbl* lpVtbl;
1301 };
1302
1303 #ifdef COBJMACROS
1304 #ifndef WIDL_C_INLINE_WRAPPERS
1305 /*** IUnknown methods ***/
1306 #define IMFSinkWriterEncoderConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1307 #define IMFSinkWriterEncoderConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
1308 #define IMFSinkWriterEncoderConfig_Release(This) (This)->lpVtbl->Release(This)
1309 /*** IMFSinkWriterEncoderConfig methods ***/
1310 #define IMFSinkWriterEncoderConfig_SetTargetMediaType(This,stream_index,media_type,encoding_parameters) (This)->lpVtbl->SetTargetMediaType(This,stream_index,media_type,encoding_parameters)
1311 #define IMFSinkWriterEncoderConfig_PlaceEncodingParameters(This,stream_index,encoding_parameters) (This)->lpVtbl->PlaceEncodingParameters(This,stream_index,encoding_parameters)
1312 #else
1313 /*** IUnknown methods ***/
1314 static FORCEINLINE HRESULT IMFSinkWriterEncoderConfig_QueryInterface(IMFSinkWriterEncoderConfig* This,REFIID riid,void **ppvObject) {
1315 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1316 }
1317 static FORCEINLINE ULONG IMFSinkWriterEncoderConfig_AddRef(IMFSinkWriterEncoderConfig* This) {
1318 return This->lpVtbl->AddRef(This);
1319 }
1320 static FORCEINLINE ULONG IMFSinkWriterEncoderConfig_Release(IMFSinkWriterEncoderConfig* This) {
1321 return This->lpVtbl->Release(This);
1322 }
1323 /*** IMFSinkWriterEncoderConfig methods ***/
1324 static FORCEINLINE HRESULT IMFSinkWriterEncoderConfig_SetTargetMediaType(IMFSinkWriterEncoderConfig* This,DWORD stream_index,IMFMediaType *media_type,IMFAttributes *encoding_parameters) {
1325 return This->lpVtbl->SetTargetMediaType(This,stream_index,media_type,encoding_parameters);
1326 }
1327 static FORCEINLINE HRESULT IMFSinkWriterEncoderConfig_PlaceEncodingParameters(IMFSinkWriterEncoderConfig* This,DWORD stream_index,IMFAttributes *encoding_parameters) {
1328 return This->lpVtbl->PlaceEncodingParameters(This,stream_index,encoding_parameters);
1329 }
1330 #endif
1331 #endif
1332
1333 #endif
1334
1335
1336 #endif /* __IMFSinkWriterEncoderConfig_INTERFACE_DEFINED__ */
1337
1338 /*****************************************************************************
1339 * IMFSinkWriterCallback interface
1340 */
1341 #ifndef __IMFSinkWriterCallback_INTERFACE_DEFINED__
1342 #define __IMFSinkWriterCallback_INTERFACE_DEFINED__
1343
1344 DEFINE_GUID(IID_IMFSinkWriterCallback, 0x666f76de, 0x33d2, 0x41b9, 0xa4,0x58, 0x29,0xed,0x0a,0x97,0x2c,0x58);
1345 #if defined(__cplusplus) && !defined(CINTERFACE)
1346 MIDL_INTERFACE("666f76de-33d2-41b9-a458-29ed0a972c58")
1347 IMFSinkWriterCallback : public IUnknown
1348 {
1349 virtual HRESULT STDMETHODCALLTYPE OnFinalize(
1350 HRESULT status) = 0;
1351
1352 virtual HRESULT STDMETHODCALLTYPE OnMarker(
1353 DWORD stream_index,
1354 void *context) = 0;
1355
1356 };
1357 #ifdef __CRT_UUID_DECL
1358 __CRT_UUID_DECL(IMFSinkWriterCallback, 0x666f76de, 0x33d2, 0x41b9, 0xa4,0x58, 0x29,0xed,0x0a,0x97,0x2c,0x58)
1359 #endif
1360 #else
1361 typedef struct IMFSinkWriterCallbackVtbl {
1362 BEGIN_INTERFACE
1363
1364 /*** IUnknown methods ***/
1365 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1366 IMFSinkWriterCallback *This,
1367 REFIID riid,
1368 void **ppvObject);
1369
1370 ULONG (STDMETHODCALLTYPE *AddRef)(
1371 IMFSinkWriterCallback *This);
1372
1373 ULONG (STDMETHODCALLTYPE *Release)(
1374 IMFSinkWriterCallback *This);
1375
1376 /*** IMFSinkWriterCallback methods ***/
1377 HRESULT (STDMETHODCALLTYPE *OnFinalize)(
1378 IMFSinkWriterCallback *This,
1379 HRESULT status);
1380
1381 HRESULT (STDMETHODCALLTYPE *OnMarker)(
1382 IMFSinkWriterCallback *This,
1383 DWORD stream_index,
1384 void *context);
1385
1386 END_INTERFACE
1387 } IMFSinkWriterCallbackVtbl;
1388
1389 interface IMFSinkWriterCallback {
1390 CONST_VTBL IMFSinkWriterCallbackVtbl* lpVtbl;
1391 };
1392
1393 #ifdef COBJMACROS
1394 #ifndef WIDL_C_INLINE_WRAPPERS
1395 /*** IUnknown methods ***/
1396 #define IMFSinkWriterCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1397 #define IMFSinkWriterCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
1398 #define IMFSinkWriterCallback_Release(This) (This)->lpVtbl->Release(This)
1399 /*** IMFSinkWriterCallback methods ***/
1400 #define IMFSinkWriterCallback_OnFinalize(This,status) (This)->lpVtbl->OnFinalize(This,status)
1401 #define IMFSinkWriterCallback_OnMarker(This,stream_index,context) (This)->lpVtbl->OnMarker(This,stream_index,context)
1402 #else
1403 /*** IUnknown methods ***/
1404 static FORCEINLINE HRESULT IMFSinkWriterCallback_QueryInterface(IMFSinkWriterCallback* This,REFIID riid,void **ppvObject) {
1405 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1406 }
1407 static FORCEINLINE ULONG IMFSinkWriterCallback_AddRef(IMFSinkWriterCallback* This) {
1408 return This->lpVtbl->AddRef(This);
1409 }
1410 static FORCEINLINE ULONG IMFSinkWriterCallback_Release(IMFSinkWriterCallback* This) {
1411 return This->lpVtbl->Release(This);
1412 }
1413 /*** IMFSinkWriterCallback methods ***/
1414 static FORCEINLINE HRESULT IMFSinkWriterCallback_OnFinalize(IMFSinkWriterCallback* This,HRESULT status) {
1415 return This->lpVtbl->OnFinalize(This,status);
1416 }
1417 static FORCEINLINE HRESULT IMFSinkWriterCallback_OnMarker(IMFSinkWriterCallback* This,DWORD stream_index,void *context) {
1418 return This->lpVtbl->OnMarker(This,stream_index,context);
1419 }
1420 #endif
1421 #endif
1422
1423 #endif
1424
1425
1426 #endif /* __IMFSinkWriterCallback_INTERFACE_DEFINED__ */
1427
1428 /*****************************************************************************
1429 * IMFSinkWriterCallback2 interface
1430 */
1431 #ifndef __IMFSinkWriterCallback2_INTERFACE_DEFINED__
1432 #define __IMFSinkWriterCallback2_INTERFACE_DEFINED__
1433
1434 DEFINE_GUID(IID_IMFSinkWriterCallback2, 0x2456bd58, 0xc067, 0x4513, 0x84,0xfe, 0x8d,0x0c,0x88,0xff,0xdc,0x61);
1435 #if defined(__cplusplus) && !defined(CINTERFACE)
1436 MIDL_INTERFACE("2456bd58-c067-4513-84fe-8d0c88ffdc61")
1437 IMFSinkWriterCallback2 : public IMFSinkWriterCallback
1438 {
1439 virtual HRESULT STDMETHODCALLTYPE OnTransformChange(
1440 ) = 0;
1441
1442 virtual HRESULT STDMETHODCALLTYPE OnStreamError(
1443 DWORD stream_index,
1444 HRESULT status) = 0;
1445
1446 };
1447 #ifdef __CRT_UUID_DECL
1448 __CRT_UUID_DECL(IMFSinkWriterCallback2, 0x2456bd58, 0xc067, 0x4513, 0x84,0xfe, 0x8d,0x0c,0x88,0xff,0xdc,0x61)
1449 #endif
1450 #else
1451 typedef struct IMFSinkWriterCallback2Vtbl {
1452 BEGIN_INTERFACE
1453
1454 /*** IUnknown methods ***/
1455 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1456 IMFSinkWriterCallback2 *This,
1457 REFIID riid,
1458 void **ppvObject);
1459
1460 ULONG (STDMETHODCALLTYPE *AddRef)(
1461 IMFSinkWriterCallback2 *This);
1462
1463 ULONG (STDMETHODCALLTYPE *Release)(
1464 IMFSinkWriterCallback2 *This);
1465
1466 /*** IMFSinkWriterCallback methods ***/
1467 HRESULT (STDMETHODCALLTYPE *OnFinalize)(
1468 IMFSinkWriterCallback2 *This,
1469 HRESULT status);
1470
1471 HRESULT (STDMETHODCALLTYPE *OnMarker)(
1472 IMFSinkWriterCallback2 *This,
1473 DWORD stream_index,
1474 void *context);
1475
1476 /*** IMFSinkWriterCallback2 methods ***/
1477 HRESULT (STDMETHODCALLTYPE *OnTransformChange)(
1478 IMFSinkWriterCallback2 *This);
1479
1480 HRESULT (STDMETHODCALLTYPE *OnStreamError)(
1481 IMFSinkWriterCallback2 *This,
1482 DWORD stream_index,
1483 HRESULT status);
1484
1485 END_INTERFACE
1486 } IMFSinkWriterCallback2Vtbl;
1487
1488 interface IMFSinkWriterCallback2 {
1489 CONST_VTBL IMFSinkWriterCallback2Vtbl* lpVtbl;
1490 };
1491
1492 #ifdef COBJMACROS
1493 #ifndef WIDL_C_INLINE_WRAPPERS
1494 /*** IUnknown methods ***/
1495 #define IMFSinkWriterCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1496 #define IMFSinkWriterCallback2_AddRef(This) (This)->lpVtbl->AddRef(This)
1497 #define IMFSinkWriterCallback2_Release(This) (This)->lpVtbl->Release(This)
1498 /*** IMFSinkWriterCallback methods ***/
1499 #define IMFSinkWriterCallback2_OnFinalize(This,status) (This)->lpVtbl->OnFinalize(This,status)
1500 #define IMFSinkWriterCallback2_OnMarker(This,stream_index,context) (This)->lpVtbl->OnMarker(This,stream_index,context)
1501 /*** IMFSinkWriterCallback2 methods ***/
1502 #define IMFSinkWriterCallback2_OnTransformChange(This) (This)->lpVtbl->OnTransformChange(This)
1503 #define IMFSinkWriterCallback2_OnStreamError(This,stream_index,status) (This)->lpVtbl->OnStreamError(This,stream_index,status)
1504 #else
1505 /*** IUnknown methods ***/
1506 static FORCEINLINE HRESULT IMFSinkWriterCallback2_QueryInterface(IMFSinkWriterCallback2* This,REFIID riid,void **ppvObject) {
1507 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1508 }
1509 static FORCEINLINE ULONG IMFSinkWriterCallback2_AddRef(IMFSinkWriterCallback2* This) {
1510 return This->lpVtbl->AddRef(This);
1511 }
1512 static FORCEINLINE ULONG IMFSinkWriterCallback2_Release(IMFSinkWriterCallback2* This) {
1513 return This->lpVtbl->Release(This);
1514 }
1515 /*** IMFSinkWriterCallback methods ***/
1516 static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnFinalize(IMFSinkWriterCallback2* This,HRESULT status) {
1517 return This->lpVtbl->OnFinalize(This,status);
1518 }
1519 static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnMarker(IMFSinkWriterCallback2* This,DWORD stream_index,void *context) {
1520 return This->lpVtbl->OnMarker(This,stream_index,context);
1521 }
1522 /*** IMFSinkWriterCallback2 methods ***/
1523 static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnTransformChange(IMFSinkWriterCallback2* This) {
1524 return This->lpVtbl->OnTransformChange(This);
1525 }
1526 static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnStreamError(IMFSinkWriterCallback2* This,DWORD stream_index,HRESULT status) {
1527 return This->lpVtbl->OnStreamError(This,stream_index,status);
1528 }
1529 #endif
1530 #endif
1531
1532 #endif
1533
1534
1535 #endif /* __IMFSinkWriterCallback2_INTERFACE_DEFINED__ */
1536
1537 /*****************************************************************************
1538 * IMFReadWriteClassFactory interface
1539 */
1540 #ifndef __IMFReadWriteClassFactory_INTERFACE_DEFINED__
1541 #define __IMFReadWriteClassFactory_INTERFACE_DEFINED__
1542
1543 DEFINE_GUID(IID_IMFReadWriteClassFactory, 0xe7fe2e12, 0x661c, 0x40da, 0x92,0xf9, 0x4f,0x00,0x2a,0xb6,0x76,0x27);
1544 #if defined(__cplusplus) && !defined(CINTERFACE)
1545 MIDL_INTERFACE("e7fe2e12-661c-40da-92f9-4f002ab67627")
1546 IMFReadWriteClassFactory : public IUnknown
1547 {
1548 virtual HRESULT STDMETHODCALLTYPE CreateInstanceFromURL(
1549 REFCLSID clsid,
1550 LPCWSTR url,
1551 IMFAttributes *attributes,
1552 REFIID riid,
1553 void **object) = 0;
1554
1555 virtual HRESULT STDMETHODCALLTYPE CreateInstanceFromObject(
1556 REFCLSID clsid,
1557 IUnknown *unk,
1558 IMFAttributes *attributes,
1559 REFIID riid,
1560 void **object) = 0;
1561
1562 };
1563 #ifdef __CRT_UUID_DECL
1564 __CRT_UUID_DECL(IMFReadWriteClassFactory, 0xe7fe2e12, 0x661c, 0x40da, 0x92,0xf9, 0x4f,0x00,0x2a,0xb6,0x76,0x27)
1565 #endif
1566 #else
1567 typedef struct IMFReadWriteClassFactoryVtbl {
1568 BEGIN_INTERFACE
1569
1570 /*** IUnknown methods ***/
1571 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1572 IMFReadWriteClassFactory *This,
1573 REFIID riid,
1574 void **ppvObject);
1575
1576 ULONG (STDMETHODCALLTYPE *AddRef)(
1577 IMFReadWriteClassFactory *This);
1578
1579 ULONG (STDMETHODCALLTYPE *Release)(
1580 IMFReadWriteClassFactory *This);
1581
1582 /*** IMFReadWriteClassFactory methods ***/
1583 HRESULT (STDMETHODCALLTYPE *CreateInstanceFromURL)(
1584 IMFReadWriteClassFactory *This,
1585 REFCLSID clsid,
1586 LPCWSTR url,
1587 IMFAttributes *attributes,
1588 REFIID riid,
1589 void **object);
1590
1591 HRESULT (STDMETHODCALLTYPE *CreateInstanceFromObject)(
1592 IMFReadWriteClassFactory *This,
1593 REFCLSID clsid,
1594 IUnknown *unk,
1595 IMFAttributes *attributes,
1596 REFIID riid,
1597 void **object);
1598
1599 END_INTERFACE
1600 } IMFReadWriteClassFactoryVtbl;
1601
1602 interface IMFReadWriteClassFactory {
1603 CONST_VTBL IMFReadWriteClassFactoryVtbl* lpVtbl;
1604 };
1605
1606 #ifdef COBJMACROS
1607 #ifndef WIDL_C_INLINE_WRAPPERS
1608 /*** IUnknown methods ***/
1609 #define IMFReadWriteClassFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1610 #define IMFReadWriteClassFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
1611 #define IMFReadWriteClassFactory_Release(This) (This)->lpVtbl->Release(This)
1612 /*** IMFReadWriteClassFactory methods ***/
1613 #define IMFReadWriteClassFactory_CreateInstanceFromURL(This,clsid,url,attributes,riid,object) (This)->lpVtbl->CreateInstanceFromURL(This,clsid,url,attributes,riid,object)
1614 #define IMFReadWriteClassFactory_CreateInstanceFromObject(This,clsid,unk,attributes,riid,object) (This)->lpVtbl->CreateInstanceFromObject(This,clsid,unk,attributes,riid,object)
1615 #else
1616 /*** IUnknown methods ***/
1617 static FORCEINLINE HRESULT IMFReadWriteClassFactory_QueryInterface(IMFReadWriteClassFactory* This,REFIID riid,void **ppvObject) {
1618 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1619 }
1620 static FORCEINLINE ULONG IMFReadWriteClassFactory_AddRef(IMFReadWriteClassFactory* This) {
1621 return This->lpVtbl->AddRef(This);
1622 }
1623 static FORCEINLINE ULONG IMFReadWriteClassFactory_Release(IMFReadWriteClassFactory* This) {
1624 return This->lpVtbl->Release(This);
1625 }
1626 /*** IMFReadWriteClassFactory methods ***/
1627 static FORCEINLINE HRESULT IMFReadWriteClassFactory_CreateInstanceFromURL(IMFReadWriteClassFactory* This,REFCLSID clsid,LPCWSTR url,IMFAttributes *attributes,REFIID riid,void **object) {
1628 return This->lpVtbl->CreateInstanceFromURL(This,clsid,url,attributes,riid,object);
1629 }
1630 static FORCEINLINE HRESULT IMFReadWriteClassFactory_CreateInstanceFromObject(IMFReadWriteClassFactory* This,REFCLSID clsid,IUnknown *unk,IMFAttributes *attributes,REFIID riid,void **object) {
1631 return This->lpVtbl->CreateInstanceFromObject(This,clsid,unk,attributes,riid,object);
1632 }
1633 #endif
1634 #endif
1635
1636 #endif
1637
1638
1639 #endif /* __IMFReadWriteClassFactory_INTERFACE_DEFINED__ */
1640
1641 HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *sink, IMFAttributes *attributes,
1642 IMFSinkWriter **writer);
1643 HRESULT WINAPI MFCreateSinkWriterFromURL(const WCHAR *url, IMFByteStream *bytestream,
1644 IMFAttributes *attributes, IMFSinkWriter **writer);
1645 HRESULT WINAPI MFCreateSourceReaderFromByteStream(IMFByteStream *stream, IMFAttributes *attributes,
1646 IMFSourceReader **reader);
1647 HRESULT WINAPI MFCreateSourceReaderFromMediaSource(IMFMediaSource *source, IMFAttributes *attributes,
1648 IMFSourceReader **reader);
1649 HRESULT WINAPI MFCreateSourceReaderFromURL(const WCHAR *url, IMFAttributes *attributes, IMFSourceReader **reader);
1650 /* Begin additional prototypes for all interfaces */
1651
1652
1653 /* End additional prototypes */
1654
1655 #ifdef __cplusplus
1656 }
1657 #endif
1658
1659 #endif /* __mfreadwrite_h__ */