1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-joshualang/src/mingw-w64-svn-r5861/mingw-w64-headers/include/mftransform.idl - Do not edit ***/ 2 3 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 4 #define __REQUIRED_RPCNDR_H_VERSION__ 475 5 #endif 6 7 #include <rpc.h> 8 #include <rpcndr.h> 9 10 #ifndef COM_NO_WINDOWS_H 11 #include <windows.h> 12 #include <ole2.h> 13 #endif 14 15 #ifndef __mftransform_h__ 16 #define __mftransform_h__ 17 18 /* Forward declarations */ 19 20 #ifndef __IMFTransform_FWD_DEFINED__ 21 #define __IMFTransform_FWD_DEFINED__ 22 typedef interface IMFTransform IMFTransform; 23 #endif 24 25 /* Headers for imported files */ 26 27 #include <mfobjects.h> 28 29 #ifdef __cplusplus 30 extern "C" { 31 #endif 32 33 enum _MFT_DRAIN_TYPE { 34 MFT_DRAIN_PRODUCE_TAILS = 0x00000000, 35 MFT_DRAIN_NO_TAILS = 0x00000001 36 }; 37 38 enum _MFT_INPUT_STATUS_FLAGS { 39 MFT_INPUT_STATUS_ACCEPT_DATA = 0x00000001 40 }; 41 42 enum _MFT_INPUT_DATA_BUFFER_FLAGS { 43 MFT_INPUT_DATA_BUFFER_PLACEHOLDER = 0xFFFFFFFF 44 }; 45 46 enum _MFT_OUTPUT_STREAM_INFO_FLAGS { 47 MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x00000001, 48 MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, 49 MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 0x00000004, 50 MFT_OUTPUT_STREAM_DISCARDABLE = 0x00000008, 51 MFT_OUTPUT_STREAM_OPTIONAL = 0x00000010, 52 MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 0x00000100, 53 MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 0x00000200, 54 MFT_OUTPUT_STREAM_LAZY_READ = 0x00000400, 55 MFT_OUTPUT_STREAM_REMOVABLE = 0x00000800 56 }; 57 58 enum _MFT_OUTPUT_STATUS_FLAGS { 59 MFT_OUTPUT_STATUS_SAMPLE_READY = 0x00000001 60 }; 61 62 enum _MFT_OUTPUT_DATA_BUFFER_FLAGS { 63 MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x01000000, 64 MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x00000100, 65 MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x00000200, 66 MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x00000300 67 }; 68 69 enum _MFT_INPUT_STREAM_INFO_FLAGS { 70 MFT_INPUT_STREAM_WHOLE_SAMPLES = 0x00000001, 71 MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, 72 MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE = 0x00000004, 73 MFT_INPUT_STREAM_HOLDS_BUFFERS = 0x00000008, 74 MFT_INPUT_STREAM_DOES_NOT_ADDREF = 0x00000100, 75 MFT_INPUT_STREAM_REMOVABLE = 0x00000200, 76 MFT_INPUT_STREAM_OPTIONAL = 0x00000400, 77 MFT_INPUT_STREAM_PROCESSES_IN_PLACE = 0x00000800 78 }; 79 80 typedef enum _VSS_HARDWARE_OPTIONS { 81 VSS_BREAKEX_FLAG_MASK_LUNS = 0x00000001, 82 VSS_BREAKEX_FLAG_MAKE_READ_WRITE = 0x00000002, 83 VSS_BREAKEX_FLAG_REVERT_IDENTITY_ALL = 0x00000004, 84 VSS_BREAKEX_FLAG_REVERT_IDENTITY_NONE = 0x00000008, 85 VSS_ONLUNSTATECHANGE_NOTIFY_READ_WRITE = 0x00000100, 86 VSS_ONLUNSTATECHANGE_NOTIFY_LUN_PRE_RECOVERY = 0x00000200, 87 VSS_ONLUNSTATECHANGE_NOTIFY_LUN_POST_RECOVERY = 0x00000400, 88 VSS_ONLUNSTATECHANGE_DO_MASK_LUNS = 0x00000800 89 } VSS_HARDWARE_OPTIONS, *PVSS_HARDWARE_OPTIONS; 90 enum _MFT_SET_TYPE_FLAGS { 91 MFT_SET_TYPE_TEST_ONLY = 0x1 92 }; 93 94 enum _MFT_PROCESS_OUTPUT_STATUS { 95 MFT_PROCESS_OUTPUT_STATUS_NEW_STREAMS = 0x100 96 }; 97 98 enum _MFT_PROCESS_OUTPUT_FLAGS { 99 MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1 100 }; 101 102 typedef enum _MFT_MESSAGE_TYPE { 103 MFT_MESSAGE_COMMAND_FLUSH = 0x0, 104 MFT_MESSAGE_COMMAND_DRAIN = 0x1, 105 MFT_MESSAGE_SET_D3D_MANAGER = 0x2, 106 MFT_MESSAGE_NOTIFY_BEGIN_STREAMING = 0x10000000, 107 MFT_MESSAGE_NOTIFY_END_STREAMING = 0x10000001, 108 MFT_MESSAGE_NOTIFY_END_OF_STREAM = 0x10000002, 109 MFT_MESSAGE_NOTIFY_START_OF_STREAM = 0x10000003, 110 MFT_MESSAGE_COMMAND_MARKER = 0x20000000 111 } MFT_MESSAGE_TYPE; 112 typedef struct _MFT_INPUT_STREAM_INFO { 113 LONGLONG hnsMaxLatency; 114 DWORD dwFlags; 115 DWORD cbSize; 116 DWORD cbMaxLookahead; 117 DWORD cbAlignment; 118 } MFT_INPUT_STREAM_INFO; 119 typedef struct _MFT_OUTPUT_STREAM_INFO { 120 DWORD dwFlags; 121 DWORD cbSize; 122 DWORD cbAlignment; 123 } MFT_OUTPUT_STREAM_INFO; 124 typedef struct _MFT_OUTPUT_DATA_BUFFER { 125 DWORD dwStreamID; 126 IMFSample *pSample; 127 DWORD dwStatus; 128 IMFCollection *pEvents; 129 } MFT_OUTPUT_DATA_BUFFER; 130 /***************************************************************************** 131 * IMFTransform interface 132 */ 133 #ifndef __IMFTransform_INTERFACE_DEFINED__ 134 #define __IMFTransform_INTERFACE_DEFINED__ 135 136 DEFINE_GUID(IID_IMFTransform, 0xbf94c121, 0x5b05, 0x4e6f, 0x80,0x00, 0xba,0x59,0x89,0x61,0x41,0x4d); 137 #if defined(__cplusplus) && !defined(CINTERFACE) 138 MIDL_INTERFACE("bf94c121-5b05-4e6f-8000-ba598961414d") 139 IMFTransform : public IUnknown 140 { 141 virtual HRESULT STDMETHODCALLTYPE GetStreamLimits( 142 DWORD *pdwInputMinimum, 143 DWORD *pdwInputMaximum, 144 DWORD *pdwOutputMinimum, 145 DWORD *pdwOutputMaximum) = 0; 146 147 virtual HRESULT STDMETHODCALLTYPE GetStreamCount( 148 DWORD *pcInputStreams, 149 DWORD *pcOutputStreams) = 0; 150 151 virtual HRESULT STDMETHODCALLTYPE GetStreamIDs( 152 DWORD dwInputIDArraySize, 153 DWORD *pdwInputIDs, 154 DWORD dwOutputIDArraySize, 155 DWORD *pdwOutputIDs) = 0; 156 157 virtual HRESULT STDMETHODCALLTYPE GetInputStreamInfo( 158 DWORD dwInputStreamID, 159 MFT_INPUT_STREAM_INFO *pStreamInfo) = 0; 160 161 virtual HRESULT STDMETHODCALLTYPE GetOutputStreamInfo( 162 DWORD dwOutputStreamID, 163 MFT_OUTPUT_STREAM_INFO *pStreamInfo) = 0; 164 165 virtual HRESULT STDMETHODCALLTYPE GetAttributes( 166 IMFAttributes **pAttributes) = 0; 167 168 virtual HRESULT STDMETHODCALLTYPE GetInputStreamAttributes( 169 DWORD dwInputStreamID, 170 IMFAttributes **pAttributes) = 0; 171 172 virtual HRESULT STDMETHODCALLTYPE GetOutputStreamAttributes( 173 DWORD dwOutputStreamID, 174 IMFAttributes **pAttributes) = 0; 175 176 virtual HRESULT STDMETHODCALLTYPE DeleteInputStream( 177 DWORD dwStreamID) = 0; 178 179 virtual HRESULT STDMETHODCALLTYPE AddInputStreams( 180 DWORD cStreams, 181 DWORD *adwStreamIDs) = 0; 182 183 virtual HRESULT STDMETHODCALLTYPE GetInputAvailableType( 184 DWORD dwInputStreamID, 185 DWORD dwTypeIndex, 186 IMFMediaType **ppType) = 0; 187 188 virtual HRESULT STDMETHODCALLTYPE GetOutputAvailableType( 189 DWORD dwOutputStreamID, 190 DWORD dwTypeIndex, 191 IMFMediaType **ppType) = 0; 192 193 virtual HRESULT STDMETHODCALLTYPE SetInputType( 194 DWORD dwInputStreamID, 195 IMFMediaType *pType, 196 DWORD dwFlags) = 0; 197 198 virtual HRESULT STDMETHODCALLTYPE SetOutputType( 199 DWORD dwOutputStreamID, 200 IMFMediaType *pType, 201 DWORD dwFlags) = 0; 202 203 virtual HRESULT STDMETHODCALLTYPE GetInputCurrentType( 204 DWORD dwInputStreamID, 205 IMFMediaType **ppType) = 0; 206 207 virtual HRESULT STDMETHODCALLTYPE GetOutputCurrentType( 208 DWORD dwOutputStreamID, 209 IMFMediaType **ppType) = 0; 210 211 virtual HRESULT STDMETHODCALLTYPE GetInputStatus( 212 DWORD dwInputStreamID, 213 DWORD *pdwFlags) = 0; 214 215 virtual HRESULT STDMETHODCALLTYPE GetOutputStatus( 216 DWORD *pdwFlags) = 0; 217 218 virtual HRESULT STDMETHODCALLTYPE SetOutputBounds( 219 LONGLONG hnsLowerBound, 220 LONGLONG hnsUpperBound) = 0; 221 222 virtual HRESULT STDMETHODCALLTYPE ProcessEvent( 223 DWORD dwInputStreamID, 224 IMFMediaEvent *pEvent) = 0; 225 226 virtual HRESULT STDMETHODCALLTYPE ProcessMessage( 227 MFT_MESSAGE_TYPE eMessage, 228 ULONG_PTR ulParam) = 0; 229 230 virtual HRESULT STDMETHODCALLTYPE ProcessInput( 231 DWORD dwInputStreamID, 232 IMFSample *pSample, 233 DWORD dwFlags) = 0; 234 235 virtual HRESULT STDMETHODCALLTYPE ProcessOutput( 236 DWORD dwFlags, 237 DWORD cOutputBufferCount, 238 MFT_OUTPUT_DATA_BUFFER *pOutputSamples, 239 DWORD *pdwStatus) = 0; 240 241 }; 242 #ifdef __CRT_UUID_DECL 243 __CRT_UUID_DECL(IMFTransform, 0xbf94c121, 0x5b05, 0x4e6f, 0x80,0x00, 0xba,0x59,0x89,0x61,0x41,0x4d) 244 #endif 245 #else 246 typedef struct IMFTransformVtbl { 247 BEGIN_INTERFACE 248 249 /*** IUnknown methods ***/ 250 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 251 IMFTransform* This, 252 REFIID riid, 253 void **ppvObject); 254 255 ULONG (STDMETHODCALLTYPE *AddRef)( 256 IMFTransform* This); 257 258 ULONG (STDMETHODCALLTYPE *Release)( 259 IMFTransform* This); 260 261 /*** IMFTransform methods ***/ 262 HRESULT (STDMETHODCALLTYPE *GetStreamLimits)( 263 IMFTransform* This, 264 DWORD *pdwInputMinimum, 265 DWORD *pdwInputMaximum, 266 DWORD *pdwOutputMinimum, 267 DWORD *pdwOutputMaximum); 268 269 HRESULT (STDMETHODCALLTYPE *GetStreamCount)( 270 IMFTransform* This, 271 DWORD *pcInputStreams, 272 DWORD *pcOutputStreams); 273 274 HRESULT (STDMETHODCALLTYPE *GetStreamIDs)( 275 IMFTransform* This, 276 DWORD dwInputIDArraySize, 277 DWORD *pdwInputIDs, 278 DWORD dwOutputIDArraySize, 279 DWORD *pdwOutputIDs); 280 281 HRESULT (STDMETHODCALLTYPE *GetInputStreamInfo)( 282 IMFTransform* This, 283 DWORD dwInputStreamID, 284 MFT_INPUT_STREAM_INFO *pStreamInfo); 285 286 HRESULT (STDMETHODCALLTYPE *GetOutputStreamInfo)( 287 IMFTransform* This, 288 DWORD dwOutputStreamID, 289 MFT_OUTPUT_STREAM_INFO *pStreamInfo); 290 291 HRESULT (STDMETHODCALLTYPE *GetAttributes)( 292 IMFTransform* This, 293 IMFAttributes **pAttributes); 294 295 HRESULT (STDMETHODCALLTYPE *GetInputStreamAttributes)( 296 IMFTransform* This, 297 DWORD dwInputStreamID, 298 IMFAttributes **pAttributes); 299 300 HRESULT (STDMETHODCALLTYPE *GetOutputStreamAttributes)( 301 IMFTransform* This, 302 DWORD dwOutputStreamID, 303 IMFAttributes **pAttributes); 304 305 HRESULT (STDMETHODCALLTYPE *DeleteInputStream)( 306 IMFTransform* This, 307 DWORD dwStreamID); 308 309 HRESULT (STDMETHODCALLTYPE *AddInputStreams)( 310 IMFTransform* This, 311 DWORD cStreams, 312 DWORD *adwStreamIDs); 313 314 HRESULT (STDMETHODCALLTYPE *GetInputAvailableType)( 315 IMFTransform* This, 316 DWORD dwInputStreamID, 317 DWORD dwTypeIndex, 318 IMFMediaType **ppType); 319 320 HRESULT (STDMETHODCALLTYPE *GetOutputAvailableType)( 321 IMFTransform* This, 322 DWORD dwOutputStreamID, 323 DWORD dwTypeIndex, 324 IMFMediaType **ppType); 325 326 HRESULT (STDMETHODCALLTYPE *SetInputType)( 327 IMFTransform* This, 328 DWORD dwInputStreamID, 329 IMFMediaType *pType, 330 DWORD dwFlags); 331 332 HRESULT (STDMETHODCALLTYPE *SetOutputType)( 333 IMFTransform* This, 334 DWORD dwOutputStreamID, 335 IMFMediaType *pType, 336 DWORD dwFlags); 337 338 HRESULT (STDMETHODCALLTYPE *GetInputCurrentType)( 339 IMFTransform* This, 340 DWORD dwInputStreamID, 341 IMFMediaType **ppType); 342 343 HRESULT (STDMETHODCALLTYPE *GetOutputCurrentType)( 344 IMFTransform* This, 345 DWORD dwOutputStreamID, 346 IMFMediaType **ppType); 347 348 HRESULT (STDMETHODCALLTYPE *GetInputStatus)( 349 IMFTransform* This, 350 DWORD dwInputStreamID, 351 DWORD *pdwFlags); 352 353 HRESULT (STDMETHODCALLTYPE *GetOutputStatus)( 354 IMFTransform* This, 355 DWORD *pdwFlags); 356 357 HRESULT (STDMETHODCALLTYPE *SetOutputBounds)( 358 IMFTransform* This, 359 LONGLONG hnsLowerBound, 360 LONGLONG hnsUpperBound); 361 362 HRESULT (STDMETHODCALLTYPE *ProcessEvent)( 363 IMFTransform* This, 364 DWORD dwInputStreamID, 365 IMFMediaEvent *pEvent); 366 367 HRESULT (STDMETHODCALLTYPE *ProcessMessage)( 368 IMFTransform* This, 369 MFT_MESSAGE_TYPE eMessage, 370 ULONG_PTR ulParam); 371 372 HRESULT (STDMETHODCALLTYPE *ProcessInput)( 373 IMFTransform* This, 374 DWORD dwInputStreamID, 375 IMFSample *pSample, 376 DWORD dwFlags); 377 378 HRESULT (STDMETHODCALLTYPE *ProcessOutput)( 379 IMFTransform* This, 380 DWORD dwFlags, 381 DWORD cOutputBufferCount, 382 MFT_OUTPUT_DATA_BUFFER *pOutputSamples, 383 DWORD *pdwStatus); 384 385 END_INTERFACE 386 } IMFTransformVtbl; 387 interface IMFTransform { 388 CONST_VTBL IMFTransformVtbl* lpVtbl; 389 }; 390 391 #ifdef COBJMACROS 392 #ifndef WIDL_C_INLINE_WRAPPERS 393 /*** IUnknown methods ***/ 394 #define IMFTransform_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 395 #define IMFTransform_AddRef(This) (This)->lpVtbl->AddRef(This) 396 #define IMFTransform_Release(This) (This)->lpVtbl->Release(This) 397 /*** IMFTransform methods ***/ 398 #define IMFTransform_GetStreamLimits(This,pdwInputMinimum,pdwInputMaximum,pdwOutputMinimum,pdwOutputMaximum) (This)->lpVtbl->GetStreamLimits(This,pdwInputMinimum,pdwInputMaximum,pdwOutputMinimum,pdwOutputMaximum) 399 #define IMFTransform_GetStreamCount(This,pcInputStreams,pcOutputStreams) (This)->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams) 400 #define IMFTransform_GetStreamIDs(This,dwInputIDArraySize,pdwInputIDs,dwOutputIDArraySize,pdwOutputIDs) (This)->lpVtbl->GetStreamIDs(This,dwInputIDArraySize,pdwInputIDs,dwOutputIDArraySize,pdwOutputIDs) 401 #define IMFTransform_GetInputStreamInfo(This,dwInputStreamID,pStreamInfo) (This)->lpVtbl->GetInputStreamInfo(This,dwInputStreamID,pStreamInfo) 402 #define IMFTransform_GetOutputStreamInfo(This,dwOutputStreamID,pStreamInfo) (This)->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamID,pStreamInfo) 403 #define IMFTransform_GetAttributes(This,pAttributes) (This)->lpVtbl->GetAttributes(This,pAttributes) 404 #define IMFTransform_GetInputStreamAttributes(This,dwInputStreamID,pAttributes) (This)->lpVtbl->GetInputStreamAttributes(This,dwInputStreamID,pAttributes) 405 #define IMFTransform_GetOutputStreamAttributes(This,dwOutputStreamID,pAttributes) (This)->lpVtbl->GetOutputStreamAttributes(This,dwOutputStreamID,pAttributes) 406 #define IMFTransform_DeleteInputStream(This,dwStreamID) (This)->lpVtbl->DeleteInputStream(This,dwStreamID) 407 #define IMFTransform_AddInputStreams(This,cStreams,adwStreamIDs) (This)->lpVtbl->AddInputStreams(This,cStreams,adwStreamIDs) 408 #define IMFTransform_GetInputAvailableType(This,dwInputStreamID,dwTypeIndex,ppType) (This)->lpVtbl->GetInputAvailableType(This,dwInputStreamID,dwTypeIndex,ppType) 409 #define IMFTransform_GetOutputAvailableType(This,dwOutputStreamID,dwTypeIndex,ppType) (This)->lpVtbl->GetOutputAvailableType(This,dwOutputStreamID,dwTypeIndex,ppType) 410 #define IMFTransform_SetInputType(This,dwInputStreamID,pType,dwFlags) (This)->lpVtbl->SetInputType(This,dwInputStreamID,pType,dwFlags) 411 #define IMFTransform_SetOutputType(This,dwOutputStreamID,pType,dwFlags) (This)->lpVtbl->SetOutputType(This,dwOutputStreamID,pType,dwFlags) 412 #define IMFTransform_GetInputCurrentType(This,dwInputStreamID,ppType) (This)->lpVtbl->GetInputCurrentType(This,dwInputStreamID,ppType) 413 #define IMFTransform_GetOutputCurrentType(This,dwOutputStreamID,ppType) (This)->lpVtbl->GetOutputCurrentType(This,dwOutputStreamID,ppType) 414 #define IMFTransform_GetInputStatus(This,dwInputStreamID,pdwFlags) (This)->lpVtbl->GetInputStatus(This,dwInputStreamID,pdwFlags) 415 #define IMFTransform_GetOutputStatus(This,pdwFlags) (This)->lpVtbl->GetOutputStatus(This,pdwFlags) 416 #define IMFTransform_SetOutputBounds(This,hnsLowerBound,hnsUpperBound) (This)->lpVtbl->SetOutputBounds(This,hnsLowerBound,hnsUpperBound) 417 #define IMFTransform_ProcessEvent(This,dwInputStreamID,pEvent) (This)->lpVtbl->ProcessEvent(This,dwInputStreamID,pEvent) 418 #define IMFTransform_ProcessMessage(This,eMessage,ulParam) (This)->lpVtbl->ProcessMessage(This,eMessage,ulParam) 419 #define IMFTransform_ProcessInput(This,dwInputStreamID,pSample,dwFlags) (This)->lpVtbl->ProcessInput(This,dwInputStreamID,pSample,dwFlags) 420 #define IMFTransform_ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputSamples,pdwStatus) (This)->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputSamples,pdwStatus) 421 #else 422 /*** IUnknown methods ***/ 423 static FORCEINLINE HRESULT IMFTransform_QueryInterface(IMFTransform* This,REFIID riid,void **ppvObject) { 424 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 425 } 426 static FORCEINLINE ULONG IMFTransform_AddRef(IMFTransform* This) { 427 return This->lpVtbl->AddRef(This); 428 } 429 static FORCEINLINE ULONG IMFTransform_Release(IMFTransform* This) { 430 return This->lpVtbl->Release(This); 431 } 432 /*** IMFTransform methods ***/ 433 static FORCEINLINE HRESULT IMFTransform_GetStreamLimits(IMFTransform* This,DWORD *pdwInputMinimum,DWORD *pdwInputMaximum,DWORD *pdwOutputMinimum,DWORD *pdwOutputMaximum) { 434 return This->lpVtbl->GetStreamLimits(This,pdwInputMinimum,pdwInputMaximum,pdwOutputMinimum,pdwOutputMaximum); 435 } 436 static FORCEINLINE HRESULT IMFTransform_GetStreamCount(IMFTransform* This,DWORD *pcInputStreams,DWORD *pcOutputStreams) { 437 return This->lpVtbl->GetStreamCount(This,pcInputStreams,pcOutputStreams); 438 } 439 static FORCEINLINE HRESULT IMFTransform_GetStreamIDs(IMFTransform* This,DWORD dwInputIDArraySize,DWORD *pdwInputIDs,DWORD dwOutputIDArraySize,DWORD *pdwOutputIDs) { 440 return This->lpVtbl->GetStreamIDs(This,dwInputIDArraySize,pdwInputIDs,dwOutputIDArraySize,pdwOutputIDs); 441 } 442 static FORCEINLINE HRESULT IMFTransform_GetInputStreamInfo(IMFTransform* This,DWORD dwInputStreamID,MFT_INPUT_STREAM_INFO *pStreamInfo) { 443 return This->lpVtbl->GetInputStreamInfo(This,dwInputStreamID,pStreamInfo); 444 } 445 static FORCEINLINE HRESULT IMFTransform_GetOutputStreamInfo(IMFTransform* This,DWORD dwOutputStreamID,MFT_OUTPUT_STREAM_INFO *pStreamInfo) { 446 return This->lpVtbl->GetOutputStreamInfo(This,dwOutputStreamID,pStreamInfo); 447 } 448 static FORCEINLINE HRESULT IMFTransform_GetAttributes(IMFTransform* This,IMFAttributes **pAttributes) { 449 return This->lpVtbl->GetAttributes(This,pAttributes); 450 } 451 static FORCEINLINE HRESULT IMFTransform_GetInputStreamAttributes(IMFTransform* This,DWORD dwInputStreamID,IMFAttributes **pAttributes) { 452 return This->lpVtbl->GetInputStreamAttributes(This,dwInputStreamID,pAttributes); 453 } 454 static FORCEINLINE HRESULT IMFTransform_GetOutputStreamAttributes(IMFTransform* This,DWORD dwOutputStreamID,IMFAttributes **pAttributes) { 455 return This->lpVtbl->GetOutputStreamAttributes(This,dwOutputStreamID,pAttributes); 456 } 457 static FORCEINLINE HRESULT IMFTransform_DeleteInputStream(IMFTransform* This,DWORD dwStreamID) { 458 return This->lpVtbl->DeleteInputStream(This,dwStreamID); 459 } 460 static FORCEINLINE HRESULT IMFTransform_AddInputStreams(IMFTransform* This,DWORD cStreams,DWORD *adwStreamIDs) { 461 return This->lpVtbl->AddInputStreams(This,cStreams,adwStreamIDs); 462 } 463 static FORCEINLINE HRESULT IMFTransform_GetInputAvailableType(IMFTransform* This,DWORD dwInputStreamID,DWORD dwTypeIndex,IMFMediaType **ppType) { 464 return This->lpVtbl->GetInputAvailableType(This,dwInputStreamID,dwTypeIndex,ppType); 465 } 466 static FORCEINLINE HRESULT IMFTransform_GetOutputAvailableType(IMFTransform* This,DWORD dwOutputStreamID,DWORD dwTypeIndex,IMFMediaType **ppType) { 467 return This->lpVtbl->GetOutputAvailableType(This,dwOutputStreamID,dwTypeIndex,ppType); 468 } 469 static FORCEINLINE HRESULT IMFTransform_SetInputType(IMFTransform* This,DWORD dwInputStreamID,IMFMediaType *pType,DWORD dwFlags) { 470 return This->lpVtbl->SetInputType(This,dwInputStreamID,pType,dwFlags); 471 } 472 static FORCEINLINE HRESULT IMFTransform_SetOutputType(IMFTransform* This,DWORD dwOutputStreamID,IMFMediaType *pType,DWORD dwFlags) { 473 return This->lpVtbl->SetOutputType(This,dwOutputStreamID,pType,dwFlags); 474 } 475 static FORCEINLINE HRESULT IMFTransform_GetInputCurrentType(IMFTransform* This,DWORD dwInputStreamID,IMFMediaType **ppType) { 476 return This->lpVtbl->GetInputCurrentType(This,dwInputStreamID,ppType); 477 } 478 static FORCEINLINE HRESULT IMFTransform_GetOutputCurrentType(IMFTransform* This,DWORD dwOutputStreamID,IMFMediaType **ppType) { 479 return This->lpVtbl->GetOutputCurrentType(This,dwOutputStreamID,ppType); 480 } 481 static FORCEINLINE HRESULT IMFTransform_GetInputStatus(IMFTransform* This,DWORD dwInputStreamID,DWORD *pdwFlags) { 482 return This->lpVtbl->GetInputStatus(This,dwInputStreamID,pdwFlags); 483 } 484 static FORCEINLINE HRESULT IMFTransform_GetOutputStatus(IMFTransform* This,DWORD *pdwFlags) { 485 return This->lpVtbl->GetOutputStatus(This,pdwFlags); 486 } 487 static FORCEINLINE HRESULT IMFTransform_SetOutputBounds(IMFTransform* This,LONGLONG hnsLowerBound,LONGLONG hnsUpperBound) { 488 return This->lpVtbl->SetOutputBounds(This,hnsLowerBound,hnsUpperBound); 489 } 490 static FORCEINLINE HRESULT IMFTransform_ProcessEvent(IMFTransform* This,DWORD dwInputStreamID,IMFMediaEvent *pEvent) { 491 return This->lpVtbl->ProcessEvent(This,dwInputStreamID,pEvent); 492 } 493 static FORCEINLINE HRESULT IMFTransform_ProcessMessage(IMFTransform* This,MFT_MESSAGE_TYPE eMessage,ULONG_PTR ulParam) { 494 return This->lpVtbl->ProcessMessage(This,eMessage,ulParam); 495 } 496 static FORCEINLINE HRESULT IMFTransform_ProcessInput(IMFTransform* This,DWORD dwInputStreamID,IMFSample *pSample,DWORD dwFlags) { 497 return This->lpVtbl->ProcessInput(This,dwInputStreamID,pSample,dwFlags); 498 } 499 static FORCEINLINE HRESULT IMFTransform_ProcessOutput(IMFTransform* This,DWORD dwFlags,DWORD cOutputBufferCount,MFT_OUTPUT_DATA_BUFFER *pOutputSamples,DWORD *pdwStatus) { 500 return This->lpVtbl->ProcessOutput(This,dwFlags,cOutputBufferCount,pOutputSamples,pdwStatus); 501 } 502 #endif 503 #endif 504 505 #endif 506 507 HRESULT STDMETHODCALLTYPE IMFTransform_GetStreamLimits_Proxy( 508 IMFTransform* This, 509 DWORD *pdwInputMinimum, 510 DWORD *pdwInputMaximum, 511 DWORD *pdwOutputMinimum, 512 DWORD *pdwOutputMaximum); 513 void __RPC_STUB IMFTransform_GetStreamLimits_Stub( 514 IRpcStubBuffer* This, 515 IRpcChannelBuffer* pRpcChannelBuffer, 516 PRPC_MESSAGE pRpcMessage, 517 DWORD* pdwStubPhase); 518 HRESULT STDMETHODCALLTYPE IMFTransform_GetStreamCount_Proxy( 519 IMFTransform* This, 520 DWORD *pcInputStreams, 521 DWORD *pcOutputStreams); 522 void __RPC_STUB IMFTransform_GetStreamCount_Stub( 523 IRpcStubBuffer* This, 524 IRpcChannelBuffer* pRpcChannelBuffer, 525 PRPC_MESSAGE pRpcMessage, 526 DWORD* pdwStubPhase); 527 HRESULT STDMETHODCALLTYPE IMFTransform_GetStreamIDs_Proxy( 528 IMFTransform* This, 529 DWORD dwInputIDArraySize, 530 DWORD *pdwInputIDs, 531 DWORD dwOutputIDArraySize, 532 DWORD *pdwOutputIDs); 533 void __RPC_STUB IMFTransform_GetStreamIDs_Stub( 534 IRpcStubBuffer* This, 535 IRpcChannelBuffer* pRpcChannelBuffer, 536 PRPC_MESSAGE pRpcMessage, 537 DWORD* pdwStubPhase); 538 HRESULT STDMETHODCALLTYPE IMFTransform_GetInputStreamInfo_Proxy( 539 IMFTransform* This, 540 DWORD dwInputStreamID, 541 MFT_INPUT_STREAM_INFO *pStreamInfo); 542 void __RPC_STUB IMFTransform_GetInputStreamInfo_Stub( 543 IRpcStubBuffer* This, 544 IRpcChannelBuffer* pRpcChannelBuffer, 545 PRPC_MESSAGE pRpcMessage, 546 DWORD* pdwStubPhase); 547 HRESULT STDMETHODCALLTYPE IMFTransform_GetOutputStreamInfo_Proxy( 548 IMFTransform* This, 549 DWORD dwOutputStreamID, 550 MFT_OUTPUT_STREAM_INFO *pStreamInfo); 551 void __RPC_STUB IMFTransform_GetOutputStreamInfo_Stub( 552 IRpcStubBuffer* This, 553 IRpcChannelBuffer* pRpcChannelBuffer, 554 PRPC_MESSAGE pRpcMessage, 555 DWORD* pdwStubPhase); 556 HRESULT STDMETHODCALLTYPE IMFTransform_GetAttributes_Proxy( 557 IMFTransform* This, 558 IMFAttributes **pAttributes); 559 void __RPC_STUB IMFTransform_GetAttributes_Stub( 560 IRpcStubBuffer* This, 561 IRpcChannelBuffer* pRpcChannelBuffer, 562 PRPC_MESSAGE pRpcMessage, 563 DWORD* pdwStubPhase); 564 HRESULT STDMETHODCALLTYPE IMFTransform_GetInputStreamAttributes_Proxy( 565 IMFTransform* This, 566 DWORD dwInputStreamID, 567 IMFAttributes **pAttributes); 568 void __RPC_STUB IMFTransform_GetInputStreamAttributes_Stub( 569 IRpcStubBuffer* This, 570 IRpcChannelBuffer* pRpcChannelBuffer, 571 PRPC_MESSAGE pRpcMessage, 572 DWORD* pdwStubPhase); 573 HRESULT STDMETHODCALLTYPE IMFTransform_GetOutputStreamAttributes_Proxy( 574 IMFTransform* This, 575 DWORD dwOutputStreamID, 576 IMFAttributes **pAttributes); 577 void __RPC_STUB IMFTransform_GetOutputStreamAttributes_Stub( 578 IRpcStubBuffer* This, 579 IRpcChannelBuffer* pRpcChannelBuffer, 580 PRPC_MESSAGE pRpcMessage, 581 DWORD* pdwStubPhase); 582 HRESULT STDMETHODCALLTYPE IMFTransform_DeleteInputStream_Proxy( 583 IMFTransform* This, 584 DWORD dwStreamID); 585 void __RPC_STUB IMFTransform_DeleteInputStream_Stub( 586 IRpcStubBuffer* This, 587 IRpcChannelBuffer* pRpcChannelBuffer, 588 PRPC_MESSAGE pRpcMessage, 589 DWORD* pdwStubPhase); 590 HRESULT STDMETHODCALLTYPE IMFTransform_AddInputStreams_Proxy( 591 IMFTransform* This, 592 DWORD cStreams, 593 DWORD *adwStreamIDs); 594 void __RPC_STUB IMFTransform_AddInputStreams_Stub( 595 IRpcStubBuffer* This, 596 IRpcChannelBuffer* pRpcChannelBuffer, 597 PRPC_MESSAGE pRpcMessage, 598 DWORD* pdwStubPhase); 599 HRESULT STDMETHODCALLTYPE IMFTransform_GetInputAvailableType_Proxy( 600 IMFTransform* This, 601 DWORD dwInputStreamID, 602 DWORD dwTypeIndex, 603 IMFMediaType **ppType); 604 void __RPC_STUB IMFTransform_GetInputAvailableType_Stub( 605 IRpcStubBuffer* This, 606 IRpcChannelBuffer* pRpcChannelBuffer, 607 PRPC_MESSAGE pRpcMessage, 608 DWORD* pdwStubPhase); 609 HRESULT STDMETHODCALLTYPE IMFTransform_GetOutputAvailableType_Proxy( 610 IMFTransform* This, 611 DWORD dwOutputStreamID, 612 DWORD dwTypeIndex, 613 IMFMediaType **ppType); 614 void __RPC_STUB IMFTransform_GetOutputAvailableType_Stub( 615 IRpcStubBuffer* This, 616 IRpcChannelBuffer* pRpcChannelBuffer, 617 PRPC_MESSAGE pRpcMessage, 618 DWORD* pdwStubPhase); 619 HRESULT STDMETHODCALLTYPE IMFTransform_SetInputType_Proxy( 620 IMFTransform* This, 621 DWORD dwInputStreamID, 622 IMFMediaType *pType, 623 DWORD dwFlags); 624 void __RPC_STUB IMFTransform_SetInputType_Stub( 625 IRpcStubBuffer* This, 626 IRpcChannelBuffer* pRpcChannelBuffer, 627 PRPC_MESSAGE pRpcMessage, 628 DWORD* pdwStubPhase); 629 HRESULT STDMETHODCALLTYPE IMFTransform_SetOutputType_Proxy( 630 IMFTransform* This, 631 DWORD dwOutputStreamID, 632 IMFMediaType *pType, 633 DWORD dwFlags); 634 void __RPC_STUB IMFTransform_SetOutputType_Stub( 635 IRpcStubBuffer* This, 636 IRpcChannelBuffer* pRpcChannelBuffer, 637 PRPC_MESSAGE pRpcMessage, 638 DWORD* pdwStubPhase); 639 HRESULT STDMETHODCALLTYPE IMFTransform_GetInputCurrentType_Proxy( 640 IMFTransform* This, 641 DWORD dwInputStreamID, 642 IMFMediaType **ppType); 643 void __RPC_STUB IMFTransform_GetInputCurrentType_Stub( 644 IRpcStubBuffer* This, 645 IRpcChannelBuffer* pRpcChannelBuffer, 646 PRPC_MESSAGE pRpcMessage, 647 DWORD* pdwStubPhase); 648 HRESULT STDMETHODCALLTYPE IMFTransform_GetOutputCurrentType_Proxy( 649 IMFTransform* This, 650 DWORD dwOutputStreamID, 651 IMFMediaType **ppType); 652 void __RPC_STUB IMFTransform_GetOutputCurrentType_Stub( 653 IRpcStubBuffer* This, 654 IRpcChannelBuffer* pRpcChannelBuffer, 655 PRPC_MESSAGE pRpcMessage, 656 DWORD* pdwStubPhase); 657 HRESULT STDMETHODCALLTYPE IMFTransform_GetInputStatus_Proxy( 658 IMFTransform* This, 659 DWORD dwInputStreamID, 660 DWORD *pdwFlags); 661 void __RPC_STUB IMFTransform_GetInputStatus_Stub( 662 IRpcStubBuffer* This, 663 IRpcChannelBuffer* pRpcChannelBuffer, 664 PRPC_MESSAGE pRpcMessage, 665 DWORD* pdwStubPhase); 666 HRESULT STDMETHODCALLTYPE IMFTransform_GetOutputStatus_Proxy( 667 IMFTransform* This, 668 DWORD *pdwFlags); 669 void __RPC_STUB IMFTransform_GetOutputStatus_Stub( 670 IRpcStubBuffer* This, 671 IRpcChannelBuffer* pRpcChannelBuffer, 672 PRPC_MESSAGE pRpcMessage, 673 DWORD* pdwStubPhase); 674 HRESULT STDMETHODCALLTYPE IMFTransform_SetOutputBounds_Proxy( 675 IMFTransform* This, 676 LONGLONG hnsLowerBound, 677 LONGLONG hnsUpperBound); 678 void __RPC_STUB IMFTransform_SetOutputBounds_Stub( 679 IRpcStubBuffer* This, 680 IRpcChannelBuffer* pRpcChannelBuffer, 681 PRPC_MESSAGE pRpcMessage, 682 DWORD* pdwStubPhase); 683 HRESULT STDMETHODCALLTYPE IMFTransform_ProcessEvent_Proxy( 684 IMFTransform* This, 685 DWORD dwInputStreamID, 686 IMFMediaEvent *pEvent); 687 void __RPC_STUB IMFTransform_ProcessEvent_Stub( 688 IRpcStubBuffer* This, 689 IRpcChannelBuffer* pRpcChannelBuffer, 690 PRPC_MESSAGE pRpcMessage, 691 DWORD* pdwStubPhase); 692 HRESULT STDMETHODCALLTYPE IMFTransform_ProcessMessage_Proxy( 693 IMFTransform* This, 694 MFT_MESSAGE_TYPE eMessage, 695 ULONG_PTR ulParam); 696 void __RPC_STUB IMFTransform_ProcessMessage_Stub( 697 IRpcStubBuffer* This, 698 IRpcChannelBuffer* pRpcChannelBuffer, 699 PRPC_MESSAGE pRpcMessage, 700 DWORD* pdwStubPhase); 701 702 #endif /* __IMFTransform_INTERFACE_DEFINED__ */ 703 704 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_CLSID = {{0xc57a84c0,0x1a80,0x40a3,{0x97,0xb5,0x92,0x72,0xa4,0x3,0xc8,0xae}}, 0x01}; 705 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_CATEGORY = {{0xc57a84c0,0x1a80,0x40a3,{0x97,0xb5,0x92,0x72,0xa4,0x3,0xc8,0xae}}, 0x02 }; 706 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_EXATTRIBUTE_SUPPORTED = {{0x456fe843,0x3c87,0x40c0,{0x94,0x9d,0x14,0x9,0xc9,0x7d,0xab,0x2c}}, 0x01}; 707 EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MFPKEY_MULTICHANNEL_CHANNEL_MASK = {{0x58bdaf8c,0x3224,0x4692,{0x86,0xd0,0x44,0xd6,0x5c,0x5b,0xf8,0x2b}}, 0x01}; 708 EXTERN_C const DECLSPEC_SELECTANY GUID MF_SA_D3D_AWARE = {0xeaa35c29,0x775e,0x488e,{0x9b,0x61,0xb3,0x28,0x3e,0x49,0x58,0x3b}}; 709 EXTERN_C const DECLSPEC_SELECTANY GUID MF_SA_REQUIRED_SAMPLE_COUNT = {0x18802c61,0x324b,0x4952,{0xab,0xd0,0x17,0x6f,0xf5,0xc6,0x96,0xff}}; 710 EXTERN_C const DECLSPEC_SELECTANY GUID MF_TRANSFORM_ASYNC = {0xf81a699a,0x649a,0x497d,{0x8c,0x73,0x29,0xf8,0xfe,0xd6,0xad,0x7a}}; 711 EXTERN_C const DECLSPEC_SELECTANY GUID MF_TRANSFORM_ASYNC_UNLOCK = {0xe5666d6b,0x3422,0x4eb6,{0xa4,0x21,0xda,0x7d,0xb1,0xf8,0xe2,0x7}}; 712 EXTERN_C const DECLSPEC_SELECTANY GUID MF_TRANSFORM_FLAGS_Attribute = {0x9359bb7e,0x6275,0x46c4,{0xa0,0x25,0x1c,0x1,0xe4,0x5f,0x1a,0x86}}; 713 EXTERN_C const DECLSPEC_SELECTANY GUID MF_TRANSFORM_CATEGORY_Attribute = {0xceabba49,0x506d,0x4757,{0xa6,0xff,0x66,0xc1,0x84,0x98,0x7e,0x4e}}; 714 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_TRANSFORM_CLSID_Attribute = {0x6821c42b,0x65a4,0x4e82,{0x99,0xbc,0x9a,0x88,0x20,0x5e,0xcd,0xc}}; 715 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_INPUT_TYPES_Attributes = {0x4276c9b1,0x759d,0x4bf3, {0x9c,0xd0,0xd,0x72,0x3d,0x13,0x8f,0x96}}; 716 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_OUTPUT_TYPES_Attributes = {0x8eae8cf3,0xa44f,0x4306,{0xba,0x5c,0xbf,0x5d,0xda,0x24,0x28,0x18}}; 717 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_ENUM_HARDWARE_URL_Attribute = {0x2fb866ac,0xb078,0x4942,{0xab,0x6c,0x0,0x3d,0x5,0xcd,0xa6,0x74}}; 718 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_FRIENDLY_NAME_Attribute = {0x314ffbae,0x5b41,0x4c95,{0x9c,0x19,0x4e,0x7d,0x58,0x6f,0xac,0xe3}}; 719 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_CONNECTED_STREAM_ATTRIBUTE = {0x71eeb820,0xa59f,0x4de2,{0xbc,0xec,0x38,0xdb,0x1d,0xd6,0x11,0xa4}}; 720 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_CONNECTED_TO_HW_STREAM = {0x34e6e728,0x6d6,0x4491,{0xa5,0x53,0x47,0x95,0x65,0xd,0xb9,0x12}}; 721 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_PREFERRED_OUTPUTTYPE_Attribute = {0x7e700499,0x396a,0x49ee,{0xb1,0xb4,0xf6,0x28,0x2,0x1e,0x8c,0x9d}}; 722 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_PROCESS_LOCAL_Attribute = {0x543186e4,0x4649,0x4e65,{0xb5,0x88,0x4a,0xa3,0x52,0xaf,0xf3,0x79}}; 723 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_PREFERRED_ENCODER_PROFILE = {0x53004909,0x1ef5,0x46d7,{0xa1,0x8e,0x5a,0x75,0xf8,0xb5,0x90,0x5f}}; 724 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_HW_TIMESTAMP_WITH_QPC_Attribute = {0x8d030fb8,0xcc43,0x4258,{0xa2,0x2e,0x92,0x10,0xbe,0xf8,0x9b,0xe4}}; 725 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_FIELDOFUSE_UNLOCK_Attribute = {0x8ec2e9fd,0x9148,0x410d,{0x83,0x1e,0x70,0x24,0x39,0x46,0x1a,0x8e}}; 726 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_CODEC_MERIT_Attribute = {0x88a7cb15,0x7b07,0x4a34,{0x91,0x28,0xe6,0x4c,0x67,0x3,0xc4,0xd3}}; 727 EXTERN_C const DECLSPEC_SELECTANY GUID MFT_ENUM_TRANSCODE_ONLY_ATTRIBUTE = {0x111ea8cd,0xb62a,0x4bdb,{0x89,0xf6,0x67,0xff,0xcd,0xc2,0x45,0x8b}}; 728 #if (WINVER >= 0x0601) 729 HRESULT WINAPI MFCreateTransformActivate(IMFActivate **ppActivate); 730 #endif /*(WINVER >= 0x0601)*/ 731 /* Begin additional prototypes for all interfaces */ 732 733 734 /* End additional prototypes */ 735 736 #ifdef __cplusplus 737 } 738 #endif 739 740 #endif /* __mftransform_h__ */ 741