mfreadwrite.h (65751B) - Raw
1 /*** Autogenerated by WIDL 10.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 inline HRESULT IMFSourceReaderCallback_QueryInterface(IMFSourceReaderCallback* This,REFIID riid,void **ppvObject) { 267 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 268 } 269 static inline ULONG IMFSourceReaderCallback_AddRef(IMFSourceReaderCallback* This) { 270 return This->lpVtbl->AddRef(This); 271 } 272 static inline ULONG IMFSourceReaderCallback_Release(IMFSourceReaderCallback* This) { 273 return This->lpVtbl->Release(This); 274 } 275 /*** IMFSourceReaderCallback methods ***/ 276 static inline 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 inline HRESULT IMFSourceReaderCallback_OnFlush(IMFSourceReaderCallback* This,DWORD stream_index) { 280 return This->lpVtbl->OnFlush(This,stream_index); 281 } 282 static inline 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 inline HRESULT IMFSourceReaderCallback2_QueryInterface(IMFSourceReaderCallback2* This,REFIID riid,void **ppvObject) { 381 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 382 } 383 static inline ULONG IMFSourceReaderCallback2_AddRef(IMFSourceReaderCallback2* This) { 384 return This->lpVtbl->AddRef(This); 385 } 386 static inline ULONG IMFSourceReaderCallback2_Release(IMFSourceReaderCallback2* This) { 387 return This->lpVtbl->Release(This); 388 } 389 /*** IMFSourceReaderCallback methods ***/ 390 static inline 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 inline HRESULT IMFSourceReaderCallback2_OnFlush(IMFSourceReaderCallback2* This,DWORD stream_index) { 394 return This->lpVtbl->OnFlush(This,stream_index); 395 } 396 static inline 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 inline HRESULT IMFSourceReaderCallback2_OnTransformChange(IMFSourceReaderCallback2* This) { 401 return This->lpVtbl->OnTransformChange(This); 402 } 403 static inline 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 inline HRESULT IMFSourceReader_QueryInterface(IMFSourceReader* This,REFIID riid,void **ppvObject) { 587 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 588 } 589 static inline ULONG IMFSourceReader_AddRef(IMFSourceReader* This) { 590 return This->lpVtbl->AddRef(This); 591 } 592 static inline ULONG IMFSourceReader_Release(IMFSourceReader* This) { 593 return This->lpVtbl->Release(This); 594 } 595 /*** IMFSourceReader methods ***/ 596 static inline HRESULT IMFSourceReader_GetStreamSelection(IMFSourceReader* This,DWORD index,WINBOOL *selected) { 597 return This->lpVtbl->GetStreamSelection(This,index,selected); 598 } 599 static inline HRESULT IMFSourceReader_SetStreamSelection(IMFSourceReader* This,DWORD index,WINBOOL selected) { 600 return This->lpVtbl->SetStreamSelection(This,index,selected); 601 } 602 static inline HRESULT IMFSourceReader_GetNativeMediaType(IMFSourceReader* This,DWORD index,DWORD typeindex,IMFMediaType **type) { 603 return This->lpVtbl->GetNativeMediaType(This,index,typeindex,type); 604 } 605 static inline HRESULT IMFSourceReader_GetCurrentMediaType(IMFSourceReader* This,DWORD index,IMFMediaType **type) { 606 return This->lpVtbl->GetCurrentMediaType(This,index,type); 607 } 608 static inline HRESULT IMFSourceReader_SetCurrentMediaType(IMFSourceReader* This,DWORD index,DWORD *reserved,IMFMediaType *type) { 609 return This->lpVtbl->SetCurrentMediaType(This,index,reserved,type); 610 } 611 static inline HRESULT IMFSourceReader_SetCurrentPosition(IMFSourceReader* This,REFGUID format,REFPROPVARIANT position) { 612 return This->lpVtbl->SetCurrentPosition(This,format,position); 613 } 614 static inline 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 inline HRESULT IMFSourceReader_Flush(IMFSourceReader* This,DWORD index) { 618 return This->lpVtbl->Flush(This,index); 619 } 620 static inline 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 inline 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 inline HRESULT IMFSourceReaderEx_QueryInterface(IMFSourceReaderEx* This,REFIID riid,void **ppvObject) { 797 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 798 } 799 static inline ULONG IMFSourceReaderEx_AddRef(IMFSourceReaderEx* This) { 800 return This->lpVtbl->AddRef(This); 801 } 802 static inline ULONG IMFSourceReaderEx_Release(IMFSourceReaderEx* This) { 803 return This->lpVtbl->Release(This); 804 } 805 /*** IMFSourceReader methods ***/ 806 static inline HRESULT IMFSourceReaderEx_GetStreamSelection(IMFSourceReaderEx* This,DWORD index,WINBOOL *selected) { 807 return This->lpVtbl->GetStreamSelection(This,index,selected); 808 } 809 static inline HRESULT IMFSourceReaderEx_SetStreamSelection(IMFSourceReaderEx* This,DWORD index,WINBOOL selected) { 810 return This->lpVtbl->SetStreamSelection(This,index,selected); 811 } 812 static inline HRESULT IMFSourceReaderEx_GetNativeMediaType(IMFSourceReaderEx* This,DWORD index,DWORD typeindex,IMFMediaType **type) { 813 return This->lpVtbl->GetNativeMediaType(This,index,typeindex,type); 814 } 815 static inline HRESULT IMFSourceReaderEx_GetCurrentMediaType(IMFSourceReaderEx* This,DWORD index,IMFMediaType **type) { 816 return This->lpVtbl->GetCurrentMediaType(This,index,type); 817 } 818 static inline HRESULT IMFSourceReaderEx_SetCurrentMediaType(IMFSourceReaderEx* This,DWORD index,DWORD *reserved,IMFMediaType *type) { 819 return This->lpVtbl->SetCurrentMediaType(This,index,reserved,type); 820 } 821 static inline HRESULT IMFSourceReaderEx_SetCurrentPosition(IMFSourceReaderEx* This,REFGUID format,REFPROPVARIANT position) { 822 return This->lpVtbl->SetCurrentPosition(This,format,position); 823 } 824 static inline 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 inline HRESULT IMFSourceReaderEx_Flush(IMFSourceReaderEx* This,DWORD index) { 828 return This->lpVtbl->Flush(This,index); 829 } 830 static inline 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 inline 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 inline 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 inline HRESULT IMFSourceReaderEx_AddTransformForStream(IMFSourceReaderEx* This,DWORD stream_index,IUnknown *transform) { 841 return This->lpVtbl->AddTransformForStream(This,stream_index,transform); 842 } 843 static inline HRESULT IMFSourceReaderEx_RemoveAllTransformsForStream(IMFSourceReaderEx* This,DWORD stream_index) { 844 return This->lpVtbl->RemoveAllTransformsForStream(This,stream_index); 845 } 846 static inline 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 inline HRESULT IMFSinkWriter_QueryInterface(IMFSinkWriter* This,REFIID riid,void **ppvObject) { 1012 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1013 } 1014 static inline ULONG IMFSinkWriter_AddRef(IMFSinkWriter* This) { 1015 return This->lpVtbl->AddRef(This); 1016 } 1017 static inline ULONG IMFSinkWriter_Release(IMFSinkWriter* This) { 1018 return This->lpVtbl->Release(This); 1019 } 1020 /*** IMFSinkWriter methods ***/ 1021 static inline HRESULT IMFSinkWriter_AddStream(IMFSinkWriter* This,IMFMediaType *type,DWORD *index) { 1022 return This->lpVtbl->AddStream(This,type,index); 1023 } 1024 static inline HRESULT IMFSinkWriter_SetInputMediaType(IMFSinkWriter* This,DWORD index,IMFMediaType *type,IMFAttributes *parameters) { 1025 return This->lpVtbl->SetInputMediaType(This,index,type,parameters); 1026 } 1027 static inline HRESULT IMFSinkWriter_BeginWriting(IMFSinkWriter* This) { 1028 return This->lpVtbl->BeginWriting(This); 1029 } 1030 static inline HRESULT IMFSinkWriter_WriteSample(IMFSinkWriter* This,DWORD index,IMFSample *sample) { 1031 return This->lpVtbl->WriteSample(This,index,sample); 1032 } 1033 static inline HRESULT IMFSinkWriter_SendStreamTick(IMFSinkWriter* This,DWORD index,LONGLONG timestamp) { 1034 return This->lpVtbl->SendStreamTick(This,index,timestamp); 1035 } 1036 static inline HRESULT IMFSinkWriter_PlaceMarker(IMFSinkWriter* This,DWORD index,void *context) { 1037 return This->lpVtbl->PlaceMarker(This,index,context); 1038 } 1039 static inline HRESULT IMFSinkWriter_NotifyEndOfSegment(IMFSinkWriter* This,DWORD index) { 1040 return This->lpVtbl->NotifyEndOfSegment(This,index); 1041 } 1042 static inline HRESULT IMFSinkWriter_Flush(IMFSinkWriter* This,DWORD index) { 1043 return This->lpVtbl->Flush(This,index); 1044 } 1045 static inline HRESULT IMFSinkWriter_Finalize(IMFSinkWriter* This) { 1046 return This->lpVtbl->Finalize(This); 1047 } 1048 static inline 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 inline 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 inline HRESULT IMFSinkWriterEx_QueryInterface(IMFSinkWriterEx* This,REFIID riid,void **ppvObject) { 1190 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1191 } 1192 static inline ULONG IMFSinkWriterEx_AddRef(IMFSinkWriterEx* This) { 1193 return This->lpVtbl->AddRef(This); 1194 } 1195 static inline ULONG IMFSinkWriterEx_Release(IMFSinkWriterEx* This) { 1196 return This->lpVtbl->Release(This); 1197 } 1198 /*** IMFSinkWriter methods ***/ 1199 static inline HRESULT IMFSinkWriterEx_AddStream(IMFSinkWriterEx* This,IMFMediaType *type,DWORD *index) { 1200 return This->lpVtbl->AddStream(This,type,index); 1201 } 1202 static inline HRESULT IMFSinkWriterEx_SetInputMediaType(IMFSinkWriterEx* This,DWORD index,IMFMediaType *type,IMFAttributes *parameters) { 1203 return This->lpVtbl->SetInputMediaType(This,index,type,parameters); 1204 } 1205 static inline HRESULT IMFSinkWriterEx_BeginWriting(IMFSinkWriterEx* This) { 1206 return This->lpVtbl->BeginWriting(This); 1207 } 1208 static inline HRESULT IMFSinkWriterEx_WriteSample(IMFSinkWriterEx* This,DWORD index,IMFSample *sample) { 1209 return This->lpVtbl->WriteSample(This,index,sample); 1210 } 1211 static inline HRESULT IMFSinkWriterEx_SendStreamTick(IMFSinkWriterEx* This,DWORD index,LONGLONG timestamp) { 1212 return This->lpVtbl->SendStreamTick(This,index,timestamp); 1213 } 1214 static inline HRESULT IMFSinkWriterEx_PlaceMarker(IMFSinkWriterEx* This,DWORD index,void *context) { 1215 return This->lpVtbl->PlaceMarker(This,index,context); 1216 } 1217 static inline HRESULT IMFSinkWriterEx_NotifyEndOfSegment(IMFSinkWriterEx* This,DWORD index) { 1218 return This->lpVtbl->NotifyEndOfSegment(This,index); 1219 } 1220 static inline HRESULT IMFSinkWriterEx_Flush(IMFSinkWriterEx* This,DWORD index) { 1221 return This->lpVtbl->Flush(This,index); 1222 } 1223 static inline HRESULT IMFSinkWriterEx_Finalize(IMFSinkWriterEx* This) { 1224 return This->lpVtbl->Finalize(This); 1225 } 1226 static inline 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 inline 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 inline 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 inline HRESULT IMFSinkWriterEncoderConfig_QueryInterface(IMFSinkWriterEncoderConfig* This,REFIID riid,void **ppvObject) { 1315 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1316 } 1317 static inline ULONG IMFSinkWriterEncoderConfig_AddRef(IMFSinkWriterEncoderConfig* This) { 1318 return This->lpVtbl->AddRef(This); 1319 } 1320 static inline ULONG IMFSinkWriterEncoderConfig_Release(IMFSinkWriterEncoderConfig* This) { 1321 return This->lpVtbl->Release(This); 1322 } 1323 /*** IMFSinkWriterEncoderConfig methods ***/ 1324 static inline 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 inline 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 inline HRESULT IMFSinkWriterCallback_QueryInterface(IMFSinkWriterCallback* This,REFIID riid,void **ppvObject) { 1405 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1406 } 1407 static inline ULONG IMFSinkWriterCallback_AddRef(IMFSinkWriterCallback* This) { 1408 return This->lpVtbl->AddRef(This); 1409 } 1410 static inline ULONG IMFSinkWriterCallback_Release(IMFSinkWriterCallback* This) { 1411 return This->lpVtbl->Release(This); 1412 } 1413 /*** IMFSinkWriterCallback methods ***/ 1414 static inline HRESULT IMFSinkWriterCallback_OnFinalize(IMFSinkWriterCallback* This,HRESULT status) { 1415 return This->lpVtbl->OnFinalize(This,status); 1416 } 1417 static inline 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 inline HRESULT IMFSinkWriterCallback2_QueryInterface(IMFSinkWriterCallback2* This,REFIID riid,void **ppvObject) { 1507 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1508 } 1509 static inline ULONG IMFSinkWriterCallback2_AddRef(IMFSinkWriterCallback2* This) { 1510 return This->lpVtbl->AddRef(This); 1511 } 1512 static inline ULONG IMFSinkWriterCallback2_Release(IMFSinkWriterCallback2* This) { 1513 return This->lpVtbl->Release(This); 1514 } 1515 /*** IMFSinkWriterCallback methods ***/ 1516 static inline HRESULT IMFSinkWriterCallback2_OnFinalize(IMFSinkWriterCallback2* This,HRESULT status) { 1517 return This->lpVtbl->OnFinalize(This,status); 1518 } 1519 static inline 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 inline HRESULT IMFSinkWriterCallback2_OnTransformChange(IMFSinkWriterCallback2* This) { 1524 return This->lpVtbl->OnTransformChange(This); 1525 } 1526 static inline 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 inline HRESULT IMFReadWriteClassFactory_QueryInterface(IMFReadWriteClassFactory* This,REFIID riid,void **ppvObject) { 1618 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1619 } 1620 static inline ULONG IMFReadWriteClassFactory_AddRef(IMFReadWriteClassFactory* This) { 1621 return This->lpVtbl->AddRef(This); 1622 } 1623 static inline ULONG IMFReadWriteClassFactory_Release(IMFReadWriteClassFactory* This) { 1624 return This->lpVtbl->Release(This); 1625 } 1626 /*** IMFReadWriteClassFactory methods ***/ 1627 static inline 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 inline 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__ */