source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mfreadwrite.h@ 1180

Last change on this file since 1180 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 64.7 KB
RevLine 
[1166]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__
23typedef interface IMFSourceReaderCallback IMFSourceReaderCallback;
24#ifdef __cplusplus
25interface IMFSourceReaderCallback;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IMFSourceReaderCallback2_FWD_DEFINED__
30#define __IMFSourceReaderCallback2_FWD_DEFINED__
31typedef interface IMFSourceReaderCallback2 IMFSourceReaderCallback2;
32#ifdef __cplusplus
33interface IMFSourceReaderCallback2;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IMFSourceReader_FWD_DEFINED__
38#define __IMFSourceReader_FWD_DEFINED__
39typedef interface IMFSourceReader IMFSourceReader;
40#ifdef __cplusplus
41interface IMFSourceReader;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IMFSourceReaderEx_FWD_DEFINED__
46#define __IMFSourceReaderEx_FWD_DEFINED__
47typedef interface IMFSourceReaderEx IMFSourceReaderEx;
48#ifdef __cplusplus
49interface IMFSourceReaderEx;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IMFSinkWriter_FWD_DEFINED__
54#define __IMFSinkWriter_FWD_DEFINED__
55typedef interface IMFSinkWriter IMFSinkWriter;
56#ifdef __cplusplus
57interface IMFSinkWriter;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IMFSinkWriterEx_FWD_DEFINED__
62#define __IMFSinkWriterEx_FWD_DEFINED__
63typedef interface IMFSinkWriterEx IMFSinkWriterEx;
64#ifdef __cplusplus
65interface IMFSinkWriterEx;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IMFSinkWriterEncoderConfig_FWD_DEFINED__
70#define __IMFSinkWriterEncoderConfig_FWD_DEFINED__
71typedef interface IMFSinkWriterEncoderConfig IMFSinkWriterEncoderConfig;
72#ifdef __cplusplus
73interface IMFSinkWriterEncoderConfig;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IMFSinkWriterCallback_FWD_DEFINED__
78#define __IMFSinkWriterCallback_FWD_DEFINED__
79typedef interface IMFSinkWriterCallback IMFSinkWriterCallback;
80#ifdef __cplusplus
81interface IMFSinkWriterCallback;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __IMFSinkWriterCallback2_FWD_DEFINED__
86#define __IMFSinkWriterCallback2_FWD_DEFINED__
87typedef interface IMFSinkWriterCallback2 IMFSinkWriterCallback2;
88#ifdef __cplusplus
89interface IMFSinkWriterCallback2;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IMFReadWriteClassFactory_FWD_DEFINED__
94#define __IMFReadWriteClassFactory_FWD_DEFINED__
95typedef interface IMFReadWriteClassFactory IMFReadWriteClassFactory;
96#ifdef __cplusplus
97interface 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
107extern "C" {
108#endif
109
110typedef enum MF_SOURCE_READER_CONTROL_FLAG {
111 MF_SOURCE_READER_CONTROLF_DRAIN = 0x1
112} MF_SOURCE_READER_CONTROL_FLAG;
113DEFINE_ENUM_FLAG_OPERATORS(MF_SOURCE_READER_CONTROL_FLAG)
114enum {
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};
123typedef 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;
132DEFINE_ENUM_FLAG_OPERATORS(MF_SOURCE_READER_FLAG)
133enum {
134 MF_SINK_WRITER_INVALID_STREAM_INDEX = 0xffffffff,
135 MF_SINK_WRITER_ALL_STREAMS = 0xfffffffe,
136 MF_SINK_WRITER_MEDIASINK = 0xffffffff
137};
138typedef 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;
156EXTERN_GUID(CLSID_MFReadWriteClassFactory, 0x48e2ed0f, 0x98c2, 0x4a37, 0xbe, 0xd5, 0x16, 0x63, 0x12, 0xdd, 0xd8, 0x3f);
157EXTERN_GUID(CLSID_MFSourceReader, 0x1777133c, 0x0881, 0x411b, 0xa5, 0x77, 0xad, 0x54, 0x5f, 0x07, 0x14, 0xc4);
158EXTERN_GUID(CLSID_MFSinkWriter, 0xa3bbfb17, 0x8273, 0x4e52, 0x9e, 0x0e, 0x97, 0x39, 0xdc, 0x88, 0x79, 0x90);
159EXTERN_GUID(MF_MEDIASINK_AUTOFINALIZE_SUPPORTED, 0x48c131be, 0x135a, 0x41cb, 0x82, 0x90, 0x03, 0x65, 0x25, 0x09, 0xc9, 0x99);
160EXTERN_GUID(MF_MEDIASINK_ENABLE_AUTOFINALIZE, 0x34014265, 0xcb7e, 0x4cde, 0xac, 0x7c, 0xef, 0xfd, 0x3b, 0x3c, 0x25, 0x30);
161EXTERN_GUID(MF_SINK_WRITER_ASYNC_CALLBACK, 0x48cb183e, 0x7b0b, 0x46f4, 0x82, 0x2e, 0x5e, 0x1d, 0x2d, 0xda, 0x43, 0x54);
162EXTERN_GUID(MF_SINK_WRITER_DISABLE_THROTTLING, 0x08b845d8, 0x2b74, 0x4afe, 0x9d, 0x53, 0xbe, 0x16, 0xd2, 0xd5, 0xae, 0x4f);
163EXTERN_GUID(MF_SINK_WRITER_D3D_MANAGER, 0xec822da2, 0xe1e9, 0x4b29, 0xa0, 0xd8, 0x56, 0x3c, 0x71, 0x9f, 0x52, 0x69);
164EXTERN_GUID(MF_SINK_WRITER_ENCODER_CONFIG, 0xad91cd04, 0xa7cc, 0x4ac7, 0x99, 0xb6, 0xa5, 0x7b, 0x9a, 0x4a, 0x7c, 0x70);
165EXTERN_GUID(MF_READWRITE_DISABLE_CONVERTERS, 0x98d5b065, 0x1374, 0x4847, 0x8d, 0x5d, 0x31, 0x52, 0x0f, 0xee, 0x71, 0x56);
166EXTERN_GUID(MF_READWRITE_ENABLE_AUTOFINALIZE, 0xdd7ca129, 0x8cd1, 0x4dc5, 0x9d, 0xde, 0xce, 0x16, 0x86, 0x75, 0xde, 0x61);
167EXTERN_GUID(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, 0xa634a91c, 0x822b, 0x41b9, 0xa4, 0x94, 0x4d, 0xe4, 0x64, 0x36, 0x12, 0xb0);
168EXTERN_GUID(MF_READWRITE_MMCSS_CLASS, 0x39384300, 0xd0eb, 0x40b1, 0x87, 0xa0, 0x33, 0x18, 0x87, 0x1b, 0x5a, 0x53);
169EXTERN_GUID(MF_READWRITE_MMCSS_PRIORITY, 0x43ad19ce, 0xf33f, 0x4ba9, 0xa5, 0x80, 0xe4, 0xcd, 0x12, 0xf2, 0xd1, 0x44);
170EXTERN_GUID(MF_READWRITE_MMCSS_CLASS_AUDIO, 0x430847da, 0x0890, 0x4b0e, 0x93, 0x8c, 0x05, 0x43, 0x32, 0xc5, 0x47, 0xe1);
171EXTERN_GUID(MF_READWRITE_MMCSS_PRIORITY_AUDIO, 0x273db885, 0x2de2, 0x4db2, 0xa6, 0xa7, 0xfd, 0xb6, 0x6f, 0xb4, 0x0b, 0x61);
172EXTERN_GUID(MF_READWRITE_D3D_OPTIONAL, 0x216479d9, 0x3071, 0x42ca, 0xbb, 0x6c, 0x4c, 0x22, 0x10, 0x2e, 0x1d, 0x18);
173EXTERN_GUID(MF_SOURCE_READER_ASYNC_CALLBACK, 0x1e3dbeac, 0xbb43, 0x4c35, 0xb5, 0x07, 0xcd, 0x64, 0x44, 0x64, 0xc9, 0x65);
174EXTERN_GUID(MF_SOURCE_READER_D3D_MANAGER, 0xec822da2, 0xe1e9, 0x4b29, 0xa0, 0xd8, 0x56, 0x3c, 0x71, 0x9f, 0x52, 0x69);
175EXTERN_GUID(MF_SOURCE_READER_D3D11_BIND_FLAGS, 0x33f3197b, 0xf73a, 0x4e14, 0x8d, 0x85, 0x0e, 0x4c, 0x43, 0x68, 0x78, 0x8d);
176EXTERN_GUID(MF_SOURCE_READER_DISABLE_CAMERA_PLUGINS, 0x9d3365dd, 0x058f, 0x4cfb, 0x9f, 0x97, 0xb3, 0x14, 0xcc, 0x99, 0xc8, 0xad);
177EXTERN_GUID(MF_SOURCE_READER_DISABLE_DXVA, 0xaa456cfd, 0x3943, 0x4a1e, 0xa7, 0x7d, 0x18, 0x38, 0xc0, 0xea, 0x2e, 0x35);
178EXTERN_GUID(MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN, 0x56b67165, 0x219e, 0x456d, 0xa2, 0x2e, 0x2d, 0x30, 0x04, 0xc7, 0xfe, 0x56);
179EXTERN_GUID(MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING, 0x0f81da2c, 0xb537, 0x4672, 0xa8, 0xb2, 0xa6, 0x81, 0xb1, 0x73, 0x07, 0xa3);
180EXTERN_GUID(MF_SOURCE_READER_ENABLE_TRANSCODE_ONLY_TRANSFORMS, 0xdfd4f008, 0xb5fd, 0x4e78, 0xae, 0x44, 0x62, 0xa1, 0xe6, 0x7b, 0xbe, 0x27);
181EXTERN_GUID(MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING, 0xfb394f3d, 0xccf1, 0x42ee, 0xbb, 0xb3, 0xf9, 0xb8, 0x45, 0xd5, 0x68, 0x1d);
182EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS, 0x6d23f5c8, 0xc5d7, 0x4a9b, 0x99, 0x71, 0x5d, 0x11, 0xf8, 0xbc, 0xa8, 0x80);
183EXTERN_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
190DEFINE_GUID(IID_IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67);
191#if defined(__cplusplus) && !defined(CINTERFACE)
192MIDL_INTERFACE("deec8d99-fa1d-4d82-84c2-2c8969944867")
193IMFSourceReaderCallback : 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
214typedef 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
250interface 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 ***/
266static FORCEINLINE HRESULT IMFSourceReaderCallback_QueryInterface(IMFSourceReaderCallback* This,REFIID riid,void **ppvObject) {
267 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
268}
269static FORCEINLINE ULONG IMFSourceReaderCallback_AddRef(IMFSourceReaderCallback* This) {
270 return This->lpVtbl->AddRef(This);
271}
272static FORCEINLINE ULONG IMFSourceReaderCallback_Release(IMFSourceReaderCallback* This) {
273 return This->lpVtbl->Release(This);
274}
275/*** IMFSourceReaderCallback methods ***/
276static 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}
279static FORCEINLINE HRESULT IMFSourceReaderCallback_OnFlush(IMFSourceReaderCallback* This,DWORD stream_index) {
280 return This->lpVtbl->OnFlush(This,stream_index);
281}
282static 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
299DEFINE_GUID(IID_IMFSourceReaderCallback2, 0xcf839fe6, 0x8c2a, 0x4dd2, 0xb6,0xea, 0xc2,0x2d,0x69,0x61,0xaf,0x05);
300#if defined(__cplusplus) && !defined(CINTERFACE)
301MIDL_INTERFACE("cf839fe6-8c2a-4dd2-b6ea-c22d6961af05")
302IMFSourceReaderCallback2 : 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
316typedef 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
361interface 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 ***/
380static FORCEINLINE HRESULT IMFSourceReaderCallback2_QueryInterface(IMFSourceReaderCallback2* This,REFIID riid,void **ppvObject) {
381 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
382}
383static FORCEINLINE ULONG IMFSourceReaderCallback2_AddRef(IMFSourceReaderCallback2* This) {
384 return This->lpVtbl->AddRef(This);
385}
386static FORCEINLINE ULONG IMFSourceReaderCallback2_Release(IMFSourceReaderCallback2* This) {
387 return This->lpVtbl->Release(This);
388}
389/*** IMFSourceReaderCallback methods ***/
390static 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}
393static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnFlush(IMFSourceReaderCallback2* This,DWORD stream_index) {
394 return This->lpVtbl->OnFlush(This,stream_index);
395}
396static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnEvent(IMFSourceReaderCallback2* This,DWORD stream_index,IMFMediaEvent *event) {
397 return This->lpVtbl->OnEvent(This,stream_index,event);
398}
399/*** IMFSourceReaderCallback2 methods ***/
400static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnTransformChange(IMFSourceReaderCallback2* This) {
401 return This->lpVtbl->OnTransformChange(This);
402}
403static 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__
416typedef interface IMFMediaSource IMFMediaSource;
417#ifdef __cplusplus
418interface IMFMediaSource;
419#endif /* __cplusplus */
420#endif
421
422/*****************************************************************************
423 * IMFSourceReader interface
424 */
425#ifndef __IMFSourceReader_INTERFACE_DEFINED__
426#define __IMFSourceReader_INTERFACE_DEFINED__
427
428DEFINE_GUID(IID_IMFSourceReader, 0x70ae66f2, 0xc809, 0x4e4f, 0x89,0x15, 0xbd,0xcb,0x40,0x6b,0x79,0x93);
429#if defined(__cplusplus) && !defined(CINTERFACE)
430MIDL_INTERFACE("70ae66f2-c809-4e4f-8915-bdcb406b7993")
431IMFSourceReader : 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
486typedef 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
563interface 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 ***/
586static FORCEINLINE HRESULT IMFSourceReader_QueryInterface(IMFSourceReader* This,REFIID riid,void **ppvObject) {
587 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
588}
589static FORCEINLINE ULONG IMFSourceReader_AddRef(IMFSourceReader* This) {
590 return This->lpVtbl->AddRef(This);
591}
592static FORCEINLINE ULONG IMFSourceReader_Release(IMFSourceReader* This) {
593 return This->lpVtbl->Release(This);
594}
595/*** IMFSourceReader methods ***/
596static FORCEINLINE HRESULT IMFSourceReader_GetStreamSelection(IMFSourceReader* This,DWORD index,WINBOOL *selected) {
597 return This->lpVtbl->GetStreamSelection(This,index,selected);
598}
599static FORCEINLINE HRESULT IMFSourceReader_SetStreamSelection(IMFSourceReader* This,DWORD index,WINBOOL selected) {
600 return This->lpVtbl->SetStreamSelection(This,index,selected);
601}
602static FORCEINLINE HRESULT IMFSourceReader_GetNativeMediaType(IMFSourceReader* This,DWORD index,DWORD typeindex,IMFMediaType **type) {
603 return This->lpVtbl->GetNativeMediaType(This,index,typeindex,type);
604}
605static FORCEINLINE HRESULT IMFSourceReader_GetCurrentMediaType(IMFSourceReader* This,DWORD index,IMFMediaType **type) {
606 return This->lpVtbl->GetCurrentMediaType(This,index,type);
607}
608static FORCEINLINE HRESULT IMFSourceReader_SetCurrentMediaType(IMFSourceReader* This,DWORD index,DWORD *reserved,IMFMediaType *type) {
609 return This->lpVtbl->SetCurrentMediaType(This,index,reserved,type);
610}
611static FORCEINLINE HRESULT IMFSourceReader_SetCurrentPosition(IMFSourceReader* This,REFGUID format,REFPROPVARIANT position) {
612 return This->lpVtbl->SetCurrentPosition(This,format,position);
613}
614static 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}
617static FORCEINLINE HRESULT IMFSourceReader_Flush(IMFSourceReader* This,DWORD index) {
618 return This->lpVtbl->Flush(This,index);
619}
620static 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}
623static 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
640DEFINE_GUID(IID_IMFSourceReaderEx, 0x7b981cf0, 0x560e, 0x4116, 0x98,0x75, 0xb0,0x99,0x89,0x5f,0x23,0xd7);
641#if defined(__cplusplus) && !defined(CINTERFACE)
642MIDL_INTERFACE("7b981cf0-560e-4116-9875-b099895f23d7")
643IMFSourceReaderEx : 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
668typedef 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
768interface 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 ***/
796static FORCEINLINE HRESULT IMFSourceReaderEx_QueryInterface(IMFSourceReaderEx* This,REFIID riid,void **ppvObject) {
797 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
798}
799static FORCEINLINE ULONG IMFSourceReaderEx_AddRef(IMFSourceReaderEx* This) {
800 return This->lpVtbl->AddRef(This);
801}
802static FORCEINLINE ULONG IMFSourceReaderEx_Release(IMFSourceReaderEx* This) {
803 return This->lpVtbl->Release(This);
804}
805/*** IMFSourceReader methods ***/
806static FORCEINLINE HRESULT IMFSourceReaderEx_GetStreamSelection(IMFSourceReaderEx* This,DWORD index,WINBOOL *selected) {
807 return This->lpVtbl->GetStreamSelection(This,index,selected);
808}
809static FORCEINLINE HRESULT IMFSourceReaderEx_SetStreamSelection(IMFSourceReaderEx* This,DWORD index,WINBOOL selected) {
810 return This->lpVtbl->SetStreamSelection(This,index,selected);
811}
812static FORCEINLINE HRESULT IMFSourceReaderEx_GetNativeMediaType(IMFSourceReaderEx* This,DWORD index,DWORD typeindex,IMFMediaType **type) {
813 return This->lpVtbl->GetNativeMediaType(This,index,typeindex,type);
814}
815static FORCEINLINE HRESULT IMFSourceReaderEx_GetCurrentMediaType(IMFSourceReaderEx* This,DWORD index,IMFMediaType **type) {
816 return This->lpVtbl->GetCurrentMediaType(This,index,type);
817}
818static FORCEINLINE HRESULT IMFSourceReaderEx_SetCurrentMediaType(IMFSourceReaderEx* This,DWORD index,DWORD *reserved,IMFMediaType *type) {
819 return This->lpVtbl->SetCurrentMediaType(This,index,reserved,type);
820}
821static FORCEINLINE HRESULT IMFSourceReaderEx_SetCurrentPosition(IMFSourceReaderEx* This,REFGUID format,REFPROPVARIANT position) {
822 return This->lpVtbl->SetCurrentPosition(This,format,position);
823}
824static 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}
827static FORCEINLINE HRESULT IMFSourceReaderEx_Flush(IMFSourceReaderEx* This,DWORD index) {
828 return This->lpVtbl->Flush(This,index);
829}
830static 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}
833static 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 ***/
837static 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}
840static FORCEINLINE HRESULT IMFSourceReaderEx_AddTransformForStream(IMFSourceReaderEx* This,DWORD stream_index,IUnknown *transform) {
841 return This->lpVtbl->AddTransformForStream(This,stream_index,transform);
842}
843static FORCEINLINE HRESULT IMFSourceReaderEx_RemoveAllTransformsForStream(IMFSourceReaderEx* This,DWORD stream_index) {
844 return This->lpVtbl->RemoveAllTransformsForStream(This,stream_index);
845}
846static 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
863DEFINE_GUID(IID_IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d);
864#if defined(__cplusplus) && !defined(CINTERFACE)
865MIDL_INTERFACE("3137f1cd-fe5e-4805-a5d8-fb477448cb3d")
866IMFSinkWriter : 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
916typedef 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
987interface 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 ***/
1011static FORCEINLINE HRESULT IMFSinkWriter_QueryInterface(IMFSinkWriter* This,REFIID riid,void **ppvObject) {
1012 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1013}
1014static FORCEINLINE ULONG IMFSinkWriter_AddRef(IMFSinkWriter* This) {
1015 return This->lpVtbl->AddRef(This);
1016}
1017static FORCEINLINE ULONG IMFSinkWriter_Release(IMFSinkWriter* This) {
1018 return This->lpVtbl->Release(This);
1019}
1020/*** IMFSinkWriter methods ***/
1021static FORCEINLINE HRESULT IMFSinkWriter_AddStream(IMFSinkWriter* This,IMFMediaType *type,DWORD *index) {
1022 return This->lpVtbl->AddStream(This,type,index);
1023}
1024static FORCEINLINE HRESULT IMFSinkWriter_SetInputMediaType(IMFSinkWriter* This,DWORD index,IMFMediaType *type,IMFAttributes *parameters) {
1025 return This->lpVtbl->SetInputMediaType(This,index,type,parameters);
1026}
1027static FORCEINLINE HRESULT IMFSinkWriter_BeginWriting(IMFSinkWriter* This) {
1028 return This->lpVtbl->BeginWriting(This);
1029}
1030static FORCEINLINE HRESULT IMFSinkWriter_WriteSample(IMFSinkWriter* This,DWORD index,IMFSample *sample) {
1031 return This->lpVtbl->WriteSample(This,index,sample);
1032}
1033static FORCEINLINE HRESULT IMFSinkWriter_SendStreamTick(IMFSinkWriter* This,DWORD index,LONGLONG timestamp) {
1034 return This->lpVtbl->SendStreamTick(This,index,timestamp);
1035}
1036static FORCEINLINE HRESULT IMFSinkWriter_PlaceMarker(IMFSinkWriter* This,DWORD index,void *context) {
1037 return This->lpVtbl->PlaceMarker(This,index,context);
1038}
1039static FORCEINLINE HRESULT IMFSinkWriter_NotifyEndOfSegment(IMFSinkWriter* This,DWORD index) {
1040 return This->lpVtbl->NotifyEndOfSegment(This,index);
1041}
1042static FORCEINLINE HRESULT IMFSinkWriter_Flush(IMFSinkWriter* This,DWORD index) {
1043 return This->lpVtbl->Flush(This,index);
1044}
1045static FORCEINLINE HRESULT IMFSinkWriter_Finalize(IMFSinkWriter* This) {
1046 return This->lpVtbl->Finalize(This);
1047}
1048static 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}
1051static 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
1068DEFINE_GUID(IID_IMFSinkWriterEx, 0x588d72ab, 0x5bc1, 0x496a, 0x87,0x14, 0xb7,0x06,0x17,0x14,0x1b,0x25);
1069#if defined(__cplusplus) && !defined(CINTERFACE)
1070MIDL_INTERFACE("588d72ab-5bc1-496a-8714-b70617141b25")
1071IMFSinkWriterEx : 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
1084typedef 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
1163interface 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 ***/
1189static FORCEINLINE HRESULT IMFSinkWriterEx_QueryInterface(IMFSinkWriterEx* This,REFIID riid,void **ppvObject) {
1190 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1191}
1192static FORCEINLINE ULONG IMFSinkWriterEx_AddRef(IMFSinkWriterEx* This) {
1193 return This->lpVtbl->AddRef(This);
1194}
1195static FORCEINLINE ULONG IMFSinkWriterEx_Release(IMFSinkWriterEx* This) {
1196 return This->lpVtbl->Release(This);
1197}
1198/*** IMFSinkWriter methods ***/
1199static FORCEINLINE HRESULT IMFSinkWriterEx_AddStream(IMFSinkWriterEx* This,IMFMediaType *type,DWORD *index) {
1200 return This->lpVtbl->AddStream(This,type,index);
1201}
1202static FORCEINLINE HRESULT IMFSinkWriterEx_SetInputMediaType(IMFSinkWriterEx* This,DWORD index,IMFMediaType *type,IMFAttributes *parameters) {
1203 return This->lpVtbl->SetInputMediaType(This,index,type,parameters);
1204}
1205static FORCEINLINE HRESULT IMFSinkWriterEx_BeginWriting(IMFSinkWriterEx* This) {
1206 return This->lpVtbl->BeginWriting(This);
1207}
1208static FORCEINLINE HRESULT IMFSinkWriterEx_WriteSample(IMFSinkWriterEx* This,DWORD index,IMFSample *sample) {
1209 return This->lpVtbl->WriteSample(This,index,sample);
1210}
1211static FORCEINLINE HRESULT IMFSinkWriterEx_SendStreamTick(IMFSinkWriterEx* This,DWORD index,LONGLONG timestamp) {
1212 return This->lpVtbl->SendStreamTick(This,index,timestamp);
1213}
1214static FORCEINLINE HRESULT IMFSinkWriterEx_PlaceMarker(IMFSinkWriterEx* This,DWORD index,void *context) {
1215 return This->lpVtbl->PlaceMarker(This,index,context);
1216}
1217static FORCEINLINE HRESULT IMFSinkWriterEx_NotifyEndOfSegment(IMFSinkWriterEx* This,DWORD index) {
1218 return This->lpVtbl->NotifyEndOfSegment(This,index);
1219}
1220static FORCEINLINE HRESULT IMFSinkWriterEx_Flush(IMFSinkWriterEx* This,DWORD index) {
1221 return This->lpVtbl->Flush(This,index);
1222}
1223static FORCEINLINE HRESULT IMFSinkWriterEx_Finalize(IMFSinkWriterEx* This) {
1224 return This->lpVtbl->Finalize(This);
1225}
1226static 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}
1229static 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 ***/
1233static 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
1250DEFINE_GUID(IID_IMFSinkWriterEncoderConfig, 0x17c3779e, 0x3cde, 0x4ede, 0x8c,0x60, 0x38,0x99,0xf5,0xf5,0x3a,0xd6);
1251#if defined(__cplusplus) && !defined(CINTERFACE)
1252MIDL_INTERFACE("17c3779e-3cde-4ede-8c60-3899f5f53ad6")
1253IMFSinkWriterEncoderConfig : 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
1269typedef 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
1299interface 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 ***/
1314static FORCEINLINE HRESULT IMFSinkWriterEncoderConfig_QueryInterface(IMFSinkWriterEncoderConfig* This,REFIID riid,void **ppvObject) {
1315 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1316}
1317static FORCEINLINE ULONG IMFSinkWriterEncoderConfig_AddRef(IMFSinkWriterEncoderConfig* This) {
1318 return This->lpVtbl->AddRef(This);
1319}
1320static FORCEINLINE ULONG IMFSinkWriterEncoderConfig_Release(IMFSinkWriterEncoderConfig* This) {
1321 return This->lpVtbl->Release(This);
1322}
1323/*** IMFSinkWriterEncoderConfig methods ***/
1324static 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}
1327static 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
1344DEFINE_GUID(IID_IMFSinkWriterCallback, 0x666f76de, 0x33d2, 0x41b9, 0xa4,0x58, 0x29,0xed,0x0a,0x97,0x2c,0x58);
1345#if defined(__cplusplus) && !defined(CINTERFACE)
1346MIDL_INTERFACE("666f76de-33d2-41b9-a458-29ed0a972c58")
1347IMFSinkWriterCallback : 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
1361typedef 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
1389interface 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 ***/
1404static FORCEINLINE HRESULT IMFSinkWriterCallback_QueryInterface(IMFSinkWriterCallback* This,REFIID riid,void **ppvObject) {
1405 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1406}
1407static FORCEINLINE ULONG IMFSinkWriterCallback_AddRef(IMFSinkWriterCallback* This) {
1408 return This->lpVtbl->AddRef(This);
1409}
1410static FORCEINLINE ULONG IMFSinkWriterCallback_Release(IMFSinkWriterCallback* This) {
1411 return This->lpVtbl->Release(This);
1412}
1413/*** IMFSinkWriterCallback methods ***/
1414static FORCEINLINE HRESULT IMFSinkWriterCallback_OnFinalize(IMFSinkWriterCallback* This,HRESULT status) {
1415 return This->lpVtbl->OnFinalize(This,status);
1416}
1417static 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
1434DEFINE_GUID(IID_IMFSinkWriterCallback2, 0x2456bd58, 0xc067, 0x4513, 0x84,0xfe, 0x8d,0x0c,0x88,0xff,0xdc,0x61);
1435#if defined(__cplusplus) && !defined(CINTERFACE)
1436MIDL_INTERFACE("2456bd58-c067-4513-84fe-8d0c88ffdc61")
1437IMFSinkWriterCallback2 : 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
1451typedef 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
1488interface 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 ***/
1506static FORCEINLINE HRESULT IMFSinkWriterCallback2_QueryInterface(IMFSinkWriterCallback2* This,REFIID riid,void **ppvObject) {
1507 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1508}
1509static FORCEINLINE ULONG IMFSinkWriterCallback2_AddRef(IMFSinkWriterCallback2* This) {
1510 return This->lpVtbl->AddRef(This);
1511}
1512static FORCEINLINE ULONG IMFSinkWriterCallback2_Release(IMFSinkWriterCallback2* This) {
1513 return This->lpVtbl->Release(This);
1514}
1515/*** IMFSinkWriterCallback methods ***/
1516static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnFinalize(IMFSinkWriterCallback2* This,HRESULT status) {
1517 return This->lpVtbl->OnFinalize(This,status);
1518}
1519static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnMarker(IMFSinkWriterCallback2* This,DWORD stream_index,void *context) {
1520 return This->lpVtbl->OnMarker(This,stream_index,context);
1521}
1522/*** IMFSinkWriterCallback2 methods ***/
1523static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnTransformChange(IMFSinkWriterCallback2* This) {
1524 return This->lpVtbl->OnTransformChange(This);
1525}
1526static 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
1543DEFINE_GUID(IID_IMFReadWriteClassFactory, 0xe7fe2e12, 0x661c, 0x40da, 0x92,0xf9, 0x4f,0x00,0x2a,0xb6,0x76,0x27);
1544#if defined(__cplusplus) && !defined(CINTERFACE)
1545MIDL_INTERFACE("e7fe2e12-661c-40da-92f9-4f002ab67627")
1546IMFReadWriteClassFactory : 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
1567typedef 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
1602interface 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 ***/
1617static FORCEINLINE HRESULT IMFReadWriteClassFactory_QueryInterface(IMFReadWriteClassFactory* This,REFIID riid,void **ppvObject) {
1618 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1619}
1620static FORCEINLINE ULONG IMFReadWriteClassFactory_AddRef(IMFReadWriteClassFactory* This) {
1621 return This->lpVtbl->AddRef(This);
1622}
1623static FORCEINLINE ULONG IMFReadWriteClassFactory_Release(IMFReadWriteClassFactory* This) {
1624 return This->lpVtbl->Release(This);
1625}
1626/*** IMFReadWriteClassFactory methods ***/
1627static 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}
1630static 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
1641HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *sink, IMFAttributes *attributes,
1642 IMFSinkWriter **writer);
1643HRESULT WINAPI MFCreateSinkWriterFromURL(const WCHAR *url, IMFByteStream *bytestream,
1644 IMFAttributes *attributes, IMFSinkWriter **writer);
1645HRESULT WINAPI MFCreateSourceReaderFromByteStream(IMFByteStream *stream, IMFAttributes *attributes,
1646 IMFSourceReader **reader);
1647HRESULT WINAPI MFCreateSourceReaderFromMediaSource(IMFMediaSource *source, IMFAttributes *attributes,
1648 IMFSourceReader **reader);
1649HRESULT 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__ */
Note: See TracBrowser for help on using the repository browser.