| evr.h (6.1.7601.19091-Windows_7.0) | | evr.h (6.3.9600.17415-Windows_8.1) |
| | |
| /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ |
| | |
|
| /* File created by MIDL compiler version 7.00.0555 */ | | /* File created by MIDL compiler version 8.00.0603 */ |
| /* Compiler settings for evr.idl: | | |
| Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 | | |
| protocol : dce , ms_ext, c_ext, robust | | |
| error checks: allocation ref bounds_check enum stub_data | | |
| VC __declspec() decoration level: | | |
| __declspec(uuid()), __declspec(selectany), __declspec(novtable) | | |
| DECLSPEC_UUID(), MIDL_INTERFACE() | | |
| */ | | |
| /* @@MIDL_FILE_HEADING( ) */ | | /* @@MIDL_FILE_HEADING( ) */ |
| | |
| #pragma warning( disable: 4049 ) /* more than 64k source lines */ | | #pragma warning( disable: 4049 ) /* more than 64k source lines */ |
| | |
| /* verify that the <rpcndr.h> version is high enough to compile this file*/ | | /* verify that the <rpcndr.h> version is high enough to compile this file*/ |
| #ifndef __REQUIRED_RPCNDR_H_VERSION__ | | #ifndef __REQUIRED_RPCNDR_H_VERSION__ |
| #define __REQUIRED_RPCNDR_H_VERSION__ 500 | | #define __REQUIRED_RPCNDR_H_VERSION__ 500 |
| #endif | | #endif |
| | |
| /* verify that the <rpcsal.h> version is high enough to compile this file*/ | | /* verify that the <rpcsal.h> version is high enough to compile this file*/ |
| | |
| skipping to change at line 51 | | skipping to change at line 43 |
| | |
| #if defined(_MSC_VER) && (_MSC_VER >= 1020) | | #if defined(_MSC_VER) && (_MSC_VER >= 1020) |
| #pragma once | | #pragma once |
| #endif | | #endif |
| | |
| /* Forward Declarations */ | | /* Forward Declarations */ |
| | |
| #ifndef __IMFVideoPositionMapper_FWD_DEFINED__ | | #ifndef __IMFVideoPositionMapper_FWD_DEFINED__ |
| #define __IMFVideoPositionMapper_FWD_DEFINED__ | | #define __IMFVideoPositionMapper_FWD_DEFINED__ |
| typedef interface IMFVideoPositionMapper IMFVideoPositionMapper; | | typedef interface IMFVideoPositionMapper IMFVideoPositionMapper; |
|
| | |
| #endif /* __IMFVideoPositionMapper_FWD_DEFINED__ */ | | #endif /* __IMFVideoPositionMapper_FWD_DEFINED__ */ |
| | |
| #ifndef __IMFVideoDeviceID_FWD_DEFINED__ | | #ifndef __IMFVideoDeviceID_FWD_DEFINED__ |
| #define __IMFVideoDeviceID_FWD_DEFINED__ | | #define __IMFVideoDeviceID_FWD_DEFINED__ |
| typedef interface IMFVideoDeviceID IMFVideoDeviceID; | | typedef interface IMFVideoDeviceID IMFVideoDeviceID; |
|
| | |
| #endif /* __IMFVideoDeviceID_FWD_DEFINED__ */ | | #endif /* __IMFVideoDeviceID_FWD_DEFINED__ */ |
| | |
| #ifndef __IMFVideoDisplayControl_FWD_DEFINED__ | | #ifndef __IMFVideoDisplayControl_FWD_DEFINED__ |
| #define __IMFVideoDisplayControl_FWD_DEFINED__ | | #define __IMFVideoDisplayControl_FWD_DEFINED__ |
| typedef interface IMFVideoDisplayControl IMFVideoDisplayControl; | | typedef interface IMFVideoDisplayControl IMFVideoDisplayControl; |
|
| | |
| #endif /* __IMFVideoDisplayControl_FWD_DEFINED__ */ | | #endif /* __IMFVideoDisplayControl_FWD_DEFINED__ */ |
| | |
| #ifndef __IMFVideoPresenter_FWD_DEFINED__ | | #ifndef __IMFVideoPresenter_FWD_DEFINED__ |
| #define __IMFVideoPresenter_FWD_DEFINED__ | | #define __IMFVideoPresenter_FWD_DEFINED__ |
| typedef interface IMFVideoPresenter IMFVideoPresenter; | | typedef interface IMFVideoPresenter IMFVideoPresenter; |
|
| | |
| #endif /* __IMFVideoPresenter_FWD_DEFINED__ */ | | #endif /* __IMFVideoPresenter_FWD_DEFINED__ */ |
| | |
| #ifndef __IMFDesiredSample_FWD_DEFINED__ | | #ifndef __IMFDesiredSample_FWD_DEFINED__ |
| #define __IMFDesiredSample_FWD_DEFINED__ | | #define __IMFDesiredSample_FWD_DEFINED__ |
| typedef interface IMFDesiredSample IMFDesiredSample; | | typedef interface IMFDesiredSample IMFDesiredSample; |
|
| #endif /* __IMFDesiredSample_FWD_DEFINED__ */ | | |
| | |
|
| #ifndef __IMFTrackedSample_FWD_DEFINED__ | | #endif /* __IMFDesiredSample_FWD_DEFINED__ */ |
| #define __IMFTrackedSample_FWD_DEFINED__ | | |
| typedef interface IMFTrackedSample IMFTrackedSample; | | |
| #endif /* __IMFTrackedSample_FWD_DEFINED__ */ | | |
| | |
| #ifndef __IMFVideoMixerControl_FWD_DEFINED__ | | #ifndef __IMFVideoMixerControl_FWD_DEFINED__ |
| #define __IMFVideoMixerControl_FWD_DEFINED__ | | #define __IMFVideoMixerControl_FWD_DEFINED__ |
| typedef interface IMFVideoMixerControl IMFVideoMixerControl; | | typedef interface IMFVideoMixerControl IMFVideoMixerControl; |
|
| | |
| #endif /* __IMFVideoMixerControl_FWD_DEFINED__ */ | | #endif /* __IMFVideoMixerControl_FWD_DEFINED__ */ |
| | |
| #ifndef __IMFVideoMixerControl2_FWD_DEFINED__ | | #ifndef __IMFVideoMixerControl2_FWD_DEFINED__ |
| #define __IMFVideoMixerControl2_FWD_DEFINED__ | | #define __IMFVideoMixerControl2_FWD_DEFINED__ |
| typedef interface IMFVideoMixerControl2 IMFVideoMixerControl2; | | typedef interface IMFVideoMixerControl2 IMFVideoMixerControl2; |
|
| | |
| #endif /* __IMFVideoMixerControl2_FWD_DEFINED__ */ | | #endif /* __IMFVideoMixerControl2_FWD_DEFINED__ */ |
| | |
| #ifndef __IMFVideoRenderer_FWD_DEFINED__ | | #ifndef __IMFVideoRenderer_FWD_DEFINED__ |
| #define __IMFVideoRenderer_FWD_DEFINED__ | | #define __IMFVideoRenderer_FWD_DEFINED__ |
| typedef interface IMFVideoRenderer IMFVideoRenderer; | | typedef interface IMFVideoRenderer IMFVideoRenderer; |
|
| | |
| #endif /* __IMFVideoRenderer_FWD_DEFINED__ */ | | #endif /* __IMFVideoRenderer_FWD_DEFINED__ */ |
| | |
| #ifndef __IEVRFilterConfig_FWD_DEFINED__ | | #ifndef __IEVRFilterConfig_FWD_DEFINED__ |
| #define __IEVRFilterConfig_FWD_DEFINED__ | | #define __IEVRFilterConfig_FWD_DEFINED__ |
| typedef interface IEVRFilterConfig IEVRFilterConfig; | | typedef interface IEVRFilterConfig IEVRFilterConfig; |
|
| | |
| #endif /* __IEVRFilterConfig_FWD_DEFINED__ */ | | #endif /* __IEVRFilterConfig_FWD_DEFINED__ */ |
| | |
| #ifndef __IEVRFilterConfigEx_FWD_DEFINED__ | | #ifndef __IEVRFilterConfigEx_FWD_DEFINED__ |
| #define __IEVRFilterConfigEx_FWD_DEFINED__ | | #define __IEVRFilterConfigEx_FWD_DEFINED__ |
| typedef interface IEVRFilterConfigEx IEVRFilterConfigEx; | | typedef interface IEVRFilterConfigEx IEVRFilterConfigEx; |
|
| | |
| #endif /* __IEVRFilterConfigEx_FWD_DEFINED__ */ | | #endif /* __IEVRFilterConfigEx_FWD_DEFINED__ */ |
| | |
| #ifndef __IMFTopologyServiceLookup_FWD_DEFINED__ | | #ifndef __IMFTopologyServiceLookup_FWD_DEFINED__ |
| #define __IMFTopologyServiceLookup_FWD_DEFINED__ | | #define __IMFTopologyServiceLookup_FWD_DEFINED__ |
| typedef interface IMFTopologyServiceLookup IMFTopologyServiceLookup; | | typedef interface IMFTopologyServiceLookup IMFTopologyServiceLookup; |
|
| | |
| #endif /* __IMFTopologyServiceLookup_FWD_DEFINED__ */ | | #endif /* __IMFTopologyServiceLookup_FWD_DEFINED__ */ |
| | |
| #ifndef __IMFTopologyServiceLookupClient_FWD_DEFINED__ | | #ifndef __IMFTopologyServiceLookupClient_FWD_DEFINED__ |
| #define __IMFTopologyServiceLookupClient_FWD_DEFINED__ | | #define __IMFTopologyServiceLookupClient_FWD_DEFINED__ |
| typedef interface IMFTopologyServiceLookupClient IMFTopologyServiceLookupClient; | | typedef interface IMFTopologyServiceLookupClient IMFTopologyServiceLookupClient; |
|
| | |
| #endif /* __IMFTopologyServiceLookupClient_FWD_DEFINED__ */ | | #endif /* __IMFTopologyServiceLookupClient_FWD_DEFINED__ */ |
| | |
| #ifndef __IEVRTrustedVideoPlugin_FWD_DEFINED__ | | #ifndef __IEVRTrustedVideoPlugin_FWD_DEFINED__ |
| #define __IEVRTrustedVideoPlugin_FWD_DEFINED__ | | #define __IEVRTrustedVideoPlugin_FWD_DEFINED__ |
| typedef interface IEVRTrustedVideoPlugin IEVRTrustedVideoPlugin; | | typedef interface IEVRTrustedVideoPlugin IEVRTrustedVideoPlugin; |
|
| | |
| #endif /* __IEVRTrustedVideoPlugin_FWD_DEFINED__ */ | | #endif /* __IEVRTrustedVideoPlugin_FWD_DEFINED__ */ |
| | |
| /* header files for imported files */ | | /* header files for imported files */ |
| #include "unknwn.h" | | #include "unknwn.h" |
| #include "propidl.h" | | #include "propidl.h" |
| #include "mfidl.h" | | #include "mfidl.h" |
| #include "strmif.h" | | #include "strmif.h" |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| extern "C"{ | | extern "C"{ |
| | |
| skipping to change at line 131 | | skipping to change at line 131 |
| #include "mfidl.h" | | #include "mfidl.h" |
| #include "strmif.h" | | #include "strmif.h" |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| extern "C"{ | | extern "C"{ |
| #endif | | #endif |
| | |
| /* interface __MIDL_itf_evr_0000_0000 */ | | /* interface __MIDL_itf_evr_0000_0000 */ |
| /* [local] */ | | /* [local] */ |
| | |
|
| | #include <winapifamily.h> |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| #if defined(__midl) | | #if defined(__midl) |
| typedef | | typedef |
| enum _D3DFORMAT | | enum _D3DFORMAT |
|
| { D3DFMT_UNKNOWN = 0, | | { |
| D3DFMT_R8G8B8 = 20, | | D3DFMT_UNKNOWN = 0, |
| D3DFMT_A8R8G8B8 = 21, | | D3DFMT_R8G8B8 = 20, |
| D3DFMT_X8R8G8B8 = 22, | | D3DFMT_A8R8G8B8 = 21, |
| D3DFMT_R5G6B5 = 23, | | D3DFMT_X8R8G8B8 = 22, |
| D3DFMT_X1R5G5B5 = 24, | | D3DFMT_R5G6B5 = 23, |
| D3DFMT_A1R5G5B5 = 25, | | D3DFMT_X1R5G5B5 = 24, |
| D3DFMT_A4R4G4B4 = 26, | | D3DFMT_A1R5G5B5 = 25, |
| D3DFMT_R3G3B2 = 27, | | D3DFMT_A4R4G4B4 = 26, |
| D3DFMT_A8 = 28, | | D3DFMT_R3G3B2 = 27, |
| D3DFMT_A8R3G3B2 = 29, | | D3DFMT_A8 = 28, |
| D3DFMT_X4R4G4B4 = 30, | | D3DFMT_A8R3G3B2 = 29, |
| D3DFMT_A2B10G10R10 = 31, | | D3DFMT_X4R4G4B4 = 30, |
| D3DFMT_G16R16 = 34, | | D3DFMT_A2B10G10R10 = 31, |
| D3DFMT_A8P8 = 40, | | D3DFMT_G16R16 = 34, |
| D3DFMT_P8 = 41, | | D3DFMT_A8P8 = 40, |
| D3DFMT_L8 = 50, | | D3DFMT_P8 = 41, |
| D3DFMT_A8L8 = 51, | | D3DFMT_L8 = 50, |
| D3DFMT_A4L4 = 52, | | D3DFMT_A8L8 = 51, |
| D3DFMT_V8U8 = 60, | | D3DFMT_A4L4 = 52, |
| D3DFMT_L6V5U5 = 61, | | D3DFMT_V8U8 = 60, |
| D3DFMT_X8L8V8U8 = 62, | | D3DFMT_L6V5U5 = 61, |
| D3DFMT_Q8W8V8U8 = 63, | | D3DFMT_X8L8V8U8 = 62, |
| D3DFMT_V16U16 = 64, | | D3DFMT_Q8W8V8U8 = 63, |
| D3DFMT_W11V11U10 = 65, | | D3DFMT_V16U16 = 64, |
| D3DFMT_A2W10V10U10 = 67, | | D3DFMT_W11V11U10 = 65, |
| D3DFMT_D16_LOCKABLE = 70, | | D3DFMT_A2W10V10U10 = 67, |
| D3DFMT_D32 = 71, | | D3DFMT_D16_LOCKABLE = 70, |
| D3DFMT_D15S1 = 73, | | D3DFMT_D32 = 71, |
| D3DFMT_D24S8 = 75, | | D3DFMT_D15S1 = 73, |
| D3DFMT_D16 = 80, | | D3DFMT_D24S8 = 75, |
| D3DFMT_D24X8 = 77, | | D3DFMT_D16 = 80, |
| D3DFMT_D24X4S4 = 79, | | D3DFMT_D24X8 = 77, |
| D3DFMT_VERTEXDATA = 100, | | D3DFMT_D24X4S4 = 79, |
| D3DFMT_INDEX16 = 101, | | D3DFMT_VERTEXDATA = 100, |
| D3DFMT_INDEX32 = 102, | | D3DFMT_INDEX16 = 101, |
| D3DFMT_FORCE_DWORD = 0x7fffffff | | D3DFMT_INDEX32 = 102, |
| | D3DFMT_FORCE_DWORD = 0x7fffffff |
| } D3DFORMAT; | | } D3DFORMAT; |
| | |
| #endif // __midl | | #endif // __midl |
| DEFINE_GUID(MR_VIDEO_RENDER_SERVICE, | | DEFINE_GUID(MR_VIDEO_RENDER_SERVICE, |
| 0x1092a86c, | | 0x1092a86c, |
| 0xab1a, | | 0xab1a, |
| 0x459a, | | 0x459a, |
| 0xa3, 0x36, 0x83, 0x1f, 0xbc, 0x4d, 0x11, 0xff | | 0xa3, 0x36, 0x83, 0x1f, 0xbc, 0x4d, 0x11, 0xff |
| ); | | ); |
| DEFINE_GUID(MR_VIDEO_MIXER_SERVICE, | | DEFINE_GUID(MR_VIDEO_MIXER_SERVICE, |
| | |
| skipping to change at line 228 | | skipping to change at line 232 |
| MIDL_INTERFACE("1F6A9F17-E70B-4e24-8AE4-0B2C3BA7A4AE") | | MIDL_INTERFACE("1F6A9F17-E70B-4e24-8AE4-0B2C3BA7A4AE") |
| IMFVideoPositionMapper : public IUnknown | | IMFVideoPositionMapper : public IUnknown |
| { | | { |
| public: | | public: |
| virtual HRESULT STDMETHODCALLTYPE MapOutputCoordinateToInputStream( | | virtual HRESULT STDMETHODCALLTYPE MapOutputCoordinateToInputStream( |
| /* [in] */ float xOut, | | /* [in] */ float xOut, |
| /* [in] */ float yOut, | | /* [in] */ float yOut, |
| /* [in] */ DWORD dwOutputStreamIndex, | | /* [in] */ DWORD dwOutputStreamIndex, |
| /* [in] */ DWORD dwInputStreamIndex, | | /* [in] */ DWORD dwInputStreamIndex, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out float *pxIn, | | _Out_ float *pxIn, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out float *pyIn) = 0; | | _Out_ float *pyIn) = 0; |
| | |
| }; | | }; |
| | |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFVideoPositionMapperVtbl | | typedef struct IMFVideoPositionMapperVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IMFVideoPositionMapper * This, | | IMFVideoPositionMapper * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IMFVideoPositionMapper * This); | | IMFVideoPositionMapper * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IMFVideoPositionMapper * This); | | IMFVideoPositionMapper * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *MapOutputCoordinateToInputStream )( | | HRESULT ( STDMETHODCALLTYPE *MapOutputCoordinateToInputStream )( |
| IMFVideoPositionMapper * This, | | IMFVideoPositionMapper * This, |
| /* [in] */ float xOut, | | /* [in] */ float xOut, |
| /* [in] */ float yOut, | | /* [in] */ float yOut, |
| /* [in] */ DWORD dwOutputStreamIndex, | | /* [in] */ DWORD dwOutputStreamIndex, |
| /* [in] */ DWORD dwInputStreamIndex, | | /* [in] */ DWORD dwInputStreamIndex, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out float *pxIn, | | _Out_ float *pxIn, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out float *pyIn); | | _Out_ float *pyIn); |
| | |
| END_INTERFACE | | END_INTERFACE |
| } IMFVideoPositionMapperVtbl; | | } IMFVideoPositionMapperVtbl; |
| | |
| interface IMFVideoPositionMapper | | interface IMFVideoPositionMapper |
| { | | { |
| CONST_VTBL struct IMFVideoPositionMapperVtbl *lpVtbl; | | CONST_VTBL struct IMFVideoPositionMapperVtbl *lpVtbl; |
| }; | | }; |
| | |
| #ifdef COBJMACROS | | #ifdef COBJMACROS |
| | |
| skipping to change at line 307 | | skipping to change at line 311 |
| EXTERN_C const IID IID_IMFVideoDeviceID; | | EXTERN_C const IID IID_IMFVideoDeviceID; |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | #if defined(__cplusplus) && !defined(CINTERFACE) |
| | |
| MIDL_INTERFACE("A38D9567-5A9C-4f3c-B293-8EB415B279BA") | | MIDL_INTERFACE("A38D9567-5A9C-4f3c-B293-8EB415B279BA") |
| IMFVideoDeviceID : public IUnknown | | IMFVideoDeviceID : public IUnknown |
| { | | { |
| public: | | public: |
| virtual HRESULT STDMETHODCALLTYPE GetDeviceID( | | virtual HRESULT STDMETHODCALLTYPE GetDeviceID( |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out IID *pDeviceID) = 0; | | _Out_ IID *pDeviceID) = 0; |
| | |
| }; | | }; |
| | |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFVideoDeviceIDVtbl | | typedef struct IMFVideoDeviceIDVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IMFVideoDeviceID * This, | | IMFVideoDeviceID * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IMFVideoDeviceID * This); | | IMFVideoDeviceID * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IMFVideoDeviceID * This); | | IMFVideoDeviceID * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( | | HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( |
| IMFVideoDeviceID * This, | | IMFVideoDeviceID * This, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out IID *pDeviceID); | | _Out_ IID *pDeviceID); |
| | |
| END_INTERFACE | | END_INTERFACE |
| } IMFVideoDeviceIDVtbl; | | } IMFVideoDeviceIDVtbl; |
| | |
| interface IMFVideoDeviceID | | interface IMFVideoDeviceID |
| { | | { |
| CONST_VTBL struct IMFVideoDeviceIDVtbl *lpVtbl; | | CONST_VTBL struct IMFVideoDeviceIDVtbl *lpVtbl; |
| }; | | }; |
| | |
| #ifdef COBJMACROS | | #ifdef COBJMACROS |
| | |
| skipping to change at line 367 | | skipping to change at line 371 |
| | |
| #endif /* C style interface */ | | #endif /* C style interface */ |
| | |
| #endif /* __IMFVideoDeviceID_INTERFACE_DEFINED__ */ | | #endif /* __IMFVideoDeviceID_INTERFACE_DEFINED__ */ |
| | |
| /* interface __MIDL_itf_evr_0000_0002 */ | | /* interface __MIDL_itf_evr_0000_0002 */ |
| /* [local] */ | | /* [local] */ |
| | |
| typedef | | typedef |
| enum MFVideoAspectRatioMode | | enum MFVideoAspectRatioMode |
|
| { MFVideoARMode_None = 0, | | { |
| MFVideoARMode_PreservePicture = 0x1, | | MFVideoARMode_None = 0, |
| MFVideoARMode_PreservePixel = 0x2, | | MFVideoARMode_PreservePicture = 0x1, |
| MFVideoARMode_NonLinearStretch = 0x4, | | MFVideoARMode_PreservePixel = 0x2, |
| MFVideoARMode_Mask = 0x7 | | MFVideoARMode_NonLinearStretch = 0x4, |
| | MFVideoARMode_Mask = 0x7 |
| } MFVideoAspectRatioMode; | | } MFVideoAspectRatioMode; |
| | |
| typedef | | typedef |
| enum MFVideoRenderPrefs | | enum MFVideoRenderPrefs |
|
| { MFVideoRenderPrefs_DoNotRenderBorder = 0x1, | | { |
| MFVideoRenderPrefs_DoNotClipToDevice = 0x2, | | MFVideoRenderPrefs_DoNotRenderBorder = 0x1, |
| MFVideoRenderPrefs_AllowOutputThrottling = 0x4, | | MFVideoRenderPrefs_DoNotClipToDevice = 0x2, |
| MFVideoRenderPrefs_ForceOutputThrottling = 0x8, | | MFVideoRenderPrefs_AllowOutputThrottling = 0x4, |
| MFVideoRenderPrefs_ForceBatching = 0x10, | | MFVideoRenderPrefs_ForceOutputThrottling = 0x8, |
| MFVideoRenderPrefs_AllowBatching = 0x20, | | MFVideoRenderPrefs_ForceBatching = 0x10, |
| MFVideoRenderPrefs_ForceScaling = 0x40, | | MFVideoRenderPrefs_AllowBatching = 0x20, |
| MFVideoRenderPrefs_AllowScaling = 0x80, | | MFVideoRenderPrefs_ForceScaling = 0x40, |
| MFVideoRenderPrefs_DoNotRepaintOnStop = 0x100, | | MFVideoRenderPrefs_AllowScaling = 0x80, |
| MFVideoRenderPrefs_Mask = 0x1ff | | MFVideoRenderPrefs_DoNotRepaintOnStop = 0x100, |
| | MFVideoRenderPrefs_Mask = 0x1ff |
| } MFVideoRenderPrefs; | | } MFVideoRenderPrefs; |
| | |
|
| | #ifndef _MFVideoNormalizedRect_ |
| | #define _MFVideoNormalizedRect_ |
| typedef struct MFVideoNormalizedRect | | typedef struct MFVideoNormalizedRect |
| { | | { |
| float left; | | float left; |
| float top; | | float top; |
| float right; | | float right; |
| float bottom; | | float bottom; |
| } MFVideoNormalizedRect; | | } MFVideoNormalizedRect; |
| | |
|
| | #endif |
| | |
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0002_v0_0_c_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0002_v0_0_c_ifspec; |
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0002_v0_0_s_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0002_v0_0_s_ifspec; |
| | |
| #ifndef __IMFVideoDisplayControl_INTERFACE_DEFINED__ | | #ifndef __IMFVideoDisplayControl_INTERFACE_DEFINED__ |
| #define __IMFVideoDisplayControl_INTERFACE_DEFINED__ | | #define __IMFVideoDisplayControl_INTERFACE_DEFINED__ |
| | |
| /* interface IMFVideoDisplayControl */ | | /* interface IMFVideoDisplayControl */ |
| /* [helpstring][uuid][object] */ | | /* [helpstring][uuid][object] */ |
| | |
| EXTERN_C const IID IID_IMFVideoDisplayControl; | | EXTERN_C const IID IID_IMFVideoDisplayControl; |
| | |
| skipping to change at line 479 | | skipping to change at line 489 |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFVideoDisplayControlVtbl | | typedef struct IMFVideoDisplayControlVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| __RPC__in IMFVideoDisplayControl * This, | | __RPC__in IMFVideoDisplayControl * This, |
| /* [in] */ __RPC__in REFIID riid, | | /* [in] */ __RPC__in REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| __RPC__in IMFVideoDisplayControl * This); | | __RPC__in IMFVideoDisplayControl * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| __RPC__in IMFVideoDisplayControl * This); | | __RPC__in IMFVideoDisplayControl * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *GetNativeVideoSize )( | | HRESULT ( STDMETHODCALLTYPE *GetNativeVideoSize )( |
| __RPC__in IMFVideoDisplayControl * This, | | __RPC__in IMFVideoDisplayControl * This, |
| /* [unique][out][in] */ __RPC__inout_opt SIZE *pszVideo, | | /* [unique][out][in] */ __RPC__inout_opt SIZE *pszVideo, |
| | |
| skipping to change at line 635 | | skipping to change at line 645 |
| | |
| #endif /* C style interface */ | | #endif /* C style interface */ |
| | |
| #endif /* __IMFVideoDisplayControl_INTERFACE_DEFINED__ */ | | #endif /* __IMFVideoDisplayControl_INTERFACE_DEFINED__ */ |
| | |
| /* interface __MIDL_itf_evr_0000_0003 */ | | /* interface __MIDL_itf_evr_0000_0003 */ |
| /* [local] */ | | /* [local] */ |
| | |
| typedef | | typedef |
| enum MFVP_MESSAGE_TYPE | | enum MFVP_MESSAGE_TYPE |
|
| { MFVP_MESSAGE_FLUSH = 0, | | { |
| MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x1, | | MFVP_MESSAGE_FLUSH = 0, |
| MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x2, | | MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x1, |
| MFVP_MESSAGE_BEGINSTREAMING = 0x3, | | MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x2, |
| MFVP_MESSAGE_ENDSTREAMING = 0x4, | | MFVP_MESSAGE_BEGINSTREAMING = 0x3, |
| MFVP_MESSAGE_ENDOFSTREAM = 0x5, | | MFVP_MESSAGE_ENDSTREAMING = 0x4, |
| MFVP_MESSAGE_STEP = 0x6, | | MFVP_MESSAGE_ENDOFSTREAM = 0x5, |
| MFVP_MESSAGE_CANCELSTEP = 0x7 | | MFVP_MESSAGE_STEP = 0x6, |
| | MFVP_MESSAGE_CANCELSTEP = 0x7 |
| } MFVP_MESSAGE_TYPE; | | } MFVP_MESSAGE_TYPE; |
| | |
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0003_v0_0_c_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0003_v0_0_c_ifspec; |
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0003_v0_0_s_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0003_v0_0_s_ifspec; |
| | |
| #ifndef __IMFVideoPresenter_INTERFACE_DEFINED__ | | #ifndef __IMFVideoPresenter_INTERFACE_DEFINED__ |
| #define __IMFVideoPresenter_INTERFACE_DEFINED__ | | #define __IMFVideoPresenter_INTERFACE_DEFINED__ |
| | |
| /* interface IMFVideoPresenter */ | | /* interface IMFVideoPresenter */ |
| /* [local][helpstring][uuid][object] */ | | /* [local][helpstring][uuid][object] */ |
| | |
| skipping to change at line 668 | | skipping to change at line 679 |
| MIDL_INTERFACE("29AFF080-182A-4a5d-AF3B-448F3A6346CB") | | MIDL_INTERFACE("29AFF080-182A-4a5d-AF3B-448F3A6346CB") |
| IMFVideoPresenter : public IMFClockStateSink | | IMFVideoPresenter : public IMFClockStateSink |
| { | | { |
| public: | | public: |
| virtual HRESULT STDMETHODCALLTYPE ProcessMessage( | | virtual HRESULT STDMETHODCALLTYPE ProcessMessage( |
| MFVP_MESSAGE_TYPE eMessage, | | MFVP_MESSAGE_TYPE eMessage, |
| ULONG_PTR ulParam) = 0; | | ULONG_PTR ulParam) = 0; |
| | |
| virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType( | | virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType( |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __deref_out IMFVideoMediaType **ppMediaType) = 0; | | _Outptr_ IMFVideoMediaType **ppMediaType) = 0; |
| | |
| }; | | }; |
| | |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFVideoPresenterVtbl | | typedef struct IMFVideoPresenterVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IMFVideoPresenter * This, | | IMFVideoPresenter * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IMFVideoPresenter * This); | | IMFVideoPresenter * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IMFVideoPresenter * This); | | IMFVideoPresenter * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *OnClockStart )( | | HRESULT ( STDMETHODCALLTYPE *OnClockStart )( |
| IMFVideoPresenter * This, | | IMFVideoPresenter * This, |
| /* [in] */ MFTIME hnsSystemTime, | | /* [in] */ MFTIME hnsSystemTime, |
| | |
| skipping to change at line 720 | | skipping to change at line 731 |
| /* [in] */ float flRate); | | /* [in] */ float flRate); |
| | |
| HRESULT ( STDMETHODCALLTYPE *ProcessMessage )( | | HRESULT ( STDMETHODCALLTYPE *ProcessMessage )( |
| IMFVideoPresenter * This, | | IMFVideoPresenter * This, |
| MFVP_MESSAGE_TYPE eMessage, | | MFVP_MESSAGE_TYPE eMessage, |
| ULONG_PTR ulParam); | | ULONG_PTR ulParam); |
| | |
| HRESULT ( STDMETHODCALLTYPE *GetCurrentMediaType )( | | HRESULT ( STDMETHODCALLTYPE *GetCurrentMediaType )( |
| IMFVideoPresenter * This, | | IMFVideoPresenter * This, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __deref_out IMFVideoMediaType **ppMediaType); | | _Outptr_ IMFVideoMediaType **ppMediaType); |
| | |
| END_INTERFACE | | END_INTERFACE |
| } IMFVideoPresenterVtbl; | | } IMFVideoPresenterVtbl; |
| | |
| interface IMFVideoPresenter | | interface IMFVideoPresenter |
| { | | { |
| CONST_VTBL struct IMFVideoPresenterVtbl *lpVtbl; | | CONST_VTBL struct IMFVideoPresenterVtbl *lpVtbl; |
| }; | | }; |
| | |
| #ifdef COBJMACROS | | #ifdef COBJMACROS |
| | |
| skipping to change at line 784 | | skipping to change at line 795 |
| EXTERN_C const IID IID_IMFDesiredSample; | | EXTERN_C const IID IID_IMFDesiredSample; |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | #if defined(__cplusplus) && !defined(CINTERFACE) |
| | |
| MIDL_INTERFACE("56C294D0-753E-4260-8D61-A3D8820B1D54") | | MIDL_INTERFACE("56C294D0-753E-4260-8D61-A3D8820B1D54") |
| IMFDesiredSample : public IUnknown | | IMFDesiredSample : public IUnknown |
| { | | { |
| public: | | public: |
| virtual HRESULT STDMETHODCALLTYPE GetDesiredSampleTimeAndDuration( | | virtual HRESULT STDMETHODCALLTYPE GetDesiredSampleTimeAndDuration( |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out LONGLONG *phnsSampleTime, | | _Out_ LONGLONG *phnsSampleTime, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out LONGLONG *phnsSampleDuration) = 0; | | _Out_ LONGLONG *phnsSampleDuration) = 0; |
| | |
| virtual void STDMETHODCALLTYPE SetDesiredSampleTimeAndDuration( | | virtual void STDMETHODCALLTYPE SetDesiredSampleTimeAndDuration( |
| /* [in] */ LONGLONG hnsSampleTime, | | /* [in] */ LONGLONG hnsSampleTime, |
| /* [in] */ LONGLONG hnsSampleDuration) = 0; | | /* [in] */ LONGLONG hnsSampleDuration) = 0; |
| | |
| virtual void STDMETHODCALLTYPE Clear( void) = 0; | | virtual void STDMETHODCALLTYPE Clear( void) = 0; |
| | |
| }; | | }; |
| | |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFDesiredSampleVtbl | | typedef struct IMFDesiredSampleVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IMFDesiredSample * This, | | IMFDesiredSample * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IMFDesiredSample * This); | | IMFDesiredSample * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IMFDesiredSample * This); | | IMFDesiredSample * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *GetDesiredSampleTimeAndDuration )( | | HRESULT ( STDMETHODCALLTYPE *GetDesiredSampleTimeAndDuration )( |
| IMFDesiredSample * This, | | IMFDesiredSample * This, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out LONGLONG *phnsSampleTime, | | _Out_ LONGLONG *phnsSampleTime, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out LONGLONG *phnsSampleDuration); | | _Out_ LONGLONG *phnsSampleDuration); |
| | |
| void ( STDMETHODCALLTYPE *SetDesiredSampleTimeAndDuration )( | | void ( STDMETHODCALLTYPE *SetDesiredSampleTimeAndDuration )( |
| IMFDesiredSample * This, | | IMFDesiredSample * This, |
| /* [in] */ LONGLONG hnsSampleTime, | | /* [in] */ LONGLONG hnsSampleTime, |
| /* [in] */ LONGLONG hnsSampleDuration); | | /* [in] */ LONGLONG hnsSampleDuration); |
| | |
| void ( STDMETHODCALLTYPE *Clear )( | | void ( STDMETHODCALLTYPE *Clear )( |
| IMFDesiredSample * This); | | IMFDesiredSample * This); |
| | |
| END_INTERFACE | | END_INTERFACE |
| | |
| skipping to change at line 863 | | skipping to change at line 874 |
| | |
| #define IMFDesiredSample_Clear(This) \ | | #define IMFDesiredSample_Clear(This) \ |
| ( (This)->lpVtbl -> Clear(This) ) | | ( (This)->lpVtbl -> Clear(This) ) |
| | |
| #endif /* COBJMACROS */ | | #endif /* COBJMACROS */ |
| | |
| #endif /* C style interface */ | | #endif /* C style interface */ |
| | |
| #endif /* __IMFDesiredSample_INTERFACE_DEFINED__ */ | | #endif /* __IMFDesiredSample_INTERFACE_DEFINED__ */ |
| | |
|
| #ifndef __IMFTrackedSample_INTERFACE_DEFINED__ | | |
| #define __IMFTrackedSample_INTERFACE_DEFINED__ | | |
| | |
| /* interface IMFTrackedSample */ | | |
| /* [local][helpstring][uuid][object] */ | | |
| | |
| EXTERN_C const IID IID_IMFTrackedSample; | | |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | |
| | |
| MIDL_INTERFACE("245BF8E9-0755-40f7-88A5-AE0F18D55E17") | | |
| IMFTrackedSample : public IUnknown | | |
| { | | |
| public: | | |
| virtual HRESULT STDMETHODCALLTYPE SetAllocator( | | |
| /* [annotation][in] */ | | |
| __in IMFAsyncCallback *pSampleAllocator, | | |
| /* [unique][in] */ IUnknown *pUnkState) = 0; | | |
| | |
| }; | | |
| | |
| #else /* C style interface */ | | |
| | |
| typedef struct IMFTrackedSampleVtbl | | |
| { | | |
| BEGIN_INTERFACE | | |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | |
| IMFTrackedSample * This, | | |
| /* [in] */ REFIID riid, | | |
| /* [annotation][iid_is][out] */ | | |
| __RPC__deref_out void **ppvObject); | | |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | |
| IMFTrackedSample * This); | | |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | |
| IMFTrackedSample * This); | | |
| | |
| HRESULT ( STDMETHODCALLTYPE *SetAllocator )( | | |
| IMFTrackedSample * This, | | |
| /* [annotation][in] */ | | |
| __in IMFAsyncCallback *pSampleAllocator, | | |
| /* [unique][in] */ IUnknown *pUnkState); | | |
| | |
| END_INTERFACE | | |
| } IMFTrackedSampleVtbl; | | |
| | |
| interface IMFTrackedSample | | |
| { | | |
| CONST_VTBL struct IMFTrackedSampleVtbl *lpVtbl; | | |
| }; | | |
| | |
| #ifdef COBJMACROS | | |
| | |
| #define IMFTrackedSample_QueryInterface(This,riid,ppvObject) \ | | |
| ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | | |
| | |
| #define IMFTrackedSample_AddRef(This) \ | | |
| ( (This)->lpVtbl -> AddRef(This) ) | | |
| | |
| #define IMFTrackedSample_Release(This) \ | | |
| ( (This)->lpVtbl -> Release(This) ) | | |
| | |
| #define IMFTrackedSample_SetAllocator(This,pSampleAllocator,pUnkState) \ | | |
| ( (This)->lpVtbl -> SetAllocator(This,pSampleAllocator,pUnkState) ) | | |
| | |
| #endif /* COBJMACROS */ | | |
| | |
| #endif /* C style interface */ | | |
| | |
| #endif /* __IMFTrackedSample_INTERFACE_DEFINED__ */ | | |
| | | |
| #ifndef __IMFVideoMixerControl_INTERFACE_DEFINED__ | | #ifndef __IMFVideoMixerControl_INTERFACE_DEFINED__ |
| #define __IMFVideoMixerControl_INTERFACE_DEFINED__ | | #define __IMFVideoMixerControl_INTERFACE_DEFINED__ |
| | |
| /* interface IMFVideoMixerControl */ | | /* interface IMFVideoMixerControl */ |
| /* [helpstring][uuid][object] */ | | /* [helpstring][uuid][object] */ |
| | |
| EXTERN_C const IID IID_IMFVideoMixerControl; | | EXTERN_C const IID IID_IMFVideoMixerControl; |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | #if defined(__cplusplus) && !defined(CINTERFACE) |
| | |
| | |
| skipping to change at line 978 | | skipping to change at line 916 |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFVideoMixerControlVtbl | | typedef struct IMFVideoMixerControlVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| __RPC__in IMFVideoMixerControl * This, | | __RPC__in IMFVideoMixerControl * This, |
| /* [in] */ __RPC__in REFIID riid, | | /* [in] */ __RPC__in REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| __RPC__in IMFVideoMixerControl * This); | | __RPC__in IMFVideoMixerControl * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| __RPC__in IMFVideoMixerControl * This); | | __RPC__in IMFVideoMixerControl * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *SetStreamZOrder )( | | HRESULT ( STDMETHODCALLTYPE *SetStreamZOrder )( |
| __RPC__in IMFVideoMixerControl * This, | | __RPC__in IMFVideoMixerControl * This, |
| /* [in] */ DWORD dwStreamID, | | /* [in] */ DWORD dwStreamID, |
| | |
| skipping to change at line 1043 | | skipping to change at line 981 |
| | |
| #define IMFVideoMixerControl_GetStreamOutputRect(This,dwStreamID,pnrcOutput) \ | | #define IMFVideoMixerControl_GetStreamOutputRect(This,dwStreamID,pnrcOutput) \ |
| ( (This)->lpVtbl -> GetStreamOutputRect(This,dwStreamID,pnrcOutput) ) | | ( (This)->lpVtbl -> GetStreamOutputRect(This,dwStreamID,pnrcOutput) ) |
| | |
| #endif /* COBJMACROS */ | | #endif /* COBJMACROS */ |
| | |
| #endif /* C style interface */ | | #endif /* C style interface */ |
| | |
| #endif /* __IMFVideoMixerControl_INTERFACE_DEFINED__ */ | | #endif /* __IMFVideoMixerControl_INTERFACE_DEFINED__ */ |
| | |
|
| /* interface __MIDL_itf_evr_0000_0007 */ | | /* interface __MIDL_itf_evr_0000_0006 */ |
| /* [local] */ | | /* [local] */ |
| | |
| typedef | | typedef |
| enum _MFVideoMixPrefs | | enum _MFVideoMixPrefs |
|
| { MFVideoMixPrefs_ForceHalfInterlace = 0x1, | | { |
| MFVideoMixPrefs_AllowDropToHalfInterlace = 0x2, | | MFVideoMixPrefs_ForceHalfInterlace = 0x1, |
| MFVideoMixPrefs_AllowDropToBob = 0x4, | | MFVideoMixPrefs_AllowDropToHalfInterlace = 0x2, |
| MFVideoMixPrefs_ForceBob = 0x8, | | MFVideoMixPrefs_AllowDropToBob = 0x4, |
| MFVideoMixPrefs_Mask = 0xf | | MFVideoMixPrefs_ForceBob = 0x8, |
| | MFVideoMixPrefs_EnableRotation = 0x10, |
| | MFVideoMixPrefs_Mask = 0x1f |
| } MFVideoMixPrefs; | | } MFVideoMixPrefs; |
| | |
|
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0007_v0_0_c_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0006_v0_0_c_ifspec; |
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0007_v0_0_s_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0006_v0_0_s_ifspec; |
| | |
| #ifndef __IMFVideoMixerControl2_INTERFACE_DEFINED__ | | #ifndef __IMFVideoMixerControl2_INTERFACE_DEFINED__ |
| #define __IMFVideoMixerControl2_INTERFACE_DEFINED__ | | #define __IMFVideoMixerControl2_INTERFACE_DEFINED__ |
| | |
| /* interface IMFVideoMixerControl2 */ | | /* interface IMFVideoMixerControl2 */ |
| /* [helpstring][uuid][object] */ | | /* [helpstring][uuid][object] */ |
| | |
| EXTERN_C const IID IID_IMFVideoMixerControl2; | | EXTERN_C const IID IID_IMFVideoMixerControl2; |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | #if defined(__cplusplus) && !defined(CINTERFACE) |
| | |
| skipping to change at line 1090 | | skipping to change at line 1030 |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFVideoMixerControl2Vtbl | | typedef struct IMFVideoMixerControl2Vtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| __RPC__in IMFVideoMixerControl2 * This, | | __RPC__in IMFVideoMixerControl2 * This, |
| /* [in] */ __RPC__in REFIID riid, | | /* [in] */ __RPC__in REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| __RPC__in IMFVideoMixerControl2 * This); | | __RPC__in IMFVideoMixerControl2 * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| __RPC__in IMFVideoMixerControl2 * This); | | __RPC__in IMFVideoMixerControl2 * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *SetStreamZOrder )( | | HRESULT ( STDMETHODCALLTYPE *SetStreamZOrder )( |
| __RPC__in IMFVideoMixerControl2 * This, | | __RPC__in IMFVideoMixerControl2 * This, |
| /* [in] */ DWORD dwStreamID, | | /* [in] */ DWORD dwStreamID, |
| | |
| skipping to change at line 1185 | | skipping to change at line 1125 |
| EXTERN_C const IID IID_IMFVideoRenderer; | | EXTERN_C const IID IID_IMFVideoRenderer; |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | #if defined(__cplusplus) && !defined(CINTERFACE) |
| | |
| MIDL_INTERFACE("DFDFD197-A9CA-43d8-B341-6AF3503792CD") | | MIDL_INTERFACE("DFDFD197-A9CA-43d8-B341-6AF3503792CD") |
| IMFVideoRenderer : public IUnknown | | IMFVideoRenderer : public IUnknown |
| { | | { |
| public: | | public: |
| virtual HRESULT STDMETHODCALLTYPE InitializeRenderer( | | virtual HRESULT STDMETHODCALLTYPE InitializeRenderer( |
| /* [annotation][unique][in] */ | | /* [annotation][unique][in] */ |
|
| __in_opt IMFTransform *pVideoMixer, | | _In_opt_ IMFTransform *pVideoMixer, |
| /* [annotation][unique][in] */ | | /* [annotation][unique][in] */ |
|
| __in_opt IMFVideoPresenter *pVideoPresenter) = 0; | | _In_opt_ IMFVideoPresenter *pVideoPresenter) = 0; |
| | |
| }; | | }; |
| | |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFVideoRendererVtbl | | typedef struct IMFVideoRendererVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IMFVideoRenderer * This, | | IMFVideoRenderer * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IMFVideoRenderer * This); | | IMFVideoRenderer * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IMFVideoRenderer * This); | | IMFVideoRenderer * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *InitializeRenderer )( | | HRESULT ( STDMETHODCALLTYPE *InitializeRenderer )( |
| IMFVideoRenderer * This, | | IMFVideoRenderer * This, |
| /* [annotation][unique][in] */ | | /* [annotation][unique][in] */ |
|
| __in_opt IMFTransform *pVideoMixer, | | _In_opt_ IMFTransform *pVideoMixer, |
| /* [annotation][unique][in] */ | | /* [annotation][unique][in] */ |
|
| __in_opt IMFVideoPresenter *pVideoPresenter); | | _In_opt_ IMFVideoPresenter *pVideoPresenter); |
| | |
| END_INTERFACE | | END_INTERFACE |
| } IMFVideoRendererVtbl; | | } IMFVideoRendererVtbl; |
| | |
| interface IMFVideoRenderer | | interface IMFVideoRenderer |
| { | | { |
| CONST_VTBL struct IMFVideoRendererVtbl *lpVtbl; | | CONST_VTBL struct IMFVideoRendererVtbl *lpVtbl; |
| }; | | }; |
| | |
| #ifdef COBJMACROS | | #ifdef COBJMACROS |
| | |
| skipping to change at line 1263 | | skipping to change at line 1203 |
| | |
| MIDL_INTERFACE("83E91E85-82C1-4ea7-801D-85DC50B75086") | | MIDL_INTERFACE("83E91E85-82C1-4ea7-801D-85DC50B75086") |
| IEVRFilterConfig : public IUnknown | | IEVRFilterConfig : public IUnknown |
| { | | { |
| public: | | public: |
| virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams( | | virtual HRESULT STDMETHODCALLTYPE SetNumberOfStreams( |
| /* [in] */ DWORD dwMaxStreams) = 0; | | /* [in] */ DWORD dwMaxStreams) = 0; |
| | |
| virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams( | | virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams( |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out DWORD *pdwMaxStreams) = 0; | | _Out_ DWORD *pdwMaxStreams) = 0; |
| | |
| }; | | }; |
| | |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IEVRFilterConfigVtbl | | typedef struct IEVRFilterConfigVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IEVRFilterConfig * This, | | IEVRFilterConfig * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IEVRFilterConfig * This); | | IEVRFilterConfig * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IEVRFilterConfig * This); | | IEVRFilterConfig * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *SetNumberOfStreams )( | | HRESULT ( STDMETHODCALLTYPE *SetNumberOfStreams )( |
| IEVRFilterConfig * This, | | IEVRFilterConfig * This, |
| /* [in] */ DWORD dwMaxStreams); | | /* [in] */ DWORD dwMaxStreams); |
| | |
| HRESULT ( STDMETHODCALLTYPE *GetNumberOfStreams )( | | HRESULT ( STDMETHODCALLTYPE *GetNumberOfStreams )( |
| IEVRFilterConfig * This, | | IEVRFilterConfig * This, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out DWORD *pdwMaxStreams); | | _Out_ DWORD *pdwMaxStreams); |
| | |
| END_INTERFACE | | END_INTERFACE |
| } IEVRFilterConfigVtbl; | | } IEVRFilterConfigVtbl; |
| | |
| interface IEVRFilterConfig | | interface IEVRFilterConfig |
| { | | { |
| CONST_VTBL struct IEVRFilterConfigVtbl *lpVtbl; | | CONST_VTBL struct IEVRFilterConfigVtbl *lpVtbl; |
| }; | | }; |
| | |
| #ifdef COBJMACROS | | #ifdef COBJMACROS |
| | |
| skipping to change at line 1325 | | skipping to change at line 1265 |
| | |
| #define IEVRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) \ | | #define IEVRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) \ |
| ( (This)->lpVtbl -> GetNumberOfStreams(This,pdwMaxStreams) ) | | ( (This)->lpVtbl -> GetNumberOfStreams(This,pdwMaxStreams) ) |
| | |
| #endif /* COBJMACROS */ | | #endif /* COBJMACROS */ |
| | |
| #endif /* C style interface */ | | #endif /* C style interface */ |
| | |
| #endif /* __IEVRFilterConfig_INTERFACE_DEFINED__ */ | | #endif /* __IEVRFilterConfig_INTERFACE_DEFINED__ */ |
| | |
|
| /* interface __MIDL_itf_evr_0000_0010 */ | | /* interface __MIDL_itf_evr_0000_0009 */ |
| /* [local] */ | | /* [local] */ |
| | |
| typedef | | typedef |
| enum _EVRFilterConfig_Prefs | | enum _EVRFilterConfig_Prefs |
|
| { EVRFilterConfigPrefs_EnableQoS = 0x1, | | { |
| EVRFilterConfigPrefs_Mask = 0x1 | | EVRFilterConfigPrefs_EnableQoS = 0x1, |
| | EVRFilterConfigPrefs_Mask = 0x1 |
| } EVRFilterConfigPrefs; | | } EVRFilterConfigPrefs; |
| | |
|
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0010_v0_0_c_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0009_v0_0_c_ifspec; |
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0010_v0_0_s_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0009_v0_0_s_ifspec; |
| | |
| #ifndef __IEVRFilterConfigEx_INTERFACE_DEFINED__ | | #ifndef __IEVRFilterConfigEx_INTERFACE_DEFINED__ |
| #define __IEVRFilterConfigEx_INTERFACE_DEFINED__ | | #define __IEVRFilterConfigEx_INTERFACE_DEFINED__ |
| | |
| /* interface IEVRFilterConfigEx */ | | /* interface IEVRFilterConfigEx */ |
| /* [helpstring][uuid][object] */ | | /* [helpstring][uuid][object] */ |
| | |
| EXTERN_C const IID IID_IEVRFilterConfigEx; | | EXTERN_C const IID IID_IEVRFilterConfigEx; |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | #if defined(__cplusplus) && !defined(CINTERFACE) |
| | |
| skipping to change at line 1369 | | skipping to change at line 1310 |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IEVRFilterConfigExVtbl | | typedef struct IEVRFilterConfigExVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| __RPC__in IEVRFilterConfigEx * This, | | __RPC__in IEVRFilterConfigEx * This, |
| /* [in] */ __RPC__in REFIID riid, | | /* [in] */ __RPC__in REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| __RPC__in IEVRFilterConfigEx * This); | | __RPC__in IEVRFilterConfigEx * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| __RPC__in IEVRFilterConfigEx * This); | | __RPC__in IEVRFilterConfigEx * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *SetNumberOfStreams )( | | HRESULT ( STDMETHODCALLTYPE *SetNumberOfStreams )( |
| __RPC__in IEVRFilterConfigEx * This, | | __RPC__in IEVRFilterConfigEx * This, |
| /* [in] */ DWORD dwMaxStreams); | | /* [in] */ DWORD dwMaxStreams); |
| | |
| HRESULT ( STDMETHODCALLTYPE *GetNumberOfStreams )( | | HRESULT ( STDMETHODCALLTYPE *GetNumberOfStreams )( |
| __RPC__in IEVRFilterConfigEx * This, | | __RPC__in IEVRFilterConfigEx * This, |
| /* [annotation][out] */ | | /* [annotation][out] */ |
|
| __out DWORD *pdwMaxStreams); | | _Out_ DWORD *pdwMaxStreams); |
| | |
| HRESULT ( STDMETHODCALLTYPE *SetConfigPrefs )( | | HRESULT ( STDMETHODCALLTYPE *SetConfigPrefs )( |
| __RPC__in IEVRFilterConfigEx * This, | | __RPC__in IEVRFilterConfigEx * This, |
| /* [in] */ DWORD dwConfigFlags); | | /* [in] */ DWORD dwConfigFlags); |
| | |
| HRESULT ( STDMETHODCALLTYPE *GetConfigPrefs )( | | HRESULT ( STDMETHODCALLTYPE *GetConfigPrefs )( |
| __RPC__in IEVRFilterConfigEx * This, | | __RPC__in IEVRFilterConfigEx * This, |
| /* [out] */ __RPC__out DWORD *pdwConfigFlags); | | /* [out] */ __RPC__out DWORD *pdwConfigFlags); |
| | |
| END_INTERFACE | | END_INTERFACE |
| | |
| skipping to change at line 1431 | | skipping to change at line 1372 |
| | |
| #define IEVRFilterConfigEx_GetConfigPrefs(This,pdwConfigFlags) \ | | #define IEVRFilterConfigEx_GetConfigPrefs(This,pdwConfigFlags) \ |
| ( (This)->lpVtbl -> GetConfigPrefs(This,pdwConfigFlags) ) | | ( (This)->lpVtbl -> GetConfigPrefs(This,pdwConfigFlags) ) |
| | |
| #endif /* COBJMACROS */ | | #endif /* COBJMACROS */ |
| | |
| #endif /* C style interface */ | | #endif /* C style interface */ |
| | |
| #endif /* __IEVRFilterConfigEx_INTERFACE_DEFINED__ */ | | #endif /* __IEVRFilterConfigEx_INTERFACE_DEFINED__ */ |
| | |
|
| /* interface __MIDL_itf_evr_0000_0011 */ | | /* interface __MIDL_itf_evr_0000_0010 */ |
| /* [local] */ | | /* [local] */ |
| | |
| typedef | | typedef |
| enum _MF_SERVICE_LOOKUP_TYPE | | enum _MF_SERVICE_LOOKUP_TYPE |
|
| { MF_SERVICE_LOOKUP_UPSTREAM = 0, | | { |
| MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = ( MF_SERVICE_LOOKUP_UPSTREAM + | | MF_SERVICE_LOOKUP_UPSTREAM = 0, |
| 1 ) , | | MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = ( MF_SERVICE_LOOKUP_UPSTREAM + |
| MF_SERVICE_LOOKUP_DOWNSTREAM = ( MF_SERVICE_LOOKUP_UPSTREAM_DIRECT + 1 | | 1 ) , |
| ) , | | MF_SERVICE_LOOKUP_DOWNSTREAM = ( MF_SERVICE_LOOKUP_UPSTREAM_DIRECT + 1 |
| MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT = ( MF_SERVICE_LOOKUP_DOWNSTREAM | | ) , |
| + 1 ) , | | MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT = ( MF_SERVICE_LOOKUP_DOWNSTREAM |
| MF_SERVICE_LOOKUP_ALL = ( MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT + 1 ) , | | + 1 ) , |
| MF_SERVICE_LOOKUP_GLOBAL = ( MF_SERVICE_LOOKUP_ALL + 1 ) | | MF_SERVICE_LOOKUP_ALL = ( MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT + 1 ) , |
| | MF_SERVICE_LOOKUP_GLOBAL = ( MF_SERVICE_LOOKUP_ALL + 1 ) |
| } MF_SERVICE_LOOKUP_TYPE; | | } MF_SERVICE_LOOKUP_TYPE; |
| | |
|
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0011_v0_0_c_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0010_v0_0_c_ifspec; |
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0011_v0_0_s_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0010_v0_0_s_ifspec; |
| | |
| #ifndef __IMFTopologyServiceLookup_INTERFACE_DEFINED__ | | #ifndef __IMFTopologyServiceLookup_INTERFACE_DEFINED__ |
| #define __IMFTopologyServiceLookup_INTERFACE_DEFINED__ | | #define __IMFTopologyServiceLookup_INTERFACE_DEFINED__ |
| | |
| /* interface IMFTopologyServiceLookup */ | | /* interface IMFTopologyServiceLookup */ |
| /* [local][helpstring][uuid][object] */ | | /* [local][helpstring][uuid][object] */ |
| | |
| EXTERN_C const IID IID_IMFTopologyServiceLookup; | | EXTERN_C const IID IID_IMFTopologyServiceLookup; |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | #if defined(__cplusplus) && !defined(CINTERFACE) |
| | |
| skipping to change at line 1467 | | skipping to change at line 1409 |
| MIDL_INTERFACE("fa993889-4383-415a-a930-dd472a8cf6f7") | | MIDL_INTERFACE("fa993889-4383-415a-a930-dd472a8cf6f7") |
| IMFTopologyServiceLookup : public IUnknown | | IMFTopologyServiceLookup : public IUnknown |
| { | | { |
| public: | | public: |
| virtual HRESULT STDMETHODCALLTYPE LookupService( | | virtual HRESULT STDMETHODCALLTYPE LookupService( |
| /* [in] */ MF_SERVICE_LOOKUP_TYPE Type, | | /* [in] */ MF_SERVICE_LOOKUP_TYPE Type, |
| /* [in] */ DWORD dwIndex, | | /* [in] */ DWORD dwIndex, |
| /* [in] */ REFGUID guidService, | | /* [in] */ REFGUID guidService, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __out_ecount_full(*pnObjects) LPVOID *ppvObjects, | | _Out_writes_all_(*pnObjects) LPVOID *ppvObjects, |
| /* [annotation][out][in] */ | | /* [annotation][out][in] */ |
|
| __inout DWORD *pnObjects) = 0; | | _Inout_ DWORD *pnObjects) = 0; |
| | |
| }; | | }; |
| | |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFTopologyServiceLookupVtbl | | typedef struct IMFTopologyServiceLookupVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IMFTopologyServiceLookup * This, | | IMFTopologyServiceLookup * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IMFTopologyServiceLookup * This); | | IMFTopologyServiceLookup * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IMFTopologyServiceLookup * This); | | IMFTopologyServiceLookup * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *LookupService )( | | HRESULT ( STDMETHODCALLTYPE *LookupService )( |
| IMFTopologyServiceLookup * This, | | IMFTopologyServiceLookup * This, |
| /* [in] */ MF_SERVICE_LOOKUP_TYPE Type, | | /* [in] */ MF_SERVICE_LOOKUP_TYPE Type, |
| /* [in] */ DWORD dwIndex, | | /* [in] */ DWORD dwIndex, |
| /* [in] */ REFGUID guidService, | | /* [in] */ REFGUID guidService, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __out_ecount_full(*pnObjects) LPVOID *ppvObjects, | | _Out_writes_all_(*pnObjects) LPVOID *ppvObjects, |
| /* [annotation][out][in] */ | | /* [annotation][out][in] */ |
|
| __inout DWORD *pnObjects); | | _Inout_ DWORD *pnObjects); |
| | |
| END_INTERFACE | | END_INTERFACE |
| } IMFTopologyServiceLookupVtbl; | | } IMFTopologyServiceLookupVtbl; |
| | |
| interface IMFTopologyServiceLookup | | interface IMFTopologyServiceLookup |
| { | | { |
| CONST_VTBL struct IMFTopologyServiceLookupVtbl *lpVtbl; | | CONST_VTBL struct IMFTopologyServiceLookupVtbl *lpVtbl; |
| }; | | }; |
| | |
| #ifdef COBJMACROS | | #ifdef COBJMACROS |
| | |
| skipping to change at line 1546 | | skipping to change at line 1488 |
| EXTERN_C const IID IID_IMFTopologyServiceLookupClient; | | EXTERN_C const IID IID_IMFTopologyServiceLookupClient; |
| | |
| #if defined(__cplusplus) && !defined(CINTERFACE) | | #if defined(__cplusplus) && !defined(CINTERFACE) |
| | |
| MIDL_INTERFACE("fa99388a-4383-415a-a930-dd472a8cf6f7") | | MIDL_INTERFACE("fa99388a-4383-415a-a930-dd472a8cf6f7") |
| IMFTopologyServiceLookupClient : public IUnknown | | IMFTopologyServiceLookupClient : public IUnknown |
| { | | { |
| public: | | public: |
| virtual HRESULT STDMETHODCALLTYPE InitServicePointers( | | virtual HRESULT STDMETHODCALLTYPE InitServicePointers( |
| /* [annotation][in] */ | | /* [annotation][in] */ |
|
| __in IMFTopologyServiceLookup *pLookup) = 0; | | _In_ IMFTopologyServiceLookup *pLookup) = 0; |
| | |
| virtual HRESULT STDMETHODCALLTYPE ReleaseServicePointers( void) = 0; | | virtual HRESULT STDMETHODCALLTYPE ReleaseServicePointers( void) = 0; |
| | |
| }; | | }; |
| | |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IMFTopologyServiceLookupClientVtbl | | typedef struct IMFTopologyServiceLookupClientVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IMFTopologyServiceLookupClient * This, | | IMFTopologyServiceLookupClient * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IMFTopologyServiceLookupClient * This); | | IMFTopologyServiceLookupClient * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IMFTopologyServiceLookupClient * This); | | IMFTopologyServiceLookupClient * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *InitServicePointers )( | | HRESULT ( STDMETHODCALLTYPE *InitServicePointers )( |
| IMFTopologyServiceLookupClient * This, | | IMFTopologyServiceLookupClient * This, |
| /* [annotation][in] */ | | /* [annotation][in] */ |
|
| __in IMFTopologyServiceLookup *pLookup); | | _In_ IMFTopologyServiceLookup *pLookup); |
| | |
| HRESULT ( STDMETHODCALLTYPE *ReleaseServicePointers )( | | HRESULT ( STDMETHODCALLTYPE *ReleaseServicePointers )( |
| IMFTopologyServiceLookupClient * This); | | IMFTopologyServiceLookupClient * This); |
| | |
| END_INTERFACE | | END_INTERFACE |
| } IMFTopologyServiceLookupClientVtbl; | | } IMFTopologyServiceLookupClientVtbl; |
| | |
| interface IMFTopologyServiceLookupClient | | interface IMFTopologyServiceLookupClient |
| { | | { |
| CONST_VTBL struct IMFTopologyServiceLookupClientVtbl *lpVtbl; | | CONST_VTBL struct IMFTopologyServiceLookupClientVtbl *lpVtbl; |
| | |
| skipping to change at line 1647 | | skipping to change at line 1589 |
| #else /* C style interface */ | | #else /* C style interface */ |
| | |
| typedef struct IEVRTrustedVideoPluginVtbl | | typedef struct IEVRTrustedVideoPluginVtbl |
| { | | { |
| BEGIN_INTERFACE | | BEGIN_INTERFACE |
| | |
| HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( |
| IEVRTrustedVideoPlugin * This, | | IEVRTrustedVideoPlugin * This, |
| /* [in] */ REFIID riid, | | /* [in] */ REFIID riid, |
| /* [annotation][iid_is][out] */ | | /* [annotation][iid_is][out] */ |
|
| __RPC__deref_out void **ppvObject); | | _COM_Outptr_ void **ppvObject); |
| | |
| ULONG ( STDMETHODCALLTYPE *AddRef )( | | ULONG ( STDMETHODCALLTYPE *AddRef )( |
| IEVRTrustedVideoPlugin * This); | | IEVRTrustedVideoPlugin * This); |
| | |
| ULONG ( STDMETHODCALLTYPE *Release )( | | ULONG ( STDMETHODCALLTYPE *Release )( |
| IEVRTrustedVideoPlugin * This); | | IEVRTrustedVideoPlugin * This); |
| | |
| HRESULT ( STDMETHODCALLTYPE *IsInTrustedVideoMode )( | | HRESULT ( STDMETHODCALLTYPE *IsInTrustedVideoMode )( |
| IEVRTrustedVideoPlugin * This, | | IEVRTrustedVideoPlugin * This, |
| /* [out] */ BOOL *pYes); | | /* [out] */ BOOL *pYes); |
| | |
| skipping to change at line 1708 | | skipping to change at line 1650 |
| | |
| #define IEVRTrustedVideoPlugin_DisableImageExport(This,bDisable) \ | | #define IEVRTrustedVideoPlugin_DisableImageExport(This,bDisable) \ |
| ( (This)->lpVtbl -> DisableImageExport(This,bDisable) ) | | ( (This)->lpVtbl -> DisableImageExport(This,bDisable) ) |
| | |
| #endif /* COBJMACROS */ | | #endif /* COBJMACROS */ |
| | |
| #endif /* C style interface */ | | #endif /* C style interface */ |
| | |
| #endif /* __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__ */ | | #endif /* __IEVRTrustedVideoPlugin_INTERFACE_DEFINED__ */ |
| | |
|
| /* interface __MIDL_itf_evr_0000_0014 */ | | /* interface __MIDL_itf_evr_0000_0013 */ |
| /* [local] */ | | /* [local] */ |
| | |
|
| | #ifndef MFEVRDLL |
| | #define MFEVRDLL 0 |
| | #endif |
| #if MFEVRDLL | | #if MFEVRDLL |
| #define EVRPUBLIC(func) STDAPI _##func | | #define EVRPUBLIC(func) STDAPI _##func |
| #else | | #else |
| #define EVRPUBLIC(func) STDAPI func | | #define EVRPUBLIC(func) STDAPI func |
| #endif | | #endif |
| EVRPUBLIC(MFCreateVideoPresenter)( | | EVRPUBLIC(MFCreateVideoPresenter)( |
|
| __in_opt IUnknown * pOwner, | | _In_opt_ IUnknown * pOwner, |
| REFIID riidDevice, | | REFIID riidDevice, |
| REFIID riid, | | REFIID riid, |
|
| __deref_out_opt void ** ppVideoPresenter | | _Outptr_result_maybenull_ void ** ppVideoPresenter |
| ); | | ); |
| EVRPUBLIC(MFCreateVideoMixer)( | | EVRPUBLIC(MFCreateVideoMixer)( |
|
| __in_opt IUnknown * pOwner, | | _In_opt_ IUnknown * pOwner, |
| REFIID riidDevice, | | REFIID riidDevice, |
| REFIID riid, | | REFIID riid, |
|
| __deref_out_opt void ** ppVideoMixer | | _Outptr_ void ** ppv |
| ); | | ); |
| EVRPUBLIC(MFCreateVideoMixerAndPresenter)( | | EVRPUBLIC(MFCreateVideoMixerAndPresenter)( |
|
| __in_opt IUnknown * pMixerOwner, | | _In_opt_ IUnknown * pMixerOwner, |
| __in_opt IUnknown * pPresenterOwner, | | _In_opt_ IUnknown * pPresenterOwner, |
| REFIID riidMixer, | | REFIID riidMixer, |
|
| __deref_out void ** ppvVideoMixer, | | _Outptr_ void ** ppvVideoMixer, |
| REFIID riidPresenter, | | REFIID riidPresenter, |
|
| __deref_out void ** ppvVideoPresenter | | _Outptr_ void ** ppvVideoPresenter |
| ); | | ); |
| EVRPUBLIC(MFCreateVideoRenderer)( | | EVRPUBLIC(MFCreateVideoRenderer)( |
| REFIID riidRenderer, | | REFIID riidRenderer, |
|
| __deref_out_opt void ** ppVideoRenderer | | _Outptr_result_maybenull_ void ** ppVideoRenderer |
| ); | | ); |
| EVRPUBLIC(MFCreateVideoSampleFromSurface)( | | EVRPUBLIC(MFCreateVideoSampleFromSurface)( |
|
| __in_opt IUnknown* pUnkSurface, | | _In_ IUnknown* pUnkSurface, |
| __deref_out_opt IMFSample** ppSample | | _Out_ IMFSample** ppSample |
| | ); |
| | EVRPUBLIC(MFCreateVideoSampleAllocator)( |
| | _In_ REFIID riid, |
| | _Outptr_ void** ppSampleAllocator |
| ); | | ); |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
|
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0014_v0_0_c_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0013_v0_0_c_ifspec; |
| extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0014_v0_0_s_ifspec; | | extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0013_v0_0_s_ifspec; |
| | |
| /* Additional Prototypes for ALL interfaces */ | | /* Additional Prototypes for ALL interfaces */ |
| | |
| unsigned long __RPC_USER HWND_UserSize( __RPC__in unsigned long
*, unsigned long , __RPC__in HWND * ); | | unsigned long __RPC_USER HWND_UserSize( __RPC__in unsigned long
*, unsigned long , __RPC__in HWND * ); |
| unsigned char * __RPC_USER HWND_UserMarshal( __RPC__in unsigned long *, __RPC_
_inout_xcount(0) unsigned char *, __RPC__in HWND * ); | | unsigned char * __RPC_USER HWND_UserMarshal( __RPC__in unsigned long *, __RPC_
_inout_xcount(0) unsigned char *, __RPC__in HWND * ); |
| unsigned char * __RPC_USER HWND_UserUnmarshal(__RPC__in unsigned long *, __RPC_
_in_xcount(0) unsigned char *, __RPC__out HWND * ); | | unsigned char * __RPC_USER HWND_UserUnmarshal(__RPC__in unsigned long *, __RPC_
_in_xcount(0) unsigned char *, __RPC__out HWND * ); |
| void __RPC_USER HWND_UserFree( __RPC__in unsigned long
*, __RPC__in HWND * ); | | void __RPC_USER HWND_UserFree( __RPC__in unsigned long
*, __RPC__in HWND * ); |
| | |
| unsigned long __RPC_USER HWND_UserSize64( __RPC__in unsigned lo
ng *, unsigned long , __RPC__in HWND * ); | | unsigned long __RPC_USER HWND_UserSize64( __RPC__in unsigned lo
ng *, unsigned long , __RPC__in HWND * ); |
| unsigned char * __RPC_USER HWND_UserMarshal64( __RPC__in unsigned long *, __RP
C__inout_xcount(0) unsigned char *, __RPC__in HWND * ); | | unsigned char * __RPC_USER HWND_UserMarshal64( __RPC__in unsigned long *, __RP
C__inout_xcount(0) unsigned char *, __RPC__in HWND * ); |
| | |
| End of changes. 83 change blocks. |
| 224 lines changed or deleted | | 175 lines changed or added |
|
| mfapi.h (6.1.7601.19091-Windows_7.0) | | mfapi.h (6.3.9600.17415-Windows_8.1) |
|
| | #include <winapifamily.h> |
| | |
| //*@@@+++@@@@****************************************************************** | | //*@@@+++@@@@****************************************************************** |
| // | | // |
| // Microsoft Windows Media Foundation | | // Microsoft Windows Media Foundation |
| // Copyright (C) Microsoft Corporation. All rights reserved. | | // Copyright (C) Microsoft Corporation. All rights reserved. |
| // | | // |
| //*@@@---@@@@****************************************************************** | | //*@@@---@@@@****************************************************************** |
| // | | // |
| | |
| // | | // |
| // MFAPI.h is the header containing the APIs for using the MF platform. | | // MFAPI.h is the header containing the APIs for using the MF platform. |
| | |
| skipping to change at line 69 | | skipping to change at line 71 |
| | |
| // | | // |
| // Initializes the platform object. | | // Initializes the platform object. |
| // Must be called before using Media Foundation. | | // Must be called before using Media Foundation. |
| // A matching MFShutdown call must be made when the application is done using | | // A matching MFShutdown call must be made when the application is done using |
| // Media Foundation. | | // Media Foundation. |
| // The "Version" parameter should be set to MF_API_VERSION. | | // The "Version" parameter should be set to MF_API_VERSION. |
| // Application should not call MFStartup / MFShutdown from workqueue threads | | // Application should not call MFStartup / MFShutdown from workqueue threads |
| // | | // |
| #if defined(__cplusplus) | | #if defined(__cplusplus) |
|
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI MFStartup( ULONG Version, DWORD dwFlags = MFSTARTUP_FULL ); | | STDAPI MFStartup( ULONG Version, DWORD dwFlags = MFSTARTUP_FULL ); |
|
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| #else | | #else |
|
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI MFStartup( ULONG Version, DWORD dwFlags ); | | STDAPI MFStartup( ULONG Version, DWORD dwFlags ); |
|
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| #endif | | #endif |
| | |
|
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| // | | // |
| // Shuts down the platform object. | | // Shuts down the platform object. |
| // Releases all resources including threads. | | // Releases all resources including threads. |
| // Application should call MFShutdown the same number of times as MFStartup | | // Application should call MFShutdown the same number of times as MFStartup |
| // Application should not call MFStartup / MFShutdown from workqueue threads | | // Application should not call MFStartup / MFShutdown from workqueue threads |
| // | | // |
| STDAPI MFShutdown(); | | STDAPI MFShutdown(); |
| | |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| ///////////////////////////////// Platform /////////////////////////////// | | ///////////////////////////////// Platform /////////////////////////////// |
| | |
| skipping to change at line 100 | | skipping to change at line 121 |
| STDAPI MFLockPlatform(); | | STDAPI MFLockPlatform(); |
| STDAPI MFUnlockPlatform(); | | STDAPI MFUnlockPlatform(); |
| | |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // MF workitem functions | | // MF workitem functions |
| // | | // |
| typedef unsigned __int64 MFWORKITEM_KEY; | | typedef unsigned __int64 MFWORKITEM_KEY; |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI MFPutWorkItem( | | STDAPI MFPutWorkItem( |
| DWORD dwQueue, | | DWORD dwQueue, |
| IMFAsyncCallback * pCallback, | | IMFAsyncCallback * pCallback, |
| IUnknown * pState); | | IUnknown * pState); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | STDAPI MFPutWorkItem2( |
| | DWORD dwQueue, |
| | LONG Priority, |
| | _In_ IMFAsyncCallback * pCallback, |
| | _In_opt_ IUnknown * pState); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI MFPutWorkItemEx( | | STDAPI MFPutWorkItemEx( |
| DWORD dwQueue, | | DWORD dwQueue, |
| IMFAsyncResult * pResult); | | IMFAsyncResult * pResult); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | STDAPI MFPutWorkItemEx2( |
| | DWORD dwQueue, |
| | LONG Priority, |
| | _In_ IMFAsyncResult * pResult); |
| | |
| | STDAPI MFPutWaitingWorkItem ( |
| | HANDLE hEvent, |
| | LONG Priority, |
| | _In_ IMFAsyncResult * pResult, |
| | _Out_opt_ MFWORKITEM_KEY * pKey |
| | ); |
| | |
| | STDAPI MFAllocateSerialWorkQueue ( |
| | _In_ DWORD dwWorkQueue, |
| | _Out_ OUT DWORD * pdwWorkQueue); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI MFScheduleWorkItem( | | STDAPI MFScheduleWorkItem( |
| IMFAsyncCallback * pCallback, | | IMFAsyncCallback * pCallback, |
| IUnknown * pState, | | IUnknown * pState, |
| INT64 Timeout, | | INT64 Timeout, |
|
| __out_opt MFWORKITEM_KEY * pKey); | | _Out_opt_ MFWORKITEM_KEY * pKey); |
| | |
| STDAPI MFScheduleWorkItemEx( | | STDAPI MFScheduleWorkItemEx( |
| IMFAsyncResult * pResult, | | IMFAsyncResult * pResult, |
| INT64 Timeout, | | INT64 Timeout, |
|
| __out_opt MFWORKITEM_KEY * pKey); | | _Out_opt_ MFWORKITEM_KEY * pKey); |
| | |
| // | | // |
| // The CancelWorkItem method is used by objects to cancel scheduled operation | | // The CancelWorkItem method is used by objects to cancel scheduled operation |
| // Due to asynchronous nature of timers, application might still get a | | // Due to asynchronous nature of timers, application might still get a |
| // timer callback after MFCancelWorkItem has returned. | | // timer callback after MFCancelWorkItem has returned. |
| // | | // |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI MFCancelWorkItem( | | STDAPI MFCancelWorkItem( |
| MFWORKITEM_KEY Key); | | MFWORKITEM_KEY Key); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // MF periodic callbacks | | // MF periodic callbacks |
| // | | // |
| STDAPI MFGetTimerPeriodicity( | | STDAPI MFGetTimerPeriodicity( |
|
| __out DWORD * Periodicity); | | _Out_ DWORD * Periodicity); |
| | |
| typedef void (*MFPERIODICCALLBACK)(IUnknown* pContext); | | typedef void (*MFPERIODICCALLBACK)(IUnknown* pContext); |
| | |
| STDAPI MFAddPeriodicCallback( | | STDAPI MFAddPeriodicCallback( |
| MFPERIODICCALLBACK Callback, | | MFPERIODICCALLBACK Callback, |
| IUnknown * pContext, | | IUnknown * pContext, |
|
| __out_opt DWORD * pdwKey); | | _Out_opt_ DWORD * pdwKey); |
| | |
| STDAPI MFRemovePeriodicCallback( | | STDAPI MFRemovePeriodicCallback( |
| DWORD dwKey); | | DWORD dwKey); |
| | |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // MF work queues | | // MF work queues |
| // | | // |
| | |
| | |
| skipping to change at line 165 | | skipping to change at line 250 |
| // | | // |
| typedef enum | | typedef enum |
| { | | { |
| // MF_STANDARD_WORKQUEUE: Work queue in a thread without Window | | // MF_STANDARD_WORKQUEUE: Work queue in a thread without Window |
| // message loop. | | // message loop. |
| MF_STANDARD_WORKQUEUE = 0, | | MF_STANDARD_WORKQUEUE = 0, |
| | |
| // MF_WINDOW_WORKQUEUE: Work queue in a thread running Window | | // MF_WINDOW_WORKQUEUE: Work queue in a thread running Window |
| // Message loop that calls PeekMessage() / DispatchMessage().. | | // Message loop that calls PeekMessage() / DispatchMessage().. |
| MF_WINDOW_WORKQUEUE = 1, | | MF_WINDOW_WORKQUEUE = 1, |
|
| | |
| | // |
| | // |
| | MF_MULTITHREADED_WORKQUEUE = 2, // common MT threadpool |
| } MFASYNC_WORKQUEUE_TYPE; | | } MFASYNC_WORKQUEUE_TYPE; |
| | |
| STDAPI MFAllocateWorkQueueEx( | | STDAPI MFAllocateWorkQueueEx( |
|
| __in MFASYNC_WORKQUEUE_TYPE WorkQueueType, | | _In_ MFASYNC_WORKQUEUE_TYPE WorkQueueType, |
| __out OUT DWORD * pdwWorkQueue); | | _Out_ OUT DWORD * pdwWorkQueue); |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
| // | | // |
| // Allocate a standard work queue. the behaviour is the same with: | | // Allocate a standard work queue. the behaviour is the same with: |
| // MFAllocateWorkQueueEx( MF_STANDARD_WORKQUEUE, pdwWorkQueue ) | | // MFAllocateWorkQueueEx( MF_STANDARD_WORKQUEUE, pdwWorkQueue ) |
| // | | // |
| STDAPI MFAllocateWorkQueue( | | STDAPI MFAllocateWorkQueue( |
|
| __out OUT DWORD * pdwWorkQueue); | | _Out_ OUT DWORD * pdwWorkQueue); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI MFLockWorkQueue( | | STDAPI MFLockWorkQueue( |
|
| __in DWORD dwWorkQueue); | | _In_ DWORD dwWorkQueue); |
| | |
| STDAPI MFUnlockWorkQueue( | | STDAPI MFUnlockWorkQueue( |
|
| __in DWORD dwWorkQueue); | | _In_ DWORD dwWorkQueue); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI MFBeginRegisterWorkQueueWithMMCSS( | | STDAPI MFBeginRegisterWorkQueueWithMMCSS( |
| DWORD dwWorkQueueId, | | DWORD dwWorkQueueId, |
|
| __in LPCWSTR wszClass, | | _In_ LPCWSTR wszClass, |
| DWORD dwTaskId, | | DWORD dwTaskId, |
|
| __in IMFAsyncCallback * pDoneCallback, | | _In_ IMFAsyncCallback * pDoneCallback, |
| __in IUnknown * pDoneState ); | | _In_ IUnknown * pDoneState ); |
| | |
| | STDAPI MFBeginRegisterWorkQueueWithMMCSSEx( |
| | DWORD dwWorkQueueId, |
| | _In_ LPCWSTR wszClass, |
| | DWORD dwTaskId, |
| | LONG lPriority, |
| | _In_ IMFAsyncCallback * pDoneCallback, |
| | _In_ IUnknown * pDoneState ); |
| | |
| STDAPI MFEndRegisterWorkQueueWithMMCSS( | | STDAPI MFEndRegisterWorkQueueWithMMCSS( |
|
| __in IMFAsyncResult * pResult, | | _In_ IMFAsyncResult * pResult, |
| __out DWORD * pdwTaskId ); | | _Out_ DWORD * pdwTaskId ); |
| | |
| STDAPI MFBeginUnregisterWorkQueueWithMMCSS( | | STDAPI MFBeginUnregisterWorkQueueWithMMCSS( |
| DWORD dwWorkQueueId, | | DWORD dwWorkQueueId, |
|
| __in IMFAsyncCallback * pDoneCallback, | | _In_ IMFAsyncCallback * pDoneCallback, |
| __in IUnknown * pDoneState ); | | _In_ IUnknown * pDoneState ); |
| | |
| STDAPI MFEndUnregisterWorkQueueWithMMCSS( | | STDAPI MFEndUnregisterWorkQueueWithMMCSS( |
|
| __in IMFAsyncResult * pResult ); | | _In_ IMFAsyncResult * pResult ); |
| | |
| STDAPI MFGetWorkQueueMMCSSClass( | | STDAPI MFGetWorkQueueMMCSSClass( |
| DWORD dwWorkQueueId, | | DWORD dwWorkQueueId, |
|
| __out_ecount_part_opt(*pcchClass,*pcchClass) LPWSTR pwszClass, | | _Out_writes_to_opt_(*pcchClass,*pcchClass) LPWSTR pwszClass, |
| __inout DWORD *pcchClass ); | | _Inout_ DWORD *pcchClass ); |
| | |
| STDAPI MFGetWorkQueueMMCSSTaskId( | | STDAPI MFGetWorkQueueMMCSSTaskId( |
| DWORD dwWorkQueueId, | | DWORD dwWorkQueueId, |
|
| __out LPDWORD pdwTaskId ); | | _Out_ LPDWORD pdwTaskId ); |
| | |
| | STDAPI MFRegisterPlatformWithMMCSS( |
| | _In_ PCWSTR wszClass, |
| | _Inout_ DWORD* pdwTaskId, |
| | _In_ LONG lPriority ); |
| | |
| | STDAPI MFUnregisterPlatformFromMMCSS(); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | STDAPI MFLockSharedWorkQueue( |
| | _In_ PCWSTR wszClass, |
| | _In_ LONG BasePriority, |
| | _Inout_ DWORD* pdwTaskId, |
| | _Out_ DWORD* pID ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| | STDAPI MFGetWorkQueueMMCSSPriority( |
| | DWORD dwWorkQueueId, |
| | _Out_ LONG* lPriority ); |
| | |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| ///////////////////////////////// Async Model ////////////////////////////// | | ///////////////////////////////// Async Model ////////////////////////////// |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // Instantiates the MF-provided Async Result implementation | | // Instantiates the MF-provided Async Result implementation |
| // | | // |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI MFCreateAsyncResult( | | STDAPI MFCreateAsyncResult( |
| IUnknown * punkObject, | | IUnknown * punkObject, |
| IMFAsyncCallback * pCallback, | | IMFAsyncCallback * pCallback, |
| IUnknown * punkState, | | IUnknown * punkState, |
|
| __out IMFAsyncResult ** ppAsyncResult ); | | _Out_ IMFAsyncResult ** ppAsyncResult ); |
| | |
| // | | // |
| // Helper for calling IMFAsyncCallback::Invoke | | // Helper for calling IMFAsyncCallback::Invoke |
| // | | // |
| STDAPI MFInvokeCallback( | | STDAPI MFInvokeCallback( |
| IMFAsyncResult * pAsyncResult ); | | IMFAsyncResult * pAsyncResult ); |
| | |
| // | | // |
| // MFASYNCRESULT struct. | | // MFASYNCRESULT struct. |
| // Any implementation of IMFAsyncResult must inherit from this struct; | | // Any implementation of IMFAsyncResult must inherit from this struct; |
| | |
| skipping to change at line 258 | | skipping to change at line 402 |
| { | | { |
| IMFAsyncResult AsyncResult; | | IMFAsyncResult AsyncResult; |
| OVERLAPPED overlapped; | | OVERLAPPED overlapped; |
| IMFAsyncCallback * pCallback; | | IMFAsyncCallback * pCallback; |
| HRESULT hrStatusResult; | | HRESULT hrStatusResult; |
| DWORD dwBytesTransferred; | | DWORD dwBytesTransferred; |
| HANDLE hEvent; | | HANDLE hEvent; |
| } MFASYNCRESULT; | | } MFASYNCRESULT; |
| #endif /* C style interface */ | | #endif /* C style interface */ |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| ///////////////////////////////// Files ////////////////////////////// | | ///////////////////////////////// Files ////////////////////////////// |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // Regardless of the access mode with which the file is opened, the sharing | | // Regardless of the access mode with which the file is opened, the sharing |
| // permissions will allow shared reading and deleting. | | // permissions will allow shared reading and deleting. |
| // | | // |
| STDAPI MFCreateFile( | | STDAPI MFCreateFile( |
| MF_FILE_ACCESSMODE AccessMode, | | MF_FILE_ACCESSMODE AccessMode, |
| MF_FILE_OPENMODE OpenMode, | | MF_FILE_OPENMODE OpenMode, |
| MF_FILE_FLAGS fFlags, | | MF_FILE_FLAGS fFlags, |
| LPCWSTR pwszFileURL, | | LPCWSTR pwszFileURL, |
|
| __out IMFByteStream **ppIByteStream ); | | _Out_ IMFByteStream **ppIByteStream ); |
| | |
| STDAPI MFCreateTempFile( | | STDAPI MFCreateTempFile( |
| MF_FILE_ACCESSMODE AccessMode, | | MF_FILE_ACCESSMODE AccessMode, |
| MF_FILE_OPENMODE OpenMode, | | MF_FILE_OPENMODE OpenMode, |
| MF_FILE_FLAGS fFlags, | | MF_FILE_FLAGS fFlags, |
|
| __out IMFByteStream **ppIByteStream ); | | _Out_ IMFByteStream **ppIByteStream ); |
| | |
| STDAPI MFBeginCreateFile( | | STDAPI MFBeginCreateFile( |
| MF_FILE_ACCESSMODE AccessMode, | | MF_FILE_ACCESSMODE AccessMode, |
| MF_FILE_OPENMODE OpenMode, | | MF_FILE_OPENMODE OpenMode, |
| MF_FILE_FLAGS fFlags, | | MF_FILE_FLAGS fFlags, |
| LPCWSTR pwszFilePath, | | LPCWSTR pwszFilePath, |
| IMFAsyncCallback * pCallback, | | IMFAsyncCallback * pCallback, |
| IUnknown * pState, | | IUnknown * pState, |
|
| __out IUnknown ** ppCancelCookie); | | _Out_ IUnknown ** ppCancelCookie); |
| | |
| STDAPI MFEndCreateFile( | | STDAPI MFEndCreateFile( |
| IMFAsyncResult * pResult, | | IMFAsyncResult * pResult, |
|
| __out IMFByteStream **ppFile ); | | _Out_ IMFByteStream **ppFile ); |
| | |
| STDAPI MFCancelCreateFile( | | STDAPI MFCancelCreateFile( |
| IUnknown * pCancelCookie); | | IUnknown * pCancelCookie); |
| | |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| ///////////////////////////////// Buffers ////////////////////////////// | | ///////////////////////////////// Buffers ////////////////////////////// |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // Creates an IMFMediaBuffer in memory | | // Creates an IMFMediaBuffer in memory |
| // | | // |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI MFCreateMemoryBuffer( | | STDAPI MFCreateMemoryBuffer( |
|
| __in DWORD cbMaxLength, | | _In_ DWORD cbMaxLength, |
| __out IMFMediaBuffer ** ppBuffer ); | | _Out_ IMFMediaBuffer ** ppBuffer ); |
| | |
| // | | // |
| // Creates an IMFMediaBuffer wrapper at the given offset and length | | // Creates an IMFMediaBuffer wrapper at the given offset and length |
| // within an existing IMFMediaBuffer | | // within an existing IMFMediaBuffer |
| // | | // |
| STDAPI MFCreateMediaBufferWrapper( | | STDAPI MFCreateMediaBufferWrapper( |
|
| __in IMFMediaBuffer * pBuffer, | | _In_ IMFMediaBuffer * pBuffer, |
| __in DWORD cbOffset, | | _In_ DWORD cbOffset, |
| __in DWORD dwLength, | | _In_ DWORD dwLength, |
| __out IMFMediaBuffer ** ppBuffer ); | | _Out_ IMFMediaBuffer ** ppBuffer ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // Creates a legacy buffer (IMediaBuffer) wrapper at the given offset within | | // Creates a legacy buffer (IMediaBuffer) wrapper at the given offset within |
| // an existing IMFMediaBuffer. | | // an existing IMFMediaBuffer. |
| // pSample is optional. It can point to the original IMFSample from which this | | // pSample is optional. It can point to the original IMFSample from which this |
| // IMFMediaBuffer came. If provided, then *ppMediaBuffer will succeed | | // IMFMediaBuffer came. If provided, then *ppMediaBuffer will succeed |
| // QueryInterface for IID_IMFSample, from which the original sample's attributes | | // QueryInterface for IID_IMFSample, from which the original sample's attributes |
| // can be obtained | | // can be obtained |
| // | | // |
| STDAPI MFCreateLegacyMediaBufferOnMFMediaBuffer( | | STDAPI MFCreateLegacyMediaBufferOnMFMediaBuffer( |
|
| __in_opt IMFSample * pSample, | | _In_opt_ IMFSample * pSample, |
| __in IMFMediaBuffer * pMFMediaBuffer, | | _In_ IMFMediaBuffer * pMFMediaBuffer, |
| __in DWORD cbOffset, | | _In_ DWORD cbOffset, |
| __deref_out IMediaBuffer ** ppMediaBuffer ); | | _Outptr_ IMediaBuffer ** ppMediaBuffer ); |
| | |
| // | | // |
| // Create a DirectX surface buffer | | // Create a DirectX surface buffer |
| // | | // |
|
| | #include <dxgiformat.h> |
| | STDAPI_(DXGI_FORMAT) MFMapDX9FormatToDXGIFormat( _In_ DWORD dx9 ); |
| | STDAPI_(DWORD) MFMapDXGIFormatToDX9Format( _In_ DXGI_FORMAT dx11 ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | STDAPI MFLockDXGIDeviceManager( |
| | _Out_opt_ UINT* pResetToken, |
| | _Outptr_ IMFDXGIDeviceManager** ppManager |
| | ); |
| | |
| | STDAPI MFUnlockDXGIDeviceManager(); |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI MFCreateDXSurfaceBuffer( | | STDAPI MFCreateDXSurfaceBuffer( |
|
| __in REFIID riid, | | _In_ REFIID riid, |
| __in IUnknown * punkSurface, | | _In_ IUnknown * punkSurface, |
| __in BOOL fBottomUpWhenLinear, | | _In_ BOOL fBottomUpWhenLinear, |
| __deref_out IMFMediaBuffer ** ppBuffer ); | | _Outptr_ IMFMediaBuffer ** ppBuffer ); |
| | |
| | STDAPI MFCreateWICBitmapBuffer( |
| | _In_ REFIID riid, |
| | _In_ IUnknown * punkSurface, |
| | _Outptr_ IMFMediaBuffer ** ppBuffer |
| | ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | STDAPI |
| | MFCreateDXGISurfaceBuffer( |
| | _In_ REFIID riid, |
| | _In_ IUnknown* punkSurface, |
| | _In_ UINT uSubresourceIndex, |
| | _In_ BOOL fBottomUpWhenLinear, |
| | _Outptr_ IMFMediaBuffer** ppBuffer |
| | ); |
| | |
| | STDAPI MFCreateVideoSampleAllocatorEx( |
| | _In_ REFIID riid, |
| | _Outptr_ void** ppSampleAllocator |
| | ); |
| | |
| | STDAPI |
| | MFCreateDXGIDeviceManager( |
| | _Out_ UINT* resetToken, |
| | _Outptr_ IMFDXGIDeviceManager** ppDeviceManager |
| | ); |
| | |
| | #define MF_E_DXGI_DEVICE_NOT_INITIALIZED ((HRESULT)0x80041000L) // DXVA2_E_NOT_ |
| | INITIALIZED |
| | #define MF_E_DXGI_NEW_VIDEO_DEVICE ((HRESULT)0x80041001L) // DXVA2_E_NEW_ |
| | VIDEO_DEVICE |
| | #define MF_E_DXGI_VIDEO_DEVICE_LOCKED ((HRESULT)0x80041002L) // DXVA2_E_VIDE |
| | O_DEVICE_LOCKED |
| | |
| // | | // |
| // Create an aligned memory buffer. | | // Create an aligned memory buffer. |
| // The following constants were chosen for parity with the alignment constants | | // The following constants were chosen for parity with the alignment constants |
| // in ntioapi.h | | // in ntioapi.h |
| // | | // |
| #define MF_1_BYTE_ALIGNMENT 0x00000000 | | #define MF_1_BYTE_ALIGNMENT 0x00000000 |
| #define MF_2_BYTE_ALIGNMENT 0x00000001 | | #define MF_2_BYTE_ALIGNMENT 0x00000001 |
| #define MF_4_BYTE_ALIGNMENT 0x00000003 | | #define MF_4_BYTE_ALIGNMENT 0x00000003 |
| #define MF_8_BYTE_ALIGNMENT 0x00000007 | | #define MF_8_BYTE_ALIGNMENT 0x00000007 |
| #define MF_16_BYTE_ALIGNMENT 0x0000000f | | #define MF_16_BYTE_ALIGNMENT 0x0000000f |
| #define MF_32_BYTE_ALIGNMENT 0x0000001f | | #define MF_32_BYTE_ALIGNMENT 0x0000001f |
| #define MF_64_BYTE_ALIGNMENT 0x0000003f | | #define MF_64_BYTE_ALIGNMENT 0x0000003f |
| #define MF_128_BYTE_ALIGNMENT 0x0000007f | | #define MF_128_BYTE_ALIGNMENT 0x0000007f |
| #define MF_256_BYTE_ALIGNMENT 0x000000ff | | #define MF_256_BYTE_ALIGNMENT 0x000000ff |
| #define MF_512_BYTE_ALIGNMENT 0x000001ff | | #define MF_512_BYTE_ALIGNMENT 0x000001ff |
| | |
| STDAPI MFCreateAlignedMemoryBuffer( | | STDAPI MFCreateAlignedMemoryBuffer( |
|
| __in DWORD cbMaxLength, | | _In_ DWORD cbMaxLength, |
| __in DWORD cbAligment, | | _In_ DWORD cbAligment, |
| __out IMFMediaBuffer ** ppBuffer ); | | _Out_ IMFMediaBuffer ** ppBuffer ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // This GUID is used in IMFGetService::GetService calls to retrieve | | // This GUID is used in IMFGetService::GetService calls to retrieve |
| // interfaces from the buffer. Its value is defined in evr.h | | // interfaces from the buffer. Its value is defined in evr.h |
| // | | // |
| EXTERN_C const GUID MR_BUFFER_SERVICE; | | EXTERN_C const GUID MR_BUFFER_SERVICE; |
| | |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| ///////////////////////////////// Events ////////////////////////////// | | ///////////////////////////////// Events ////////////////////////////// |
| /////////////////////////////////////////////////////////////////////////////// | | /////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // Instantiates the MF-provided Media Event implementation. | | // Instantiates the MF-provided Media Event implementation. |
| // | | // |
|
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI MFCreateMediaEvent( | | STDAPI MFCreateMediaEvent( |
|
| __in MediaEventType met, | | _In_ MediaEventType met, |
| __in REFGUID guidExtendedType, | | _In_ REFGUID guidExtendedType, |
| __in HRESULT hrStatus, | | _In_ HRESULT hrStatus, |
| __in_opt const PROPVARIANT * pvValue, | | _In_opt_ const PROPVARIANT * pvValue, |
| __out IMFMediaEvent ** ppEvent ); | | _Out_ IMFMediaEvent ** ppEvent ); |
| | |
| // | | // |
| // Instantiates an object that implements IMFMediaEventQueue. | | // Instantiates an object that implements IMFMediaEventQueue. |
| // Components that provide an IMFMediaEventGenerator can use this object | | // Components that provide an IMFMediaEventGenerator can use this object |
| // internally to do their Media Event Generator work for them. | | // internally to do their Media Event Generator work for them. |
| // IMFMediaEventGenerator calls should be forwarded to the similar call | | // IMFMediaEventGenerator calls should be forwarded to the similar call |
| // on this object's IMFMediaEventQueue interface (e.g. BeginGetEvent, | | // on this object's IMFMediaEventQueue interface (e.g. BeginGetEvent, |
| // EndGetEvent), and the various IMFMediaEventQueue::QueueEventXXX methods | | // EndGetEvent), and the various IMFMediaEventQueue::QueueEventXXX methods |
| // can be used to queue events that the caller will consume. | | // can be used to queue events that the caller will consume. |
| // | | // |
| STDAPI MFCreateEventQueue( | | STDAPI MFCreateEventQueue( |
|
| __out IMFMediaEventQueue **ppMediaEventQueue ); | | _Out_ IMFMediaEventQueue **ppMediaEventQueue ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // Event attributes | | // Event attributes |
| // Some of the common Media Foundation events have associated attributes | | // Some of the common Media Foundation events have associated attributes |
| // that go in their IMFAttributes stores | | // that go in their IMFAttributes stores |
| // | | // |
| | |
| // | | // |
| // MESessionCapabilitiesChanged attributes | | // MESessionCapabilitiesChanged attributes |
| // | | // |
| | |
| skipping to change at line 413 | | skipping to change at line 652 |
| // Type: UINT32 | | // Type: UINT32 |
| DEFINE_GUID(MF_EVENT_SESSIONCAPS, | | DEFINE_GUID(MF_EVENT_SESSIONCAPS, |
| 0x7e5ebcd0, 0x11b8, 0x4abe, 0xaf, 0xad, 0x10, 0xf6, 0x59, 0x9a, 0x7f, 0x42); | | 0x7e5ebcd0, 0x11b8, 0x4abe, 0xaf, 0xad, 0x10, 0xf6, 0x59, 0x9a, 0x7f, 0x42); |
| | |
| // MF_EVENT_SESSIONCAPS_DELTA {7E5EBCD1-11B8-4abe-AFAD-10F6599A7F42} | | // MF_EVENT_SESSIONCAPS_DELTA {7E5EBCD1-11B8-4abe-AFAD-10F6599A7F42} |
| // Type: UINT32 | | // Type: UINT32 |
| DEFINE_GUID(MF_EVENT_SESSIONCAPS_DELTA, | | DEFINE_GUID(MF_EVENT_SESSIONCAPS_DELTA, |
| 0x7e5ebcd1, 0x11b8, 0x4abe, 0xaf, 0xad, 0x10, 0xf6, 0x59, 0x9a, 0x7f, 0x42); | | 0x7e5ebcd1, 0x11b8, 0x4abe, 0xaf, 0xad, 0x10, 0xf6, 0x59, 0x9a, 0x7f, 0x42); |
| | |
| // Session capabilities bitflags | | // Session capabilities bitflags |
|
| #define MFSESSIONCAP_START 0x00000001 | | #define MFSESSIONCAP_START 0x00000001 |
| #define MFSESSIONCAP_SEEK 0x00000002 | | #define MFSESSIONCAP_SEEK 0x00000002 |
| #define MFSESSIONCAP_PAUSE 0x00000004 | | #define MFSESSIONCAP_PAUSE 0x00000004 |
| #define MFSESSIONCAP_RATE_FORWARD 0x00000010 | | #define MFSESSIONCAP_RATE_FORWARD 0x00000010 |
| #define MFSESSIONCAP_RATE_REVERSE 0x00000020 | | #define MFSESSIONCAP_RATE_REVERSE 0x00000020 |
| | #define MFSESSIONCAP_DOES_NOT_USE_NETWORK 0x00000040 |
| | |
| // | | // |
| // MESessionTopologyStatus attributes | | // MESessionTopologyStatus attributes |
| // | | // |
| | |
| // Possible values for MF_EVENT_TOPOLOGY_STATUS attribute. | | // Possible values for MF_EVENT_TOPOLOGY_STATUS attribute. |
| // | | // |
| // For a given topology, these status values will arrive via | | // For a given topology, these status values will arrive via |
| // MESessionTopologyStatus in the order below. | | // MESessionTopologyStatus in the order below. |
| // | | // |
| | |
| skipping to change at line 568 | | skipping to change at line 808 |
| | |
| // | | // |
| // MESinkInvalidated and MESessionStreamSinkFormatChanged attributes | | // MESinkInvalidated and MESessionStreamSinkFormatChanged attributes |
| // | | // |
| | |
| // MF_EVENT_OUTPUT_NODE {830f1a8b-c060-46dd-a801-1c95dec9b107} | | // MF_EVENT_OUTPUT_NODE {830f1a8b-c060-46dd-a801-1c95dec9b107} |
| // Type: UINT64 | | // Type: UINT64 |
| DEFINE_GUID(MF_EVENT_OUTPUT_NODE, | | DEFINE_GUID(MF_EVENT_OUTPUT_NODE, |
| 0x830f1a8b, 0xc060, 0x46dd, 0xa8, 0x01, 0x1c, 0x95, 0xde, 0xc9, 0xb1, 0x07); | | 0x830f1a8b, 0xc060, 0x46dd, 0xa8, 0x01, 0x1c, 0x95, 0xde, 0xc9, 0xb1, 0x07); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| #if (WINVER >= _WIN32_WINNT_WIN7) | | #if (WINVER >= _WIN32_WINNT_WIN7) |
| // | | // |
| // METransformNeedInput attributes | | // METransformNeedInput attributes |
| // | | // |
| | |
| // MF_EVENT_MFT_INPUT_STREAM_ID {F29C2CCA-7AE6-42d2-B284-BF837CC874E2} | | // MF_EVENT_MFT_INPUT_STREAM_ID {F29C2CCA-7AE6-42d2-B284-BF837CC874E2} |
| // Type: UINT32 | | // Type: UINT32 |
| DEFINE_GUID(MF_EVENT_MFT_INPUT_STREAM_ID, | | DEFINE_GUID(MF_EVENT_MFT_INPUT_STREAM_ID, |
| 0xf29c2cca, 0x7ae6, 0x42d2, 0xb2, 0x84, 0xbf, 0x83, 0x7c, 0xc8, 0x74, 0xe2); | | 0xf29c2cca, 0x7ae6, 0x42d2, 0xb2, 0x84, 0xbf, 0x83, 0x7c, 0xc8, 0x74, 0xe2); |
| | |
| | |
| skipping to change at line 589 | | skipping to change at line 835 |
| // METransformDrainComplete and METransformMarker attributes | | // METransformDrainComplete and METransformMarker attributes |
| // | | // |
| | |
| // MF_EVENT_MFT_CONTEXT {B7CD31F1-899E-4b41-80C9-26A896D32977} | | // MF_EVENT_MFT_CONTEXT {B7CD31F1-899E-4b41-80C9-26A896D32977} |
| // Type: UINT64 | | // Type: UINT64 |
| DEFINE_GUID(MF_EVENT_MFT_CONTEXT, | | DEFINE_GUID(MF_EVENT_MFT_CONTEXT, |
| 0xb7cd31f1, 0x899e, 0x4b41, 0x80, 0xc9, 0x26, 0xa8, 0x96, 0xd3, 0x29, 0x77); | | 0xb7cd31f1, 0x899e, 0x4b41, 0x80, 0xc9, 0x26, 0xa8, 0x96, 0xd3, 0x29, 0x77); |
| | |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
|
| | #if (WINVER >= _WIN32_WINNT_WINBLUE) |
| | // |
| | // MEContentProtectionMetadata attributes |
| | // |
| | |
| | // MF_EVENT_STREAM_METADATA_KEYDATA {CD59A4A1-4A3B-4BBD-8665-72A40FBEA776} |
| | // Type: BLOB |
| | DEFINE_GUID(MF_EVENT_STREAM_METADATA_KEYDATA, |
| | 0xcd59a4a1, 0x4a3b, 0x4bbd, 0x86, 0x65, 0x72, 0xa4, 0xf, 0xbe, 0xa7, 0x76); |
| | |
| | // MF_EVENT_STREAM_METADATA_CONTENT_KEYIDS {5063449D-CC29-4FC6-A75A-D247B35AF85C |
| | } |
| | // Type: BLOB |
| | DEFINE_GUID(MF_EVENT_STREAM_METADATA_CONTENT_KEYIDS, |
| | 0x5063449d, 0xcc29, 0x4fc6, 0xa7, 0x5a, 0xd2, 0x47, 0xb3, 0x5a, 0xf8, 0x5c); |
| | |
| | // MF_EVENT_STREAM_METADATA_SYSTEMID {1EA2EF64-BA16-4A36-8719-FE7560BA32AD} |
| | // Type: BLOB |
| | DEFINE_GUID(MF_EVENT_STREAM_METADATA_SYSTEMID, |
| | 0x1ea2ef64, 0xba16, 0x4a36, 0x87, 0x19, 0xfe, 0x75, 0x60, 0xba, 0x32, 0xad); |
| | |
| | #endif // (WINVER >= _WIN32_WINNT_WINBLUE) |
| | |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| /////////////////////////////// Samples ////////////////////////////////////// | | /////////////////////////////// Samples ////////////////////////////////////// |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // Creates an instance of the Media Foundation implementation of IMFSample | | // Creates an instance of the Media Foundation implementation of IMFSample |
| // | | // |
|
| STDAPI MFCreateSample( __out IMFSample **ppIMFSample ); | | |
| | STDAPI MFCreateSample( _Out_ IMFSample **ppIMFSample ); |
| | |
| // | | // |
| // Sample attributes | | // Sample attributes |
| // These are the well-known attributes that can be present on an MF Sample's | | // These are the well-known attributes that can be present on an MF Sample's |
| // IMFAttributes store | | // IMFAttributes store |
| // | | // |
| | |
| // MFSampleExtension_CleanPoint {9cdf01d8-a0f0-43ba-b077-eaa06cbd728a} | | // MFSampleExtension_CleanPoint {9cdf01d8-a0f0-43ba-b077-eaa06cbd728a} |
| // Type: UINT32 | | // Type: UINT32 |
| // If present and nonzero, indicates that the sample is a clean point (key | | // If present and nonzero, indicates that the sample is a clean point (key |
| | |
| skipping to change at line 628 | | skipping to change at line 897 |
| 0x9cdf01d9, 0xa0f0, 0x43ba, 0xb0, 0x77, 0xea, 0xa0, 0x6c, 0xbd, 0x72, 0x8a); | | 0x9cdf01d9, 0xa0f0, 0x43ba, 0xb0, 0x77, 0xea, 0xa0, 0x6c, 0xbd, 0x72, 0x8a); |
| | |
| // MFSampleExtension_Token {8294da66-f328-4805-b551-00deb4c57a61} | | // MFSampleExtension_Token {8294da66-f328-4805-b551-00deb4c57a61} |
| // Type: IUNKNOWN | | // Type: IUNKNOWN |
| // When an IMFMediaStream delivers a sample via MEMediaStream, this attribute | | // When an IMFMediaStream delivers a sample via MEMediaStream, this attribute |
| // should be set to the IUnknown *pToken argument that was passed with the | | // should be set to the IUnknown *pToken argument that was passed with the |
| // IMFMediaStream::RequestSample call to which this sample corresponds. | | // IMFMediaStream::RequestSample call to which this sample corresponds. |
| DEFINE_GUID(MFSampleExtension_Token, | | DEFINE_GUID(MFSampleExtension_Token, |
| 0x8294da66, 0xf328, 0x4805, 0xb5, 0x51, 0x00, 0xde, 0xb4, 0xc5, 0x7a, 0x61); | | 0x8294da66, 0xf328, 0x4805, 0xb5, 0x51, 0x00, 0xde, 0xb4, 0xc5, 0x7a, 0x61); |
| | |
|
| | // MFSampleExtension_DecodeTimestamp {73A954D4-09E2-4861-BEFC-94BD97C08E6E} |
| | // Type : UINT64 |
| | // If present, contains the DTS (Decoding Time Stamp) of the sample. |
| | DEFINE_GUID(MFSampleExtension_DecodeTimestamp, |
| | 0x73a954d4, 0x9e2, 0x4861, 0xbe, 0xfc, 0x94, 0xbd, 0x97, 0xc0, 0x8e, 0x6e); |
| | |
| | // MFSampleExtension_VideoEncodeQP {B2EFE478-F979-4C66-B95E-EE2B82C82F36} |
| | // Type: UINT64 |
| | // Used by video encoders to specify the QP used to encode the output sample. |
| | DEFINE_GUID(MFSampleExtension_VideoEncodeQP, |
| | 0xb2efe478, 0xf979, 0x4c66, 0xb9, 0x5e, 0xee, 0x2b, 0x82, 0xc8, 0x2f, 0x36); |
| | |
| | // MFSampleExtension_VideoEncPictureType {973704E6-CD14-483C-8F20-C9FC0928BAD5} |
| | // Type: UINT32 |
| | // Used by video encoders to specify the output sample's picture type. |
| | DEFINE_GUID(MFSampleExtension_VideoEncodePictureType, |
| | 0x973704e6, 0xcd14, 0x483c, 0x8f, 0x20, 0xc9, 0xfc, 0x9, 0x28, 0xba, 0xd5); |
| | |
| | // MFSampleExtension_FrameCorruption {B4DD4A8C-0BEB-44C4-8B75-B02B913B04F0} |
| | // Type: UINT32 |
| | // Indicates whether the frame in the sample has corruption or not |
| | // value 0 indicates that there is no corruption, or it is unknown |
| | // Value 1 indicates that some corruption was detected e.g, during decoding |
| | DEFINE_GUID(MFSampleExtension_FrameCorruption, |
| | 0xb4dd4a8c, 0xbeb, 0x44c4, 0x8b, 0x75, 0xb0, 0x2b, 0x91, 0x3b, 0x4, 0xf0); |
| | |
| | ///////////////////////////////////////////////////////////////////////////// |
| // | | // |
|
| // The following four sample attributes are used for encrypted samples | | // The following sample attributes are used for encrypted samples |
| // | | // |
|
| DEFINE_GUID(MFSampleExtension_DescrambleData, // UINT64 | | ///////////////////////////////////////////////////////////////////////////// |
| | |
| | // MFSampleExtension_DescrambleData {43483BE6-4903-4314-B032-2951365936FC} |
| | // Type: UINT64 |
| | DEFINE_GUID(MFSampleExtension_DescrambleData, |
| 0x43483be6, 0x4903, 0x4314, 0xb0, 0x32, 0x29, 0x51, 0x36, 0x59, 0x36, 0xfc); | | 0x43483be6, 0x4903, 0x4314, 0xb0, 0x32, 0x29, 0x51, 0x36, 0x59, 0x36, 0xfc); |
|
| DEFINE_GUID(MFSampleExtension_SampleKeyID, // UINT32 | | |
| | // MFSampleExtension_SampleKeyID {9ED713C8-9B87-4B26-8297-A93B0C5A8ACC} |
| | // Type: UINT32 |
| | DEFINE_GUID(MFSampleExtension_SampleKeyID, |
| 0x9ed713c8, 0x9b87, 0x4b26, 0x82, 0x97, 0xa9, 0x3b, 0x0c, 0x5a, 0x8a, 0xcc); | | 0x9ed713c8, 0x9b87, 0x4b26, 0x82, 0x97, 0xa9, 0x3b, 0x0c, 0x5a, 0x8a, 0xcc); |
|
| DEFINE_GUID(MFSampleExtension_GenKeyFunc, // UINT64 | | |
| | // MFSampleExtension_GenKeyFunc {441CA1EE-6B1F-4501-903A-DE87DF42F6ED} |
| | // Type: UINT64 |
| | DEFINE_GUID(MFSampleExtension_GenKeyFunc, |
| 0x441ca1ee, 0x6b1f, 0x4501, 0x90, 0x3a, 0xde, 0x87, 0xdf, 0x42, 0xf6, 0xed); | | 0x441ca1ee, 0x6b1f, 0x4501, 0x90, 0x3a, 0xde, 0x87, 0xdf, 0x42, 0xf6, 0xed); |
|
| DEFINE_GUID(MFSampleExtension_GenKeyCtx, // UINT64 | | |
| | // MFSampleExtension_GenKeyCtx {188120CB-D7DA-4B59-9B3E-9252FD37301C} |
| | // Type: UINT64 |
| | DEFINE_GUID(MFSampleExtension_GenKeyCtx, |
| 0x188120cb, 0xd7da, 0x4b59, 0x9b, 0x3e, 0x92, 0x52, 0xfd, 0x37, 0x30, 0x1c); | | 0x188120cb, 0xd7da, 0x4b59, 0x9b, 0x3e, 0x92, 0x52, 0xfd, 0x37, 0x30, 0x1c); |
|
| DEFINE_GUID(MFSampleExtension_PacketCrossOffsets, // BLOB | | |
| | // MFSampleExtension_PacketCrossOffsets {2789671D-389F-40BB-90D9-C282F77F9ABD} |
| | // Type: BLOB |
| | DEFINE_GUID(MFSampleExtension_PacketCrossOffsets, |
| 0x2789671d, 0x389f, 0x40bb, 0x90, 0xd9, 0xc2, 0x82, 0xf7, 0x7f, 0x9a, 0xbd); | | 0x2789671d, 0x389f, 0x40bb, 0x90, 0xd9, 0xc2, 0x82, 0xf7, 0x7f, 0x9a, 0xbd); |
| | |
|
| | // MFSampleExtension_Encryption_SampleID {6698B84E-0AFA-4330-AEB2-1C0A98D7A44D} |
| | // Type: UINT64 |
| | DEFINE_GUID(MFSampleExtension_Encryption_SampleID, |
| | 0x6698b84e, 0x0afa, 0x4330, 0xae, 0xb2, 0x1c, 0x0a, 0x98, 0xd7, 0xa4, 0x4d); |
| | |
| | // MFSampleExtension_Encryption_KeyID {76376591-795F-4DA1-86ED-9D46ECA109A9} |
| | // Type: BLOB |
| | DEFINE_GUID(MFSampleExtension_Encryption_KeyID, |
| | 0x76376591, 0x795f, 0x4da1, 0x86, 0xed, 0x9d, 0x46, 0xec, 0xa1, 0x09, 0xa9); |
| | |
| | // MFSampleExtension_Content_KeyID {C6C7F5B0-ACCA-415B-87D9-10441469EFC6} |
| | // Type: GUID |
| | DEFINE_GUID(MFSampleExtension_Content_KeyID, |
| | 0xc6c7f5b0, 0xacca, 0x415b, 0x87, 0xd9, 0x10, 0x44, 0x14, 0x69, 0xef, 0xc6); |
| | |
| | // MFSampleExtension_Encryption_SubSampleMappingSplit {FE0254B9-2AA5-4EDC-99F7-1 |
| | 7E89DBF9174} |
| | // Type: BLOB |
| | DEFINE_GUID(MFSampleExtension_Encryption_SubSampleMappingSplit, |
| | 0xfe0254b9, 0x2aa5, 0x4edc, 0x99, 0xf7, 0x17, 0xe8, 0x9d, 0xbf, 0x91, 0x74); |
| | |
| ///////////////////////////////////////////////////////////////////////////// | | ///////////////////////////////////////////////////////////////////////////// |
| // | | // |
| // MFSample STANDARD EXTENSION ATTRIBUTE GUIDs | | // MFSample STANDARD EXTENSION ATTRIBUTE GUIDs |
| // | | // |
| ///////////////////////////////////////////////////////////////////////////// | | ///////////////////////////////////////////////////////////////////////////// |
| | |
| // {b1d5830a-deb8-40e3-90fa-389943716461} MFSampleExtension_Interlaced
{UINT32 (BOOL)} | | // {b1d5830a-deb8-40e3-90fa-389943716461} MFSampleExtension_Interlaced
{UINT32 (BOOL)} |
| DEFINE_GUID(MFSampleExtension_Interlaced, | | DEFINE_GUID(MFSampleExtension_Interlaced, |
| 0xb1d5830a, 0xdeb8, 0x40e3, 0x90, 0xfa, 0x38, 0x99, 0x43, 0x71, 0x64, 0x61); | | 0xb1d5830a, 0xdeb8, 0x40e3, 0x90, 0xfa, 0x38, 0x99, 0x43, 0x71, 0x64, 0x61); |
| | |
| | |
| skipping to change at line 668 | | skipping to change at line 1000 |
| 0x304d257c, 0x7493, 0x4fbd, 0xb1, 0x49, 0x92, 0x28, 0xde, 0x8d, 0x9a, 0x99); | | 0x304d257c, 0x7493, 0x4fbd, 0xb1, 0x49, 0x92, 0x28, 0xde, 0x8d, 0x9a, 0x99); |
| | |
| // {9d85f816-658b-455a-bde0-9fa7e15ab8f9} MFSampleExtension_SingleField
{UINT32 (BOOL)} | | // {9d85f816-658b-455a-bde0-9fa7e15ab8f9} MFSampleExtension_SingleField
{UINT32 (BOOL)} |
| DEFINE_GUID(MFSampleExtension_SingleField, | | DEFINE_GUID(MFSampleExtension_SingleField, |
| 0x9d85f816, 0x658b, 0x455a, 0xbd, 0xe0, 0x9f, 0xa7, 0xe1, 0x5a, 0xb8, 0xf9); | | 0x9d85f816, 0x658b, 0x455a, 0xbd, 0xe0, 0x9f, 0xa7, 0xe1, 0x5a, 0xb8, 0xf9); |
| | |
| // {6852465a-ae1c-4553-8e9b-c3420fcb1637} MFSampleExtension_DerivedFromTopFiel
d {UINT32 (BOOL)} | | // {6852465a-ae1c-4553-8e9b-c3420fcb1637} MFSampleExtension_DerivedFromTopFiel
d {UINT32 (BOOL)} |
| DEFINE_GUID(MFSampleExtension_DerivedFromTopField, | | DEFINE_GUID(MFSampleExtension_DerivedFromTopField, |
| 0x6852465a, 0xae1c, 0x4553, 0x8e, 0x9b, 0xc3, 0x42, 0x0f, 0xcb, 0x16, 0x37); | | 0x6852465a, 0xae1c, 0x4553, 0x8e, 0x9b, 0xc3, 0x42, 0x0f, 0xcb, 0x16, 0x37); |
| | |
|
| | // MFSampleExtension_MeanAbsoluteDifference {1cdbde11-08b4-4311-a6dd-0f9f371907a |
| | a} |
| | // Type: UINT32 |
| | DEFINE_GUID(MFSampleExtension_MeanAbsoluteDifference, |
| | 0x1cdbde11, 0x08b4, 0x4311, 0xa6, 0xdd, 0x0f, 0x9f, 0x37, 0x19, 0x07, 0xaa); |
| | |
| | // MFSampleExtension_LongTermReferenceFrameInfo {9154733f-e1bd-41bf-81d3-fcd918f |
| | 71332} |
| | // Type: UINT32 |
| | DEFINE_GUID(MFSampleExtension_LongTermReferenceFrameInfo, |
| | 0x9154733f, 0xe1bd, 0x41bf, 0x81, 0xd3, 0xfc, 0xd9, 0x18, 0xf7, 0x13, 0x32); |
| | |
| | // MFSampleExtension_ROIRectangle {3414a438-4998-4d2c-be82-be3ca0b24d43} |
| | // Type: BLOB |
| | DEFINE_GUID(MFSampleExtension_ROIRectangle, |
| | 0x3414a438, 0x4998, 0x4d2c, 0xbe, 0x82, 0xbe, 0x3c, 0xa0, 0xb2, 0x4d, 0x43); |
| | |
| | typedef struct _ROI_AREA { |
| | RECT rect; |
| | INT32 QPDelta; |
| | } ROI_AREA, *PROI_AREA; |
| | |
| | /////////////////////////////////////////////////////////////////////////////// |
| | /// These are the attribute GUIDs that need to be used by MFT0 to provide |
| | /// thumbnail support. We are declaring these in our internal idl first and |
| | /// once we pass API spec review, we can move it to the public header. |
| | /////////////////////////////////////////////////////////////////////////////// |
| | // MFSampleExtension_PhotoThumbnail |
| | // {74BBC85C-C8BB-42DC-B586DA17FFD35DCC} |
| | // Type: IUnknown |
| | // If this attribute is set on the IMFSample provided by the MFT0, this will con |
| | tain the IMFMediaBuffer which contains |
| | // the Photo Thumbnail as configured using the KSPROPERTYSETID_ExtendedCameraCon |
| | trol. |
| | DEFINE_GUID(MFSampleExtension_PhotoThumbnail, |
| | 0x74BBC85C, 0xC8BB, 0x42DC, 0xB5, 0x86, 0xDA, 0x17, 0xFF, 0xD3, 0x5D, 0xCC); |
| | |
| | // MFSampleExtension_PhotoThumbnailMediaType |
| | // {61AD5420-EBF8-4143-89AF6BF25F672DEF} |
| | // Type: IUnknown |
| | // This attribute will contain the IMFMediaType which describes the image format |
| | type contained in the |
| | // MFSampleExtension_PhotoThumbnail attribute. If the MFSampleExtension_PhotoTh |
| | umbnail attribute |
| | // is present on the photo sample, the MFSampleExtension_PhotoThumbnailMediaType |
| | is required. |
| | DEFINE_GUID(MFSampleExtension_PhotoThumbnailMediaType, |
| | 0x61AD5420, 0xEBF8, 0x4143, 0x89, 0xAF, 0x6B, 0xF2, 0x5F, 0x67, 0x2D, 0xEF); |
| | |
| | // MFSampleExtension_CaptureMetadata |
| | // Type: IUnknown (IMFAttributes) |
| | // This is the IMFAttributes store for all the metadata related to the capture |
| | // pipeline. It can be potentially present on any IMFSample. |
| | DEFINE_GUID(MFSampleExtension_CaptureMetadata, |
| | 0x2EBE23A8, 0xFAF5, 0x444A, 0xA6, 0xA2, 0xEB, 0x81, 0x08, 0x80, 0xAB, 0x5D); |
| | |
| | // Put all MF_CAPTURE_METADATA_* here. |
| | // {0F9DD6C6-6003-45D8-BD59-F1F53E3D04E8} MF_CAPTURE_METADATA_PHOTO_FRAME_FLAS |
| | H {UINT32} |
| | // 0 - No flash triggered on this frame. |
| | // non-0 - Flash triggered on this frame. |
| | // Do not explicitly check for a value of 1 here, we may overload this to |
| | // indicate special types of flash going forward (applications should only |
| | // check for != 0 to indicate flash took place). |
| | DEFINE_GUID(MF_CAPTURE_METADATA_PHOTO_FRAME_FLASH, |
| | 0x0F9DD6C6, 0x6003, 0x45D8, 0xBD, 0x59, 0xF1, 0xF5, 0x3E, 0x3D, 0x04, 0xE8); |
| | |
| ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Attributes //////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Attributes //////////////////////////////////// |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| | |
| STDAPI | | STDAPI |
| MFCreateAttributes( | | MFCreateAttributes( |
|
| __out IMFAttributes** ppMFAttributes, | | _Out_ IMFAttributes** ppMFAttributes, |
| __in UINT32 cInitialSize | | _In_ UINT32 cInitialSize |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitAttributesFromBlob( | | MFInitAttributesFromBlob( |
|
| __in IMFAttributes* pAttributes, | | _In_ IMFAttributes* pAttributes, |
| __in_bcount(cbBufSize) const UINT8* pBuf, | | _In_reads_bytes_(cbBufSize) const UINT8* pBuf, |
| __in UINT cbBufSize | | _In_ UINT cbBufSize |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFGetAttributesAsBlobSize( | | MFGetAttributesAsBlobSize( |
|
| __in IMFAttributes* pAttributes, | | _In_ IMFAttributes* pAttributes, |
| __out UINT32* pcbBufSize | | _Out_ UINT32* pcbBufSize |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFGetAttributesAsBlob( | | MFGetAttributesAsBlob( |
|
| __in IMFAttributes* pAttributes, | | _In_ IMFAttributes* pAttributes, |
| __out_bcount(cbBufSize) UINT8* pBuf, | | _Out_writes_bytes_(cbBufSize) UINT8* pBuf, |
| __in UINT cbBufSize | | _In_ UINT cbBufSize |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// MFT Register & Enum ///////////////////////////
/ | | ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// MFT Register & Enum ///////////////////////////
/ |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // MFT Registry categories | | // MFT Registry categories |
| // | | // |
| | |
| #ifdef MF_INIT_GUIDS | | #ifdef MF_INIT_GUIDS |
| | |
| skipping to change at line 750 | | skipping to change at line 1141 |
| #if (WINVER >= _WIN32_WINNT_WIN7) | | #if (WINVER >= _WIN32_WINNT_WIN7) |
| // {302EA3FC-AA5F-47f9-9F7A-C2188BB163021}...MFT_CATEGORY_VIDEO_PROCESSOR | | // {302EA3FC-AA5F-47f9-9F7A-C2188BB163021}...MFT_CATEGORY_VIDEO_PROCESSOR |
| DEFINE_GUID(MFT_CATEGORY_VIDEO_PROCESSOR, | | DEFINE_GUID(MFT_CATEGORY_VIDEO_PROCESSOR, |
| 0x302ea3fc, 0xaa5f, 0x47f9, 0x9f, 0x7a, 0xc2, 0x18, 0x8b, 0xb1, 0x63, 0x2); | | 0x302ea3fc, 0xaa5f, 0x47f9, 0x9f, 0x7a, 0xc2, 0x18, 0x8b, 0xb1, 0x63, 0x2); |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
| // {90175d57-b7ea-4901-aeb3-933a8747756f} MFT_CATEGORY_OTHER | | // {90175d57-b7ea-4901-aeb3-933a8747756f} MFT_CATEGORY_OTHER |
| DEFINE_GUID(MFT_CATEGORY_OTHER, | | DEFINE_GUID(MFT_CATEGORY_OTHER, |
| 0x90175d57, 0xb7ea, 0x4901, 0xae, 0xb3, 0x93, 0x3a, 0x87, 0x47, 0x75, 0x6f); | | 0x90175d57, 0xb7ea, 0x4901, 0xae, 0xb3, 0x93, 0x3a, 0x87, 0x47, 0x75, 0x6f); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // "Flags" is for future expansion - for now must be 0 | | // "Flags" is for future expansion - for now must be 0 |
| // | | // |
| STDAPI | | STDAPI |
| MFTRegister( | | MFTRegister( |
|
| __in CLSID clsidMFT, | | _In_ CLSID clsidMFT, |
| __in GUID guidCategory, | | _In_ GUID guidCategory, |
| __in LPWSTR pszName, | | _In_ LPWSTR pszName, |
| __in UINT32 Flags, | | _In_ UINT32 Flags, |
| __in UINT32 cInputTypes, | | _In_ UINT32 cInputTypes, |
| __in_ecount_opt(cInputTypes) MFT_REGISTER_TYPE_INFO* pInputTypes, | | _In_reads_opt_(cInputTypes) MFT_REGISTER_TYPE_INFO* pInputTypes, |
| __in UINT32 cOutputTypes, | | _In_ UINT32 cOutputTypes, |
| __in_ecount_opt(cOutputTypes) MFT_REGISTER_TYPE_INFO* pOutputTypes, | | _In_reads_opt_(cOutputTypes) MFT_REGISTER_TYPE_INFO* pOutputTypes, |
| __in_opt IMFAttributes* pAttributes | | _In_opt_ IMFAttributes* pAttributes |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFTUnregister( | | MFTUnregister( |
|
| __in CLSID clsidMFT | | _In_ CLSID clsidMFT |
| ); | | ); |
| | |
| #if (WINVER >= _WIN32_WINNT_WIN7) | | #if (WINVER >= _WIN32_WINNT_WIN7) |
| // Register an MFT class in-process | | // Register an MFT class in-process |
| STDAPI | | STDAPI |
| MFTRegisterLocal( | | MFTRegisterLocal( |
|
| __in IClassFactory* pClassFactory, | | _In_ IClassFactory* pClassFactory, |
| __in REFGUID guidCategory, | | _In_ REFGUID guidCategory, |
| __in LPCWSTR pszName, | | _In_ LPCWSTR pszName, |
| __in UINT32 Flags, | | _In_ UINT32 Flags, |
| __in UINT32 cInputTypes, | | _In_ UINT32 cInputTypes, |
| __in_ecount_opt(cInputTypes)const MFT_REGISTER_TYPE_INFO* pInputTypes, | | _In_reads_opt_(cInputTypes)const MFT_REGISTER_TYPE_INFO* pInputTypes, |
| __in UINT32 cOutputTypes, | | _In_ UINT32 cOutputTypes, |
| __in_ecount_opt(cOutputTypes)const MFT_REGISTER_TYPE_INFO* pOutputTypes | | _In_reads_opt_(cOutputTypes)const MFT_REGISTER_TYPE_INFO* pOutputTypes |
| ); | | ); |
| | |
| // Unregister locally registered MFT | | // Unregister locally registered MFT |
| // If pClassFactory is NULL all local MFTs are unregistered | | // If pClassFactory is NULL all local MFTs are unregistered |
| STDAPI | | STDAPI |
| MFTUnregisterLocal( | | MFTUnregisterLocal( |
|
| __in_opt IClassFactory * pClassFactory | | _In_opt_ IClassFactory * pClassFactory |
| ); | | ); |
| | |
| // Register an MFT class in-process, by CLSID | | // Register an MFT class in-process, by CLSID |
| STDAPI | | STDAPI |
| MFTRegisterLocalByCLSID( | | MFTRegisterLocalByCLSID( |
|
| __in REFCLSID clisdMFT, | | _In_ REFCLSID clisdMFT, |
| __in REFGUID guidCategory, | | _In_ REFGUID guidCategory, |
| __in LPCWSTR pszName, | | _In_ LPCWSTR pszName, |
| __in UINT32 Flags, | | _In_ UINT32 Flags, |
| __in UINT32 cInputTypes, | | _In_ UINT32 cInputTypes, |
| __in_ecount_opt(cInputTypes)const MFT_REGISTER_TYPE_INFO* pInputTypes, | | _In_reads_opt_(cInputTypes)const MFT_REGISTER_TYPE_INFO* pInputTypes, |
| __in UINT32 cOutputTypes, | | _In_ UINT32 cOutputTypes, |
| __in_ecount_opt(cOutputTypes)const MFT_REGISTER_TYPE_INFO* pOutputTypes | | _In_reads_opt_(cOutputTypes)const MFT_REGISTER_TYPE_INFO* pOutputTypes |
| ); | | ); |
| | |
| // Unregister locally registered MFT by CLSID | | // Unregister locally registered MFT by CLSID |
| STDAPI | | STDAPI |
| MFTUnregisterLocalByCLSID( | | MFTUnregisterLocalByCLSID( |
|
| __in CLSID clsidMFT | | _In_ CLSID clsidMFT |
| ); | | ); |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
| // | | // |
| // result *ppclsidMFT must be freed with CoTaskMemFree. | | // result *ppclsidMFT must be freed with CoTaskMemFree. |
| // | | // |
| STDAPI | | STDAPI |
| MFTEnum( | | MFTEnum( |
|
| __in GUID guidCategory, | | _In_ GUID guidCategory, |
| __in UINT32 Flags, | | _In_ UINT32 Flags, |
| __in_opt MFT_REGISTER_TYPE_INFO* pInputType, | | _In_opt_ MFT_REGISTER_TYPE_INFO* pInputType, |
| __in_opt MFT_REGISTER_TYPE_INFO* pOutputType, | | _In_opt_ MFT_REGISTER_TYPE_INFO* pOutputType, |
| __in_opt IMFAttributes* pAttributes, | | _In_opt_ IMFAttributes* pAttributes, |
| __deref_out_ecount(*pcMFTs) CLSID** ppclsidMFT, // must be freed | | _Outptr_result_buffer_(*pcMFTs) CLSID** ppclsidMFT, // must be f |
| with CoTaskMemFree | | reed with CoTaskMemFree |
| __out UINT32* pcMFTs | | _Out_ UINT32* pcMFTs |
| ); | | ); |
| | |
| #if (WINVER >= _WIN32_WINNT_WIN7) | | #if (WINVER >= _WIN32_WINNT_WIN7) |
| | |
| enum _MFT_ENUM_FLAG | | enum _MFT_ENUM_FLAG |
| { | | { |
|
| MFT_ENUM_FLAG_SYNCMFT = 0x00000001, // Enumerates V1 MFTs. This is | | MFT_ENUM_FLAG_SYNCMFT = 0x00000001, // Enumerates V1 |
| default. | | MFTs. This is default. |
| MFT_ENUM_FLAG_ASYNCMFT = 0x00000002, // Enumerates only software asy | | MFT_ENUM_FLAG_ASYNCMFT = 0x00000002, // Enumerates on |
| nc MFTs also known as V2 MFTs | | ly software async MFTs also known as V2 MFTs |
| MFT_ENUM_FLAG_HARDWARE = 0x00000004, // Enumerates V2 hardware async | | MFT_ENUM_FLAG_HARDWARE = 0x00000004, // Enumerates V2 |
| MFTs | | hardware async MFTs |
| MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008, // Enumerates MFTs that require | | MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008, // Enumerates MF |
| unlocking | | Ts that require unlocking |
| MFT_ENUM_FLAG_LOCALMFT = 0x00000010, // Enumerates Locally (in-proce | | MFT_ENUM_FLAG_LOCALMFT = 0x00000010, // Enumerates Lo |
| ss) registered MFTs | | cally (in-process) registered MFTs |
| MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020, // Enumerates decoder MFTs used | | MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020, // Enumerates de |
| by transcode only | | coder MFTs used by transcode only |
| MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040, // Apply system local, do not u | | MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040, // Apply system |
| se and preferred sorting and filtering | | local, do not use and preferred sorting and filtering |
| MFT_ENUM_FLAG_ALL = 0x0000003F // Enumerates all MFTs includin | | MFT_ENUM_FLAG_SORTANDFILTER_APPROVED_ONLY = 0x000000C0, // Similar to MF |
| g SW and HW MFTs and applies filtering | | T_ENUM_FLAG_SORTANDFILTER, but apply a local policy of: MF_PLUGIN_CONTROL_POLICY |
| | _USE_APPROVED_PLUGINS |
| | MFT_ENUM_FLAG_SORTANDFILTER_WEB_ONLY = 0x00000140, // Similar to MF |
| | T_ENUM_FLAG_SORTANDFILTER, but apply a local policy of: MF_PLUGIN_CONTROL_POLICY |
| | _USE_WEB_PLUGINS |
| | MFT_ENUM_FLAG_ALL = 0x0000003F // Enumerates al |
| | l MFTs including SW and HW MFTs and applies filtering |
| }; | | }; |
| | |
| // | | // |
| // result *pppMFTActivate must be freed with CoTaskMemFree. Each IMFActivate poi
nter inside this | | // result *pppMFTActivate must be freed with CoTaskMemFree. Each IMFActivate poi
nter inside this |
| // buffer should be released. | | // buffer should be released. |
| // | | // |
| | |
| STDAPI | | STDAPI |
| MFTEnumEx( | | MFTEnumEx( |
|
| __in GUID guidCate | | _In_ GUID guidCate |
| gory, | | gory, |
| __in UINT32 Flags, | | _In_ UINT32 Flags, |
| __in_opt const MFT_REGISTER_TYPE_INFO* pInputTy | | _In_opt_ const MFT_REGISTER_TYPE_INFO* pInputTy |
| pe, | | pe, |
| __in_opt const MFT_REGISTER_TYPE_INFO* pOutputT | | _In_opt_ const MFT_REGISTER_TYPE_INFO* pOutputT |
| ype, | | ype, |
| __deref_out_ecount(*pnumMFTActivate) IMFActivate*** pppMFTAc | | _Outptr_result_buffer_(*pnumMFTActivate) IMFActivate*** pppM |
| tivate, | | FTActivate, |
| __out UINT32* pnumMFTA | | _Out_ UINT32* pnumMFTA |
| ctivate | | ctivate |
| ); | | ); |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
| // | | // |
| // results *pszName, *ppInputTypes, and *ppOutputTypes must be freed with CoTask
MemFree. | | // results *pszName, *ppInputTypes, and *ppOutputTypes must be freed with CoTask
MemFree. |
| // *ppAttributes must be released. | | // *ppAttributes must be released. |
| // | | // |
| STDAPI | | STDAPI |
| MFTGetInfo( | | MFTGetInfo( |
|
| __in CLSID clsidMFT, | | _In_ CLSID clsidMFT, |
| __out_opt LPWSTR* pszName, | | _Out_opt_ LPWSTR* pszName, |
| __deref_opt_out_ecount(*pcInputTypes) MFT_REGISTER_TYPE_INFO** ppInputTy | | _Outptr_opt_result_buffer_(*pcInputTypes) MFT_REGISTER_TYPE_INFO** ppInp |
| pes, | | utTypes, |
| __out_opt UINT32* pcInputTy | | _Out_opt_ UINT32* pcInputTy |
| pes, | | pes, |
| __deref_opt_out_ecount(*pcOutputTypes) MFT_REGISTER_TYPE_INFO** ppOutputT | | _Outptr_opt_result_buffer_(*pcOutputTypes) MFT_REGISTER_TYPE_INFO** ppOut |
| ypes, | | putTypes, |
| __out_opt UINT32* pcOutputT | | _Out_opt_ UINT32* pcOutputT |
| ypes, | | ypes, |
| __deref_opt_out_opt IMFAttributes** ppAttribu | | _Outptr_opt_result_maybenull_ IMFAttributes** |
| tes | | ppAttributes |
| ); | | ); |
| | |
| #if (WINVER >= _WIN32_WINNT_WIN7) | | #if (WINVER >= _WIN32_WINNT_WIN7) |
| | |
| // | | // |
| // Get the plugin control API | | // Get the plugin control API |
| // | | // |
| STDAPI | | STDAPI |
| MFGetPluginControl( | | MFGetPluginControl( |
|
| __out IMFPluginControl **ppPluginControl | | _Out_ IMFPluginControl **ppPluginControl |
| ); | | ); |
| | |
| // | | // |
| // Get MFT's merit - checking that is has a valid certificate | | // Get MFT's merit - checking that is has a valid certificate |
| // | | // |
| STDAPI | | STDAPI |
| MFGetMFTMerit( | | MFGetMFTMerit( |
|
| __inout IUnknown *pMFT, | | _Inout_ IUnknown *pMFT, |
| __in UINT32 cbVerifier, | | _In_ UINT32 cbVerifier, |
| __in_bcount(cbVerifier) const BYTE * verifier, | | _In_reads_bytes_(cbVerifier) const BYTE * verifier, |
| __out DWORD *merit | | _Out_ DWORD *merit |
| ); | | ); |
| | |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #if (WINVER >= _WIN32_WINNT_WIN8) |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| | STDAPI |
| | MFRegisterLocalSchemeHandler( |
| | _In_ PCWSTR szScheme, |
| | _In_ IMFActivate* pActivate |
| | ); |
| | |
| | STDAPI |
| | MFRegisterLocalByteStreamHandler( |
| | _In_ PCWSTR szFileExtension, |
| | _In_ PCWSTR szMimeType, |
| | _In_ IMFActivate* pActivate |
| | ); |
| | |
| | // |
| | // Wrap a bytestream so that calling Close() on the wrapper |
| | // closes the wrapper but not the original bytestream. The |
| | // original bytestream can then be passed to another |
| | // media source for instance. |
| | // |
| | STDAPI |
| | MFCreateMFByteStreamWrapper( |
| | _In_ IMFByteStream* pStream, |
| | _Out_ IMFByteStream** ppStreamWrapper |
| | ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | // |
| | // Create a MF activate object that can instantiate media extension objects. |
| | // The activate object supports both IMFActivate and IClassFactory. |
| | // |
| | STDAPI |
| | MFCreateMediaExtensionActivate( |
| | _In_ PCWSTR szActivatableClassId, |
| | _In_opt_ IUnknown* pConfiguration, |
| | _In_ REFIID riid, |
| | _Outptr_ LPVOID* ppvObject |
| | ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #endif // (WINVER >= _WIN32_WINNT_WIN8) |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// MFT Attributes GUIDs /////////////////////////
/// | | ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// MFT Attributes GUIDs /////////////////////////
/// |
| // {53476A11-3F13-49fb-AC42-EE2733C96741} MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE {UIN
T32 (BOOL)} | | // {53476A11-3F13-49fb-AC42-EE2733C96741} MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE {UIN
T32 (BOOL)} |
| DEFINE_GUID(MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE, | | DEFINE_GUID(MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE, |
| 0x53476a11, 0x3f13, 0x49fb, 0xac, 0x42, 0xee, 0x27, 0x33, 0xc9, 0x67, 0x41); | | 0x53476a11, 0x3f13, 0x49fb, 0xac, 0x42, 0xee, 0x27, 0x33, 0xc9, 0x67, 0x41); |
|
| | | |
| ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Media Type GUIDs //////////////////////////// | | ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Media Type GUIDs //////////////////////////// |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // GUIDs for media types | | // GUIDs for media types |
| // | | // |
| | |
| // | | // |
| // In MF, media types for uncompressed video formats MUST be composed from a Fou
rCC or D3DFORMAT combined with | | // In MF, media types for uncompressed video formats MUST be composed from a Fou
rCC or D3DFORMAT combined with |
| // the "base GUID" {00000000-0000-0010-8000-00AA00389B71} by replacing the initi
al 32 bits with the FourCC/D3DFORMAT | | // the "base GUID" {00000000-0000-0010-8000-00AA00389B71} by replacing the initi
al 32 bits with the FourCC/D3DFORMAT |
| | |
| skipping to change at line 918 | | skipping to change at line 1375 |
| // the "base GUID" {00000000-0000-0010-8000-00AA00389B71} by replacing the initi
al 32 bits with the FourCC/D3DFORMAT | | // the "base GUID" {00000000-0000-0010-8000-00AA00389B71} by replacing the initi
al 32 bits with the FourCC/D3DFORMAT |
| // | | // |
| // Audio media types for types which already have a defined wFormatTag value can
be constructed similarly, by | | // Audio media types for types which already have a defined wFormatTag value can
be constructed similarly, by |
| // putting the wFormatTag (zero-extended to 32 bits) into the first 32 bits of t
he base GUID. | | // putting the wFormatTag (zero-extended to 32 bits) into the first 32 bits of t
he base GUID. |
| // | | // |
| // Compressed video or audio can also use any well-known GUID that exists, or ca
n create a new GUID. | | // Compressed video or audio can also use any well-known GUID that exists, or ca
n create a new GUID. |
| // | | // |
| // GUIDs for common media types are defined below. | | // GUIDs for common media types are defined below. |
| // | | // |
| | |
|
| | // needed for the GUID definition macros below |
| #ifndef FCC | | #ifndef FCC |
| #define FCC(ch4) ((((DWORD)(ch4) & 0xFF) << 24) | \ | | #define FCC(ch4) ((((DWORD)(ch4) & 0xFF) << 24) | \ |
| (((DWORD)(ch4) & 0xFF00) << 8) | \ | | (((DWORD)(ch4) & 0xFF00) << 8) | \ |
| (((DWORD)(ch4) & 0xFF0000) >> 8) | \ | | (((DWORD)(ch4) & 0xFF0000) >> 8) | \ |
| (((DWORD)(ch4) & 0xFF000000) >> 24)) | | (((DWORD)(ch4) & 0xFF000000) >> 24)) |
| #endif | | #endif |
| | |
| // | | // |
| // this macro creates a media type GUID from a FourCC, D3DFMT, or WAVE_FORMAT | | // this macro creates a media type GUID from a FourCC, D3DFMT, or WAVE_FORMAT |
| // | | // |
| | |
| skipping to change at line 1003 | | skipping to change at line 1461 |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_MSS1, FCC('MSS1') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_MSS1, FCC('MSS1') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_MSS2, FCC('MSS2') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_MSS2, FCC('MSS2') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_MPG1, FCC('MPG1') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_MPG1, FCC('MPG1') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVSL, FCC('dvsl') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVSL, FCC('dvsl') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVSD, FCC('dvsd') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVSD, FCC('dvsd') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVHD, FCC('dvhd') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVHD, FCC('dvhd') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_DV25, FCC('dv25') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_DV25, FCC('dv25') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_DV50, FCC('dv50') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_DV50, FCC('dv50') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVH1, FCC('dvh1') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVH1, FCC('dvh1') ); |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVC, FCC('dvc ') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_DVC, FCC('dvc ') ); |
|
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_H264, FCC('H264') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_H264, FCC('H264') ); // assume MFVide
oFormat_H264 is frame aligned. that is, each input sample has one complete compr
essed frame (one frame picture, two field pictures or a single unpaired field pi
cture) |
| DEFINE_MEDIATYPE_GUID( MFVideoFormat_MJPG, FCC('MJPG') ); | | DEFINE_MEDIATYPE_GUID( MFVideoFormat_MJPG, FCC('MJPG') ); |
|
| | DEFINE_MEDIATYPE_GUID( MFVideoFormat_420O, FCC('420O') ); |
| | DEFINE_MEDIATYPE_GUID( MFVideoFormat_HEVC, FCC('HEVC') ); |
| | DEFINE_MEDIATYPE_GUID( MFVideoFormat_HEVC_ES, FCC('HEVS') ); |
| | |
| | #if (WINVER >= _WIN32_WINNT_WIN8) |
| | DEFINE_MEDIATYPE_GUID( MFVideoFormat_H263, FCC('H263') ); |
| | #endif // (WINVER >= _WIN32_WINNT_WIN8) |
| | |
| // | | // |
| // undef the local D3DFMT definitions to avoid later clashes with D3D headers | | // undef the local D3DFMT definitions to avoid later clashes with D3D headers |
| // | | // |
| #ifdef LOCAL_D3DFMT_DEFINES | | #ifdef LOCAL_D3DFMT_DEFINES |
| #undef D3DFMT_R8G8B8 | | #undef D3DFMT_R8G8B8 |
| #undef D3DFMT_A8R8G8B8 | | #undef D3DFMT_A8R8G8B8 |
| #undef D3DFMT_X8R8G8B8 | | #undef D3DFMT_X8R8G8B8 |
| #undef D3DFMT_R5G6B5 | | #undef D3DFMT_R5G6B5 |
| #undef D3DFMT_X1R5G5B5 | | #undef D3DFMT_X1R5G5B5 |
| #undef D3DFMT_P8 | | #undef D3DFMT_P8 |
| #undef LOCAL_D3DFMT_DEFINES | | #undef LOCAL_D3DFMT_DEFINES |
| #endif | | #endif |
| | |
|
| | // assume MFVideoFormat_H264_ES may not be frame aligned. that is, each input sa |
| | mple may have one partial frame, |
| | // multiple frames, some frames plus some partial frame |
| | // or more general, N.M frames, N is the integer part and M is the fractional pa |
| | rt. |
| | // |
| | // {3F40F4F0-5622-4FF8-B6D8-A17A584BEE5E} MFVideoFormat_H264_ES |
| | DEFINE_GUID(MFVideoFormat_H264_ES, |
| | 0x3f40f4f0, 0x5622, 0x4ff8, 0xb6, 0xd8, 0xa1, 0x7a, 0x58, 0x4b, 0xee, 0x5e); |
| | |
| // | | // |
| // some legacy formats that don't fit the common pattern | | // some legacy formats that don't fit the common pattern |
| // | | // |
| | |
| // {e06d8026-db46-11cf-b4d1-00805f6cbbea} MFVideoFormat_MPEG2 | | // {e06d8026-db46-11cf-b4d1-00805f6cbbea} MFVideoFormat_MPEG2 |
| DEFINE_GUID(MFVideoFormat_MPEG2, | | DEFINE_GUID(MFVideoFormat_MPEG2, |
| 0xe06d8026, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); | | 0xe06d8026, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); |
| | |
| #define MFVideoFormat_MPG2 MFVideoFormat_MPEG2 | | #define MFVideoFormat_MPG2 MFVideoFormat_MPEG2 |
| | |
| | |
| skipping to change at line 1047 | | skipping to change at line 1520 |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_DRM, WAVE_FORMAT_DRM ); | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_DRM, WAVE_FORMAT_DRM ); |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_WMAudioV8, WAVE_FORMAT_WMAUDIO2 ); | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_WMAudioV8, WAVE_FORMAT_WMAUDIO2 ); |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_WMAudioV9, WAVE_FORMAT_WMAUDIO3 ); | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_WMAudioV9, WAVE_FORMAT_WMAUDIO3 ); |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_WMAudio_Lossless, WAVE_FORMAT_WMAUDIO_LOSS
LESS ); | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_WMAudio_Lossless, WAVE_FORMAT_WMAUDIO_LOSS
LESS ); |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_WMASPDIF, WAVE_FORMAT_WMASPDIF ); | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_WMASPDIF, WAVE_FORMAT_WMASPDIF ); |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_MSP1, WAVE_FORMAT_WMAVOICE9 ); | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_MSP1, WAVE_FORMAT_WMAVOICE9 ); |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_MP3, WAVE_FORMAT_MPEGLAYER3 )
; | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_MP3, WAVE_FORMAT_MPEGLAYER3 )
; |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_MPEG, WAVE_FORMAT_MPEG ); | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_MPEG, WAVE_FORMAT_MPEG ); |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_AAC, WAVE_FORMAT_MPEG_HEAAC )
; | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_AAC, WAVE_FORMAT_MPEG_HEAAC )
; |
| DEFINE_MEDIATYPE_GUID( MFAudioFormat_ADTS, WAVE_FORMAT_MPEG_ADTS_AA
C ); | | DEFINE_MEDIATYPE_GUID( MFAudioFormat_ADTS, WAVE_FORMAT_MPEG_ADTS_AA
C ); |
|
| | DEFINE_MEDIATYPE_GUID( MFAudioFormat_AMR_NB, WAVE_FORMAT_AMR_NB ); |
| | DEFINE_MEDIATYPE_GUID( MFAudioFormat_AMR_WB, WAVE_FORMAT_AMR_WB ); |
| | DEFINE_MEDIATYPE_GUID( MFAudioFormat_AMR_WP, WAVE_FORMAT_AMR_WP ); |
| | |
| | // These audio types are not derived from an existing wFormatTag |
| | DEFINE_GUID(MFAudioFormat_Dolby_AC3, // == MEDIASUBTYPE_DOLBY_AC3 defined in ksu |
| | uids.h |
| | 0xe06d802c, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x05f, 0x6c, 0xbb, 0xea); |
| | DEFINE_GUID(MFAudioFormat_Dolby_DDPlus, // == MEDIASUBTYPE_DOLBY_DDPLUS defined |
| | in wmcodecdsp.h |
| | 0xa7fb87af, 0x2d02, 0x42fb, 0xa4, 0xd4, 0x5, 0xcd, 0x93, 0x84, 0x3b, 0xdd); |
| | |
| // | | // |
| // MPEG-4 media types | | // MPEG-4 media types |
| // | | // |
| | |
| // {00000000-767a-494d-b478-f29d25dc9037} MFMPEG4Format_Base | | // {00000000-767a-494d-b478-f29d25dc9037} MFMPEG4Format_Base |
| DEFINE_GUID(MFMPEG4Format_Base, | | DEFINE_GUID(MFMPEG4Format_Base, |
| 0x00000000, 0x767a, 0x494d, 0xb4, 0x78, 0xf2, 0x9d, 0x25, 0xdc, 0x90, 0x37); | | 0x00000000, 0x767a, 0x494d, 0xb4, 0x78, 0xf2, 0x9d, 0x25, 0xdc, 0x90, 0x37); |
| | |
| ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Media Type Attributes GUIDs ///////////////////
///////// | | ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Media Type Attributes GUIDs ///////////////////
///////// |
| | |
| skipping to change at line 1098 | | skipping to change at line 1580 |
| // MF_MT_SAMPLE_SIZE is only valid if MF_MT_FIXED_SIZED_SAMPLES is TRUE | | // MF_MT_SAMPLE_SIZE is only valid if MF_MT_FIXED_SIZED_SAMPLES is TRUE |
| // | | // |
| // {dad3ab78-1990-408b-bce2-eba673dacc10} MF_MT_SAMPLE_SIZE {UIN
T32} | | // {dad3ab78-1990-408b-bce2-eba673dacc10} MF_MT_SAMPLE_SIZE {UIN
T32} |
| DEFINE_GUID(MF_MT_SAMPLE_SIZE, | | DEFINE_GUID(MF_MT_SAMPLE_SIZE, |
| 0xdad3ab78, 0x1990, 0x408b, 0xbc, 0xe2, 0xeb, 0xa6, 0x73, 0xda, 0xcc, 0x10); | | 0xdad3ab78, 0x1990, 0x408b, 0xbc, 0xe2, 0xeb, 0xa6, 0x73, 0xda, 0xcc, 0x10); |
| | |
| // 4d3f7b23-d02f-4e6c-9bee-e4bf2c6c695d MF_MT_WRAPPED_TYPE {Blo
b} | | // 4d3f7b23-d02f-4e6c-9bee-e4bf2c6c695d MF_MT_WRAPPED_TYPE {Blo
b} |
| DEFINE_GUID(MF_MT_WRAPPED_TYPE, | | DEFINE_GUID(MF_MT_WRAPPED_TYPE, |
| 0x4d3f7b23, 0xd02f, 0x4e6c, 0x9b, 0xee, 0xe4, 0xbf, 0x2c, 0x6c, 0x69, 0x5d); | | 0x4d3f7b23, 0xd02f, 0x4e6c, 0x9b, 0xee, 0xe4, 0xbf, 0x2c, 0x6c, 0x69, 0x5d); |
| | |
|
| | #if (WINVER >= _WIN32_WINNT_WIN8) |
| | |
| | // |
| | // Media Type & Sample attributes for 3D Video |
| | // |
| | |
| | // {CB5E88CF-7B5B-476b-85AA-1CA5AE187555} MF_MT_VIDEO_3D |
| | {UINT32 (BOOL)} |
| | DEFINE_GUID( MF_MT_VIDEO_3D, |
| | 0xcb5e88cf, 0x7b5b, 0x476b, 0x85, 0xaa, 0x1c, 0xa5, 0xae, 0x18, 0x75, 0x55); |
| | |
| | // Enum describing the packing for 3D video frames |
| | typedef enum _MFVideo3DFormat { |
| | MFVideo3DSampleFormat_BaseView = 0, |
| | MFVideo3DSampleFormat_MultiView = 1, |
| | MFVideo3DSampleFormat_Packed_LeftRight = 2, |
| | MFVideo3DSampleFormat_Packed_TopBottom = 3, |
| | } MFVideo3DFormat; |
| | |
| | // {5315d8a0-87c5-4697-b793-666c67c49b} MF_MT_VIDEO_3D_FORMAT |
| | {UINT32 (anyof MFVideo3DFormat)} |
| | DEFINE_GUID(MF_MT_VIDEO_3D_FORMAT, |
| | 0x5315d8a0, 0x87c5, 0x4697, 0xb7, 0x93, 0x66, 0x6, 0xc6, 0x7c, 0x4, 0x9b); |
| | |
| | // {BB077E8A-DCBF-42eb-AF60-418DF98AA495} MF_MT_VIDEO_3D_NUM_VIEW |
| | {UINT32} |
| | DEFINE_GUID( MF_MT_VIDEO_3D_NUM_VIEWS, |
| | 0xbb077e8a, 0xdcbf, 0x42eb, 0xaf, 0x60, 0x41, 0x8d, 0xf9, 0x8a, 0xa4, 0x95); |
| | |
| | // {6D4B7BFF-5629-4404-948C-C634F4CE26D4} MF_MT_VIDEO_3D_LEFT_IS_BASE |
| | {UINT32} |
| | DEFINE_GUID( MF_MT_VIDEO_3D_LEFT_IS_BASE, |
| | 0x6d4b7bff, 0x5629, 0x4404, 0x94, 0x8c, 0xc6, 0x34, 0xf4, 0xce, 0x26, 0xd4); |
| | |
| | // {EC298493-0ADA-4ea1-A4FE-CBBD36CE9331} MF_MT_VIDEO_3D_FIRST_IS_LEFT |
| | {UINT32 (BOOL)} |
| | DEFINE_GUID( MF_MT_VIDEO_3D_FIRST_IS_LEFT, |
| | 0xec298493, 0xada, 0x4ea1, 0xa4, 0xfe, 0xcb, 0xbd, 0x36, 0xce, 0x93, 0x31); |
| | |
| | // MFSampleExtension_3DVideo {F86F97A4-DD54-4e2e-9A5E-55FC2D7 |
| | 4A005} |
| | // Type: UINT32 |
| | // If present and nonzero, indicates that the sample contains 3D Video data |
| | DEFINE_GUID( MFSampleExtension_3DVideo, |
| | 0xf86f97a4, 0xdd54, 0x4e2e, 0x9a, 0x5e, 0x55, 0xfc, 0x2d, 0x74, 0xa0, 0x05); |
| | |
| | // Enum describing the packing for 3D video frames in a sample |
| | typedef enum _MFVideo3DSampleFormat { |
| | MFSampleExtension_3DVideo_MultiView = 1, |
| | MFSampleExtension_3DVideo_Packed = 0, |
| | } MFVideo3DSampleFormat; |
| | |
| | // MFSampleExtension_3DVideo_SampleFormat {08671772-E36F-4cff-97B3-D72E209 |
| | 87A48} |
| | // Type: UINT32 |
| | // The value of this attribute is a member of the MFVideo3DSampleFormat enumerat |
| | ion. |
| | // MFVideo3DSampleFormat enumeration identifies how 3D views are stored in the s |
| | ample |
| | // - in a packed representation, all views are stored in a single buffer |
| | // - in a multiview representation, each view is stored in its own buffer |
| | DEFINE_GUID( MFSampleExtension_3DVideo_SampleFormat, |
| | 0x8671772, 0xe36f, 0x4cff, 0x97, 0xb3, 0xd7, 0x2e, 0x20, 0x98, 0x7a, 0x48); |
| | |
| | // Enum describing the video rotation formats |
| | // Only the values of 0, 90, 180, and 270 are valid. |
| | typedef enum _MFVideoRotationFormat { |
| | MFVideoRotationFormat_0 = 0, |
| | MFVideoRotationFormat_90 = 90, |
| | MFVideoRotationFormat_180 = 180, |
| | MFVideoRotationFormat_270 = 270, |
| | } MFVideoRotationFormat; |
| | |
| | // MF_MT_VIDEO_ROTATION {C380465D-2271-428C-9B83-ECEA3B4A85C1} |
| | // Type: UINT32 |
| | // Description: MF_MT_VIDEO_ROTATION attribute means the degree that the content |
| | // has already been rotated in the counter clockwise direction. |
| | // Currently, only the values of 0, 90, 180, and 270 are valid for MF_MT_VIDEO_R |
| | OTATION. |
| | // For convenience, these currently supported values are enumerated in MFVideoRo |
| | tationFormat. |
| | // Example: if the media type has MF_MT_VIDEO_ROTATION set as MFVideoRotationFor |
| | mat_90, |
| | // it means the content has been rotated 90 degree in the counter clockwise dire |
| | ction. |
| | // If the content was actually rotated 90 degree in the clockwise direction, 90 |
| | degree in |
| | // clockwise should be converted into 270 degree in the counter clockwise direct |
| | ion and set |
| | // the attribute MF_MT_VIDEO_ROTATION as MFVideoRotationFormat_270 accordingly. |
| | DEFINE_GUID(MF_MT_VIDEO_ROTATION, |
| | 0xc380465d, 0x2271, 0x428c, 0x9b, 0x83, 0xec, 0xea, 0x3b, 0x4a, 0x85, 0xc1); |
| | |
| | #endif // (WINVER >= _WIN32_WINNT_WIN8) |
| | |
| // | | // |
| // AUDIO data | | // AUDIO data |
| // | | // |
| | |
| // {37e48bf5-645e-4c5b-89de-ada9e29b696a} MF_MT_AUDIO_NUM_CHANNELS
{UINT32} | | // {37e48bf5-645e-4c5b-89de-ada9e29b696a} MF_MT_AUDIO_NUM_CHANNELS
{UINT32} |
| DEFINE_GUID(MF_MT_AUDIO_NUM_CHANNELS, | | DEFINE_GUID(MF_MT_AUDIO_NUM_CHANNELS, |
| 0x37e48bf5, 0x645e, 0x4c5b, 0x89, 0xde, 0xad, 0xa9, 0xe2, 0x9b, 0x69, 0x6a); | | 0x37e48bf5, 0x645e, 0x4c5b, 0x89, 0xde, 0xad, 0xa9, 0xe2, 0x9b, 0x69, 0x6a); |
| | |
| // {5faeeae7-0290-4c31-9e8a-c534f68d9dba} MF_MT_AUDIO_SAMPLES_PER_SECOND
{UINT32} | | // {5faeeae7-0290-4c31-9e8a-c534f68d9dba} MF_MT_AUDIO_SAMPLES_PER_SECOND
{UINT32} |
| DEFINE_GUID(MF_MT_AUDIO_SAMPLES_PER_SECOND, | | DEFINE_GUID(MF_MT_AUDIO_SAMPLES_PER_SECOND, |
| | |
| skipping to change at line 1217 | | skipping to change at line 1779 |
| 0xc459a2e8, 0x3d2c, 0x4e44, 0xb1, 0x32, 0xfe, 0xe5, 0x15, 0x6c, 0x7b, 0xb0); | | 0xc459a2e8, 0x3d2c, 0x4e44, 0xb1, 0x32, 0xfe, 0xe5, 0x15, 0x6c, 0x7b, 0xb0); |
| | |
| // {c6376a1e-8d0a-4027-be45-6d9a0ad39bb6} MF_MT_PIXEL_ASPECT_RATIO {UIN
T64 (HI32(Numerator),LO32(Denominator))} | | // {c6376a1e-8d0a-4027-be45-6d9a0ad39bb6} MF_MT_PIXEL_ASPECT_RATIO {UIN
T64 (HI32(Numerator),LO32(Denominator))} |
| DEFINE_GUID(MF_MT_PIXEL_ASPECT_RATIO, | | DEFINE_GUID(MF_MT_PIXEL_ASPECT_RATIO, |
| 0xc6376a1e, 0x8d0a, 0x4027, 0xbe, 0x45, 0x6d, 0x9a, 0x0a, 0xd3, 0x9b, 0xb6); | | 0xc6376a1e, 0x8d0a, 0x4027, 0xbe, 0x45, 0x6d, 0x9a, 0x0a, 0xd3, 0x9b, 0xb6); |
| | |
| // {8772f323-355a-4cc7-bb78-6d61a048ae82} MF_MT_DRM_FLAGS {UIN
T32 (anyof MFVideoDRMFlags)} | | // {8772f323-355a-4cc7-bb78-6d61a048ae82} MF_MT_DRM_FLAGS {UIN
T32 (anyof MFVideoDRMFlags)} |
| DEFINE_GUID(MF_MT_DRM_FLAGS, | | DEFINE_GUID(MF_MT_DRM_FLAGS, |
| 0x8772f323, 0x355a, 0x4cc7, 0xbb, 0x78, 0x6d, 0x61, 0xa0, 0x48, 0xae, 0x82); | | 0x8772f323, 0x355a, 0x4cc7, 0xbb, 0x78, 0x6d, 0x61, 0xa0, 0x48, 0xae, 0x82); |
| | |
|
| | #if (WINVER >= _WIN32_WINNT_WIN8) |
| | |
| | // {24974215-1B7B-41e4-8625-AC469F2DEDAA} MF_MT_TIMESTAMP_CAN_BE_DTS {UIN |
| | T32 (BOOL)} |
| | DEFINE_GUID(MF_MT_TIMESTAMP_CAN_BE_DTS, |
| | 0x24974215, 0x1b7b, 0x41e4, 0x86, 0x25, 0xac, 0x46, 0x9f, 0x2d, 0xed, 0xaa); |
| | |
| | #endif // (WINVER >= _WIN32_WINNT_WIN8) |
| | |
| typedef enum _MFVideoDRMFlags { | | typedef enum _MFVideoDRMFlags { |
| MFVideoDRMFlag_None = 0, | | MFVideoDRMFlag_None = 0, |
| MFVideoDRMFlag_AnalogProtected = 1, | | MFVideoDRMFlag_AnalogProtected = 1, |
| MFVideoDRMFlag_DigitallyProtected = 2, | | MFVideoDRMFlag_DigitallyProtected = 2, |
| } MFVideoDRMFlags; | | } MFVideoDRMFlags; |
| | |
| // {4d0e73e5-80ea-4354-a9d0-1176ceb028ea} MF_MT_PAD_CONTROL_FLAGS {UIN
T32 (oneof MFVideoPadFlags)} | | // {4d0e73e5-80ea-4354-a9d0-1176ceb028ea} MF_MT_PAD_CONTROL_FLAGS {UIN
T32 (oneof MFVideoPadFlags)} |
| DEFINE_GUID(MF_MT_PAD_CONTROL_FLAGS, | | DEFINE_GUID(MF_MT_PAD_CONTROL_FLAGS, |
| 0x4d0e73e5, 0x80ea, 0x4354, 0xa9, 0xd0, 0x11, 0x76, 0xce, 0xb0, 0x28, 0xea); | | 0x4d0e73e5, 0x80ea, 0x4354, 0xa9, 0xd0, 0x11, 0x76, 0xce, 0xb0, 0x28, 0xea); |
| | |
| | |
| skipping to change at line 1259 | | skipping to change at line 1829 |
| 0xe2724bb8, 0xe676, 0x4806, 0xb4, 0xb2, 0xa8, 0xd6, 0xef, 0xb4, 0x4c, 0xcd); | | 0xe2724bb8, 0xe676, 0x4806, 0xb4, 0xb2, 0xa8, 0xd6, 0xef, 0xb4, 0x4c, 0xcd); |
| | |
| // {5fb0fce9-be5c-4935-a811-ec838f8eed93} MF_MT_TRANSFER_FUNCTION {UIN
T32 (oneof MFVideoTransferFunction)} | | // {5fb0fce9-be5c-4935-a811-ec838f8eed93} MF_MT_TRANSFER_FUNCTION {UIN
T32 (oneof MFVideoTransferFunction)} |
| DEFINE_GUID(MF_MT_TRANSFER_FUNCTION, | | DEFINE_GUID(MF_MT_TRANSFER_FUNCTION, |
| 0x5fb0fce9, 0xbe5c, 0x4935, 0xa8, 0x11, 0xec, 0x83, 0x8f, 0x8e, 0xed, 0x93); | | 0x5fb0fce9, 0xbe5c, 0x4935, 0xa8, 0x11, 0xec, 0x83, 0x8f, 0x8e, 0xed, 0x93); |
| | |
| // {dbfbe4d7-0740-4ee0-8192-850ab0e21935} MF_MT_VIDEO_PRIMARIES {UIN
T32 (oneof MFVideoPrimaries)} | | // {dbfbe4d7-0740-4ee0-8192-850ab0e21935} MF_MT_VIDEO_PRIMARIES {UIN
T32 (oneof MFVideoPrimaries)} |
| DEFINE_GUID(MF_MT_VIDEO_PRIMARIES, | | DEFINE_GUID(MF_MT_VIDEO_PRIMARIES, |
| 0xdbfbe4d7, 0x0740, 0x4ee0, 0x81, 0x92, 0x85, 0x0a, 0xb0, 0xe2, 0x19, 0x35); | | 0xdbfbe4d7, 0x0740, 0x4ee0, 0x81, 0x92, 0x85, 0x0a, 0xb0, 0xe2, 0x19, 0x35); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // {47537213-8cfb-4722-aa34-fbc9e24d77b8} MF_MT_CUSTOM_VIDEO_PRIMARIES {BLO
B (MT_CUSTOM_VIDEO_PRIMARIES)} | | // {47537213-8cfb-4722-aa34-fbc9e24d77b8} MF_MT_CUSTOM_VIDEO_PRIMARIES {BLO
B (MT_CUSTOM_VIDEO_PRIMARIES)} |
| DEFINE_GUID(MF_MT_CUSTOM_VIDEO_PRIMARIES, | | DEFINE_GUID(MF_MT_CUSTOM_VIDEO_PRIMARIES, |
| 0x47537213, 0x8cfb, 0x4722, 0xaa, 0x34, 0xfb, 0xc9, 0xe2, 0x4d, 0x77, 0xb8); | | 0x47537213, 0x8cfb, 0x4722, 0xaa, 0x34, 0xfb, 0xc9, 0xe2, 0x4d, 0x77, 0xb8); |
| | |
| typedef struct _MT_CUSTOM_VIDEO_PRIMARIES { | | typedef struct _MT_CUSTOM_VIDEO_PRIMARIES { |
| float fRx; | | float fRx; |
| float fRy; | | float fRy; |
| float fGx; | | float fGx; |
| float fGy; | | float fGy; |
| float fBx; | | float fBx; |
| float fBy; | | float fBy; |
| float fWx; | | float fWx; |
| float fWy; | | float fWy; |
| } MT_CUSTOM_VIDEO_PRIMARIES; | | } MT_CUSTOM_VIDEO_PRIMARIES; |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| // {3e23d450-2c75-4d25-a00e-b91670d12327} MF_MT_YUV_MATRIX {UIN
T32 (oneof MFVideoTransferMatrix)} | | // {3e23d450-2c75-4d25-a00e-b91670d12327} MF_MT_YUV_MATRIX {UIN
T32 (oneof MFVideoTransferMatrix)} |
| DEFINE_GUID(MF_MT_YUV_MATRIX, | | DEFINE_GUID(MF_MT_YUV_MATRIX, |
| 0x3e23d450, 0x2c75, 0x4d25, 0xa0, 0x0e, 0xb9, 0x16, 0x70, 0xd1, 0x23, 0x27); | | 0x3e23d450, 0x2c75, 0x4d25, 0xa0, 0x0e, 0xb9, 0x16, 0x70, 0xd1, 0x23, 0x27); |
| | |
| // {53a0529c-890b-4216-8bf9-599367ad6d20} MF_MT_VIDEO_LIGHTING {UIN
T32 (oneof MFVideoLighting)} | | // {53a0529c-890b-4216-8bf9-599367ad6d20} MF_MT_VIDEO_LIGHTING {UIN
T32 (oneof MFVideoLighting)} |
| DEFINE_GUID(MF_MT_VIDEO_LIGHTING, | | DEFINE_GUID(MF_MT_VIDEO_LIGHTING, |
| 0x53a0529c, 0x890b, 0x4216, 0x8b, 0xf9, 0x59, 0x93, 0x67, 0xad, 0x6d, 0x20); | | 0x53a0529c, 0x890b, 0x4216, 0x8b, 0xf9, 0x59, 0x93, 0x67, 0xad, 0x6d, 0x20); |
| | |
| // {c21b8ee5-b956-4071-8daf-325edf5cab11} MF_MT_VIDEO_NOMINAL_RANGE {UIN
T32 (oneof MFNominalRange)} | | // {c21b8ee5-b956-4071-8daf-325edf5cab11} MF_MT_VIDEO_NOMINAL_RANGE {UIN
T32 (oneof MFNominalRange)} |
| DEFINE_GUID(MF_MT_VIDEO_NOMINAL_RANGE, | | DEFINE_GUID(MF_MT_VIDEO_NOMINAL_RANGE, |
| | |
| skipping to change at line 1314 | | skipping to change at line 1896 |
| 0x20332624, 0xfb0d, 0x4d9e, 0xbd, 0x0d, 0xcb, 0xf6, 0x78, 0x6c, 0x10, 0x2e); | | 0x20332624, 0xfb0d, 0x4d9e, 0xbd, 0x0d, 0xcb, 0xf6, 0x78, 0x6c, 0x10, 0x2e); |
| | |
| // {799cabd6-3508-4db4-a3c7-569cd533deb1} MF_MT_AVG_BIT_ERROR_RATE {UIN
T32} | | // {799cabd6-3508-4db4-a3c7-569cd533deb1} MF_MT_AVG_BIT_ERROR_RATE {UIN
T32} |
| DEFINE_GUID(MF_MT_AVG_BIT_ERROR_RATE, | | DEFINE_GUID(MF_MT_AVG_BIT_ERROR_RATE, |
| 0x799cabd6, 0x3508, 0x4db4, 0xa3, 0xc7, 0x56, 0x9c, 0xd5, 0x33, 0xde, 0xb1); | | 0x799cabd6, 0x3508, 0x4db4, 0xa3, 0xc7, 0x56, 0x9c, 0xd5, 0x33, 0xde, 0xb1); |
| | |
| // {c16eb52b-73a1-476f-8d62-839d6a020652} MF_MT_MAX_KEYFRAME_SPACING {UIN
T32} | | // {c16eb52b-73a1-476f-8d62-839d6a020652} MF_MT_MAX_KEYFRAME_SPACING {UIN
T32} |
| DEFINE_GUID(MF_MT_MAX_KEYFRAME_SPACING, | | DEFINE_GUID(MF_MT_MAX_KEYFRAME_SPACING, |
| 0xc16eb52b, 0x73a1, 0x476f, 0x8d, 0x62, 0x83, 0x9d, 0x6a, 0x02, 0x06, 0x52); | | 0xc16eb52b, 0x73a1, 0x476f, 0x8d, 0x62, 0x83, 0x9d, 0x6a, 0x02, 0x06, 0x52); |
| | |
|
| | // {b6bc765f-4c3b-40a4-bd51-2535b66fe09d} MF_MT_USER_DATA {BLO |
| | B} |
| | DEFINE_GUID(MF_MT_USER_DATA, |
| | 0xb6bc765f, 0x4c3b, 0x40a4, 0xbd, 0x51, 0x25, 0x35, 0xb6, 0x6f, 0xe0, 0x9d); |
| | |
| // | | // |
| // VIDEO - uncompressed format data | | // VIDEO - uncompressed format data |
| // | | // |
| | |
| // {644b4e48-1e02-4516-b0eb-c01ca9d49ac6} MF_MT_DEFAULT_STRIDE {UIN
T32 (INT32)} // in bytes | | // {644b4e48-1e02-4516-b0eb-c01ca9d49ac6} MF_MT_DEFAULT_STRIDE {UIN
T32 (INT32)} // in bytes |
| DEFINE_GUID(MF_MT_DEFAULT_STRIDE, | | DEFINE_GUID(MF_MT_DEFAULT_STRIDE, |
| 0x644b4e48, 0x1e02, 0x4516, 0xb0, 0xeb, 0xc0, 0x1c, 0xa9, 0xd4, 0x9a, 0xc6); | | 0x644b4e48, 0x1e02, 0x4516, 0xb0, 0xeb, 0xc0, 0x1c, 0xa9, 0xd4, 0x9a, 0xc6); |
| | |
| // {6d283f42-9846-4410-afd9-654d503b1a54} MF_MT_PALETTE {BLO
B (array of MFPaletteEntry - usually 256)} | | // {6d283f42-9846-4410-afd9-654d503b1a54} MF_MT_PALETTE {BLO
B (array of MFPaletteEntry - usually 256)} |
| DEFINE_GUID(MF_MT_PALETTE, | | DEFINE_GUID(MF_MT_PALETTE, |
| 0x6d283f42, 0x9846, 0x4410, 0xaf, 0xd9, 0x65, 0x4d, 0x50, 0x3b, 0x1a, 0x54); | | 0x6d283f42, 0x9846, 0x4410, 0xaf, 0xd9, 0x65, 0x4d, 0x50, 0x3b, 0x1a, 0x54); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // the following is only used for legacy data that was stuck at the end of the f
ormat block when the type | | // the following is only used for legacy data that was stuck at the end of the f
ormat block when the type |
| // was converted from a VIDEOINFOHEADER or VIDEOINFOHEADER2 block in an AM_MEDIA
_TYPE. | | // was converted from a VIDEOINFOHEADER or VIDEOINFOHEADER2 block in an AM_MEDIA
_TYPE. |
| // | | // |
|
| // {b6bc765f-4c3b-40a4-bd51-2535b66fe09d} MF_MT_USER_DATA {BLO | | |
| B} | | |
| DEFINE_GUID(MF_MT_USER_DATA, | | |
| 0xb6bc765f, 0x4c3b, 0x40a4, 0xbd, 0x51, 0x25, 0x35, 0xb6, 0x6f, 0xe0, 0x9d); | | |
| | |
| // {73d1072d-1870-4174-a063-29ff4ff6c11e} | | // {73d1072d-1870-4174-a063-29ff4ff6c11e} |
| DEFINE_GUID(MF_MT_AM_FORMAT_TYPE, | | DEFINE_GUID(MF_MT_AM_FORMAT_TYPE, |
| 0x73d1072d, 0x1870, 0x4174, 0xa0, 0x63, 0x29, 0xff, 0x4f, 0xf6, 0xc1, 0x1e); | | 0x73d1072d, 0x1870, 0x4174, 0xa0, 0x63, 0x29, 0xff, 0x4f, 0xf6, 0xc1, 0x1e); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | // |
| | // VIDEO - Generic compressed video extra data |
| | // |
| | |
| | // {ad76a80b-2d5c-4e0b-b375-64e520137036} MF_MT_VIDEO_PROFILE {UIN |
| | T32} This is an alias of MF_MT_MPEG2_PROFILE |
| | DEFINE_GUID(MF_MT_VIDEO_PROFILE, |
| | 0xad76a80b, 0x2d5c, 0x4e0b, 0xb3, 0x75, 0x64, 0xe5, 0x20, 0x13, 0x70, 0x36); |
| | |
| | // {96f66574-11c5-4015-8666-bff516436da7} MF_MT_VIDEO_LEVEL {UIN |
| | T32} This is an alias of MF_MT_MPEG2_LEVEL |
| | DEFINE_GUID(MF_MT_VIDEO_LEVEL, |
| | 0x96f66574, 0x11c5, 0x4015, 0x86, 0x66, 0xbf, 0xf5, 0x16, 0x43, 0x6d, 0xa7); |
| | |
| // | | // |
| // VIDEO - MPEG1/2 extra data | | // VIDEO - MPEG1/2 extra data |
| // | | // |
| | |
| // {91f67885-4333-4280-97cd-bd5a6c03a06e} MF_MT_MPEG_START_TIME_CODE {UIN
T32} | | // {91f67885-4333-4280-97cd-bd5a6c03a06e} MF_MT_MPEG_START_TIME_CODE {UIN
T32} |
| DEFINE_GUID(MF_MT_MPEG_START_TIME_CODE, | | DEFINE_GUID(MF_MT_MPEG_START_TIME_CODE, |
| 0x91f67885, 0x4333, 0x4280, 0x97, 0xcd, 0xbd, 0x5a, 0x6c, 0x03, 0xa0, 0x6e); | | 0x91f67885, 0x4333, 0x4280, 0x97, 0xcd, 0xbd, 0x5a, 0x6c, 0x03, 0xa0, 0x6e); |
| | |
| // {ad76a80b-2d5c-4e0b-b375-64e520137036} MF_MT_MPEG2_PROFILE {UIN
T32 (oneof AM_MPEG2Profile)} | | // {ad76a80b-2d5c-4e0b-b375-64e520137036} MF_MT_MPEG2_PROFILE {UIN
T32 (oneof AM_MPEG2Profile)} |
| DEFINE_GUID(MF_MT_MPEG2_PROFILE, | | DEFINE_GUID(MF_MT_MPEG2_PROFILE, |
| | |
| skipping to change at line 1362 | | skipping to change at line 1969 |
| 0x96f66574, 0x11c5, 0x4015, 0x86, 0x66, 0xbf, 0xf5, 0x16, 0x43, 0x6d, 0xa7); | | 0x96f66574, 0x11c5, 0x4015, 0x86, 0x66, 0xbf, 0xf5, 0x16, 0x43, 0x6d, 0xa7); |
| | |
| // {31e3991d-f701-4b2f-b426-8ae3bda9e04b} MF_MT_MPEG2_FLAGS {UIN
T32 (anyof AMMPEG2_xxx flags)} | | // {31e3991d-f701-4b2f-b426-8ae3bda9e04b} MF_MT_MPEG2_FLAGS {UIN
T32 (anyof AMMPEG2_xxx flags)} |
| DEFINE_GUID(MF_MT_MPEG2_FLAGS, | | DEFINE_GUID(MF_MT_MPEG2_FLAGS, |
| 0x31e3991d, 0xf701, 0x4b2f, 0xb4, 0x26, 0x8a, 0xe3, 0xbd, 0xa9, 0xe0, 0x4b); | | 0x31e3991d, 0xf701, 0x4b2f, 0xb4, 0x26, 0x8a, 0xe3, 0xbd, 0xa9, 0xe0, 0x4b); |
| | |
| // {3c036de7-3ad0-4c9e-9216-ee6d6ac21cb3} MF_MT_MPEG_SEQUENCE_HEADER {BLO
B} | | // {3c036de7-3ad0-4c9e-9216-ee6d6ac21cb3} MF_MT_MPEG_SEQUENCE_HEADER {BLO
B} |
| DEFINE_GUID(MF_MT_MPEG_SEQUENCE_HEADER, | | DEFINE_GUID(MF_MT_MPEG_SEQUENCE_HEADER, |
| 0x3c036de7, 0x3ad0, 0x4c9e, 0x92, 0x16, 0xee, 0x6d, 0x6a, 0xc2, 0x1c, 0xb3); | | 0x3c036de7, 0x3ad0, 0x4c9e, 0x92, 0x16, 0xee, 0x6d, 0x6a, 0xc2, 0x1c, 0xb3); |
| | |
|
| | // {A20AF9E8-928A-4B26-AAA9-F05C74CAC47C} MF_MT_MPEG2_STANDARD {UIN |
| | T32 (0 for default MPEG2, 1 to use ATSC standard, 2 to use DVB standard, 3 to u |
| | se ARIB standard)} |
| | DEFINE_GUID(MF_MT_MPEG2_STANDARD, |
| | 0xa20af9e8, 0x928a, 0x4b26, 0xaa, 0xa9, 0xf0, 0x5c, 0x74, 0xca, 0xc4, 0x7c); |
| | |
| | // {5229BA10-E29D-4F80-A59C-DF4F180207D2} MF_MT_MPEG2_TIMECODE {UIN |
| | T32 (0 for no timecode, 1 to append an 4 byte timecode to the front of each tran |
| | sport packet)} |
| | DEFINE_GUID(MF_MT_MPEG2_TIMECODE, |
| | 0x5229ba10, 0xe29d, 0x4f80, 0xa5, 0x9c, 0xdf, 0x4f, 0x18, 0x2, 0x7, 0xd2); |
| | |
| | // {825D55E4-4F12-4197-9EB3-59B6E4710F06} MF_MT_MPEG2_CONTENT_PACKET {UIN |
| | T32 (0 for no content packet, 1 to append a 14 byte Content Packet header accord |
| | ing to the ARIB specification to the beginning a transport packet at 200-1000 ms |
| | intervals.)} |
| | DEFINE_GUID(MF_MT_MPEG2_CONTENT_PACKET, |
| | 0x825d55e4, 0x4f12, 0x4197, 0x9e, 0xb3, 0x59, 0xb6, 0xe4, 0x71, 0xf, 0x6); |
| | |
| | // |
| | // VIDEO - H264 extra data |
| | // |
| | |
| | // {F5929986-4C45-4FBB-BB49-6CC534D05B9B} {UINT32, UVC 1.5 H.264 format descrip |
| | tor: bMaxCodecConfigDelay} |
| | DEFINE_GUID(MF_MT_H264_MAX_CODEC_CONFIG_DELAY, |
| | 0xf5929986, 0x4c45, 0x4fbb, 0xbb, 0x49, 0x6c, 0xc5, 0x34, 0xd0, 0x5b, 0x9b); |
| | |
| | // {C8BE1937-4D64-4549-8343-A8086C0BFDA5} {UINT32, UVC 1.5 H.264 format descript |
| | or: bmSupportedSliceModes} |
| | DEFINE_GUID(MF_MT_H264_SUPPORTED_SLICE_MODES, |
| | 0xc8be1937, 0x4d64, 0x4549, 0x83, 0x43, 0xa8, 0x8, 0x6c, 0xb, 0xfd, 0xa5); |
| | |
| | // {89A52C01-F282-48D2-B522-22E6AE633199} {UINT32, UVC 1.5 H.264 format descript |
| | or: bmSupportedSyncFrameTypes} |
| | DEFINE_GUID(MF_MT_H264_SUPPORTED_SYNC_FRAME_TYPES, |
| | 0x89a52c01, 0xf282, 0x48d2, 0xb5, 0x22, 0x22, 0xe6, 0xae, 0x63, 0x31, 0x99); |
| | |
| | // {E3854272-F715-4757-BA90-1B696C773457} {UINT32, UVC 1.5 H.264 format descript |
| | or: bResolutionScaling} |
| | DEFINE_GUID(MF_MT_H264_RESOLUTION_SCALING, |
| | 0xe3854272, 0xf715, 0x4757, 0xba, 0x90, 0x1b, 0x69, 0x6c, 0x77, 0x34, 0x57); |
| | |
| | // {9EA2D63D-53F0-4A34-B94E-9DE49A078CB3} {UINT32, UVC 1.5 H.264 format descript |
| | or: bSimulcastSupport} |
| | DEFINE_GUID(MF_MT_H264_SIMULCAST_SUPPORT, |
| | 0x9ea2d63d, 0x53f0, 0x4a34, 0xb9, 0x4e, 0x9d, 0xe4, 0x9a, 0x7, 0x8c, 0xb3); |
| | |
| | // {6A8AC47E-519C-4F18-9BB3-7EEAAEA5594D} {UINT32, UVC 1.5 H.264 format descript |
| | or: bmSupportedRateControlModes} |
| | DEFINE_GUID(MF_MT_H264_SUPPORTED_RATE_CONTROL_MODES, |
| | 0x6a8ac47e, 0x519c, 0x4f18, 0x9b, 0xb3, 0x7e, 0xea, 0xae, 0xa5, 0x59, 0x4d); |
| | |
| | // {45256D30-7215-4576-9336-B0F1BCD59BB2} {Blob of size 20 * sizeof(WORD), UVC |
| | 1.5 H.264 format descriptor: wMaxMBperSec*} |
| | DEFINE_GUID(MF_MT_H264_MAX_MB_PER_SEC, |
| | 0x45256d30, 0x7215, 0x4576, 0x93, 0x36, 0xb0, 0xf1, 0xbc, 0xd5, 0x9b, 0xb2); |
| | |
| | // {60B1A998-DC01-40CE-9736-ABA845A2DBDC} {UINT32, UVC 1.5 H.264 frame d |
| | escriptor: bmSupportedUsages} |
| | DEFINE_GUID(MF_MT_H264_SUPPORTED_USAGES, |
| | 0x60b1a998, 0xdc01, 0x40ce, 0x97, 0x36, 0xab, 0xa8, 0x45, 0xa2, 0xdb, 0xdc); |
| | |
| | // {BB3BD508-490A-11E0-99E4-1316DFD72085} {UINT32, UVC 1.5 H.264 frame d |
| | escriptor: bmCapabilities} |
| | DEFINE_GUID(MF_MT_H264_CAPABILITIES, |
| | 0xbb3bd508, 0x490a, 0x11e0, 0x99, 0xe4, 0x13, 0x16, 0xdf, 0xd7, 0x20, 0x85); |
| | |
| | // {F8993ABE-D937-4A8F-BBCA-6966FE9E1152} {UINT32, UVC 1.5 H.264 frame d |
| | escriptor: bmSVCCapabilities} |
| | DEFINE_GUID(MF_MT_H264_SVC_CAPABILITIES, |
| | 0xf8993abe, 0xd937, 0x4a8f, 0xbb, 0xca, 0x69, 0x66, 0xfe, 0x9e, 0x11, 0x52); |
| | |
| | // {359CE3A5-AF00-49CA-A2F4-2AC94CA82B61} {UINT32, UVC 1.5 H.264 Probe/C |
| | ommit Control: bUsage} |
| | DEFINE_GUID(MF_MT_H264_USAGE, |
| | 0x359ce3a5, 0xaf00, 0x49ca, 0xa2, 0xf4, 0x2a, 0xc9, 0x4c, 0xa8, 0x2b, 0x61); |
| | |
| | //{705177D8-45CB-11E0-AC7D-B91CE0D72085} {UINT32, UVC 1.5 H.264 Probe/C |
| | ommit Control: bmRateControlModes} |
| | DEFINE_GUID(MF_MT_H264_RATE_CONTROL_MODES, |
| | 0x705177d8, 0x45cb, 0x11e0, 0xac, 0x7d, 0xb9, 0x1c, 0xe0, 0xd7, 0x20, 0x85); |
| | |
| | //{85E299B2-90E3-4FE8-B2F5-C067E0BFE57A} {UINT64, UVC 1.5 H.264 Probe/C |
| | ommit Control: bmLayoutPerStream} |
| | DEFINE_GUID(MF_MT_H264_LAYOUT_PER_STREAM, |
| | 0x85e299b2, 0x90e3, 0x4fe8, 0xb2, 0xf5, 0xc0, 0x67, 0xe0, 0xbf, 0xe5, 0x7a); |
| | |
| // | | // |
| // INTERLEAVED - DV extra data | | // INTERLEAVED - DV extra data |
| // | | // |
| // {84bd5d88-0fb8-4ac8-be4b-a8848bef98f3} MF_MT_DV_AAUX_SRC_PACK_0 {UIN
T32} | | // {84bd5d88-0fb8-4ac8-be4b-a8848bef98f3} MF_MT_DV_AAUX_SRC_PACK_0 {UIN
T32} |
| DEFINE_GUID(MF_MT_DV_AAUX_SRC_PACK_0, | | DEFINE_GUID(MF_MT_DV_AAUX_SRC_PACK_0, |
| 0x84bd5d88, 0x0fb8, 0x4ac8, 0xbe, 0x4b, 0xa8, 0x84, 0x8b, 0xef, 0x98, 0xf3); | | 0x84bd5d88, 0x0fb8, 0x4ac8, 0xbe, 0x4b, 0xa8, 0x84, 0x8b, 0xef, 0x98, 0xf3); |
| | |
| // {f731004e-1dd1-4515-aabe-f0c06aa536ac} MF_MT_DV_AAUX_CTRL_PACK_0 {UIN
T32} | | // {f731004e-1dd1-4515-aabe-f0c06aa536ac} MF_MT_DV_AAUX_CTRL_PACK_0 {UIN
T32} |
| DEFINE_GUID(MF_MT_DV_AAUX_CTRL_PACK_0, | | DEFINE_GUID(MF_MT_DV_AAUX_CTRL_PACK_0, |
| 0xf731004e, 0x1dd1, 0x4515, 0xaa, 0xbe, 0xf0, 0xc0, 0x6a, 0xa5, 0x36, 0xac); | | 0xf731004e, 0x1dd1, 0x4515, 0xaa, 0xbe, 0xf0, 0xc0, 0x6a, 0xa5, 0x36, 0xac); |
| | |
| skipping to change at line 1389 | | skipping to change at line 2064 |
| 0xcd1f470d, 0x1f04, 0x4fe0, 0xbf, 0xb9, 0xd0, 0x7a, 0xe0, 0x38, 0x6a, 0xd8); | | 0xcd1f470d, 0x1f04, 0x4fe0, 0xbf, 0xb9, 0xd0, 0x7a, 0xe0, 0x38, 0x6a, 0xd8); |
| | |
| // {41402d9d-7b57-43c6-b129-2cb997f15009} MF_MT_DV_VAUX_SRC_PACK {UIN
T32} | | // {41402d9d-7b57-43c6-b129-2cb997f15009} MF_MT_DV_VAUX_SRC_PACK {UIN
T32} |
| DEFINE_GUID(MF_MT_DV_VAUX_SRC_PACK, | | DEFINE_GUID(MF_MT_DV_VAUX_SRC_PACK, |
| 0x41402d9d, 0x7b57, 0x43c6, 0xb1, 0x29, 0x2c, 0xb9, 0x97, 0xf1, 0x50, 0x09); | | 0x41402d9d, 0x7b57, 0x43c6, 0xb1, 0x29, 0x2c, 0xb9, 0x97, 0xf1, 0x50, 0x09); |
| | |
| // {2f84e1c4-0da1-4788-938e-0dfbfbb34b48} MF_MT_DV_VAUX_CTRL_PACK {UIN
T32} | | // {2f84e1c4-0da1-4788-938e-0dfbfbb34b48} MF_MT_DV_VAUX_CTRL_PACK {UIN
T32} |
| DEFINE_GUID(MF_MT_DV_VAUX_CTRL_PACK, | | DEFINE_GUID(MF_MT_DV_VAUX_CTRL_PACK, |
| 0x2f84e1c4, 0x0da1, 0x4788, 0x93, 0x8e, 0x0d, 0xfb, 0xfb, 0xb3, 0x4b, 0x48); | | 0x2f84e1c4, 0x0da1, 0x4788, 0x93, 0x8e, 0x0d, 0xfb, 0xfb, 0xb3, 0x4b, 0x48); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| #if (WINVER >= _WIN32_WINNT_WIN7) | | #if (WINVER >= _WIN32_WINNT_WIN7) |
|
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // ARBITRARY | | // ARBITRARY |
| // | | // |
| | |
| // | | // |
| // MT_ARBITRARY_HEADER stores information about the format of an arbitrary media
type | | // MT_ARBITRARY_HEADER stores information about the format of an arbitrary media
type |
| // | | // |
| typedef struct _MT_ARBITRARY_HEADER | | typedef struct _MT_ARBITRARY_HEADER |
| { | | { |
| GUID majortype; | | GUID majortype; |
| | |
| skipping to change at line 1416 | | skipping to change at line 2098 |
| MT_ARBITRARY_HEADER; | | MT_ARBITRARY_HEADER; |
| | |
| // {9E6BD6F5-0109-4f95-84AC-9309153A19FC} MF_MT_ARBITRARY_HEADER {MT_
ARBITRARY_HEADER} | | // {9E6BD6F5-0109-4f95-84AC-9309153A19FC} MF_MT_ARBITRARY_HEADER {MT_
ARBITRARY_HEADER} |
| DEFINE_GUID(MF_MT_ARBITRARY_HEADER, | | DEFINE_GUID(MF_MT_ARBITRARY_HEADER, |
| 0x9e6bd6f5, 0x109, 0x4f95, 0x84, 0xac, 0x93, 0x9, 0x15, 0x3a, 0x19, 0xfc ); | | 0x9e6bd6f5, 0x109, 0x4f95, 0x84, 0xac, 0x93, 0x9, 0x15, 0x3a, 0x19, 0xfc ); |
| | |
| // {5A75B249-0D7D-49a1-A1C3-E0D87F0CADE5} MF_MT_ARBITRARY_FORMAT {Blo
b} | | // {5A75B249-0D7D-49a1-A1C3-E0D87F0CADE5} MF_MT_ARBITRARY_FORMAT {Blo
b} |
| DEFINE_GUID(MF_MT_ARBITRARY_FORMAT, | | DEFINE_GUID(MF_MT_ARBITRARY_FORMAT, |
| 0x5a75b249, 0xd7d, 0x49a1, 0xa1, 0xc3, 0xe0, 0xd8, 0x7f, 0xc, 0xad, 0xe5); | | 0x5a75b249, 0xd7d, 0x49a1, 0xa1, 0xc3, 0xe0, 0xd8, 0x7f, 0xc, 0xad, 0xe5); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| // | | // |
| // IMAGE | | // IMAGE |
| // | | // |
| // {ED062CF4-E34E-4922-BE99-934032133D7C} MF_MT_IMAGE_LOSS_TOLERANT {UIN
T32 (BOOL)} | | // {ED062CF4-E34E-4922-BE99-934032133D7C} MF_MT_IMAGE_LOSS_TOLERANT {UIN
T32 (BOOL)} |
| DEFINE_GUID(MF_MT_IMAGE_LOSS_TOLERANT, | | DEFINE_GUID(MF_MT_IMAGE_LOSS_TOLERANT, |
| 0xed062cf4, 0xe34e, 0x4922, 0xbe, 0x99, 0x93, 0x40, 0x32, 0x13, 0x3d, 0x7c); | | 0xed062cf4, 0xe34e, 0x4922, 0xbe, 0x99, 0x93, 0x40, 0x32, 0x13, 0x3d, 0x7c); |
| | |
| // | | // |
| // MPEG-4 Media Type Attributes | | // MPEG-4 Media Type Attributes |
| // | | // |
| // {261E9D83-9529-4B8F-A111-8B9C950A81A9} MF_MT_MPEG4_SAMPLE_DESCRIPTION {BL
OB} | | // {261E9D83-9529-4B8F-A111-8B9C950A81A9} MF_MT_MPEG4_SAMPLE_DESCRIPTION {BL
OB} |
| DEFINE_GUID(MF_MT_MPEG4_SAMPLE_DESCRIPTION, | | DEFINE_GUID(MF_MT_MPEG4_SAMPLE_DESCRIPTION, |
| 0x261e9d83, 0x9529, 0x4b8f, 0xa1, 0x11, 0x8b, 0x9c, 0x95, 0x0a, 0x81, 0xa9); | | 0x261e9d83, 0x9529, 0x4b8f, 0xa1, 0x11, 0x8b, 0x9c, 0x95, 0x0a, 0x81, 0xa9); |
| | |
| // {9aa7e155-b64a-4c1d-a500-455d600b6560} MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY {UI
NT32} | | // {9aa7e155-b64a-4c1d-a500-455d600b6560} MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY {UI
NT32} |
| DEFINE_GUID(MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY, | | DEFINE_GUID(MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY, |
| 0x9aa7e155, 0xb64a, 0x4c1d, 0xa5, 0x00, 0x45, 0x5d, 0x60, 0x0b, 0x65, 0x60); | | 0x9aa7e155, 0xb64a, 0x4c1d, 0xa5, 0x00, 0x45, 0x5d, 0x60, 0x0b, 0x65, 0x60); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // Save original format information for AVI and WAV files | | // Save original format information for AVI and WAV files |
| // | | // |
| // {d7be3fe0-2bc7-492d-b843-61a1919b70c3} MF_MT_ORIGINAL_4CC (UI
NT32) | | // {d7be3fe0-2bc7-492d-b843-61a1919b70c3} MF_MT_ORIGINAL_4CC (UI
NT32) |
| DEFINE_GUID(MF_MT_ORIGINAL_4CC, | | DEFINE_GUID(MF_MT_ORIGINAL_4CC, |
| 0xd7be3fe0, 0x2bc7, 0x492d, 0xb8, 0x43, 0x61, 0xa1, 0x91, 0x9b, 0x70, 0xc3); | | 0xd7be3fe0, 0x2bc7, 0x492d, 0xb8, 0x43, 0x61, 0xa1, 0x91, 0x9b, 0x70, 0xc3); |
| | |
| // {8cbbc843-9fd9-49c2-882f-a72586c408ad} MF_MT_ORIGINAL_WAVE_FORMAT_TAG (UI
NT32) | | // {8cbbc843-9fd9-49c2-882f-a72586c408ad} MF_MT_ORIGINAL_WAVE_FORMAT_TAG (UI
NT32) |
| DEFINE_GUID(MF_MT_ORIGINAL_WAVE_FORMAT_TAG, | | DEFINE_GUID(MF_MT_ORIGINAL_WAVE_FORMAT_TAG, |
| 0x8cbbc843, 0x9fd9, 0x49c2, 0x88, 0x2f, 0xa7, 0x25, 0x86, 0xc4, 0x08, 0xad); | | 0x8cbbc843, 0x9fd9, 0x49c2, 0x88, 0x2f, 0xa7, 0x25, 0x86, 0xc4, 0x08, 0xad); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| // | | // |
| // Video Capture Media Type Attributes | | // Video Capture Media Type Attributes |
| // | | // |
| | |
| // {D2E7558C-DC1F-403f-9A72-D28BB1EB3B5E} MF_MT_FRAME_RATE_RANGE_MIN {UIN
T64 (HI32(Numerator),LO32(Denominator))} | | // {D2E7558C-DC1F-403f-9A72-D28BB1EB3B5E} MF_MT_FRAME_RATE_RANGE_MIN {UIN
T64 (HI32(Numerator),LO32(Denominator))} |
| DEFINE_GUID(MF_MT_FRAME_RATE_RANGE_MIN, | | DEFINE_GUID(MF_MT_FRAME_RATE_RANGE_MIN, |
| 0xd2e7558c, 0xdc1f, 0x403f, 0x9a, 0x72, 0xd2, 0x8b, 0xb1, 0xeb, 0x3b, 0x5e); | | 0xd2e7558c, 0xdc1f, 0x403f, 0x9a, 0x72, 0xd2, 0x8b, 0xb1, 0xeb, 0x3b, 0x5e); |
| | |
| // {E3371D41-B4CF-4a05-BD4E-20B88BB2C4D6} MF_MT_FRAME_RATE_RANGE_MAX {UIN
T64 (HI32(Numerator),LO32(Denominator))} | | // {E3371D41-B4CF-4a05-BD4E-20B88BB2C4D6} MF_MT_FRAME_RATE_RANGE_MAX {UIN
T64 (HI32(Numerator),LO32(Denominator))} |
| DEFINE_GUID(MF_MT_FRAME_RATE_RANGE_MAX, | | DEFINE_GUID(MF_MT_FRAME_RATE_RANGE_MAX, |
| 0xe3371d41, 0xb4cf, 0x4a05, 0xbd, 0x4e, 0x20, 0xb8, 0x8b, 0xb2, 0xc4, 0xd6); | | 0xe3371d41, 0xb4cf, 0x4a05, 0xbd, 0x4e, 0x20, 0xb8, 0x8b, 0xb2, 0xc4, 0xd6); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
|
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | #if (WINVER >= _WIN32_WINNT_WIN8) |
| | // {9C27891A-ED7A-40e1-88E8-B22727A024EE} MF_LOW_LATENCY {UIN |
| | T32 (BOOL)} |
| | // Same GUID as CODECAPI_AVLowLatencyMode |
| | DEFINE_GUID(MF_LOW_LATENCY, |
| | 0x9c27891a, 0xed7a, 0x40e1, 0x88, 0xe8, 0xb2, 0x27, 0x27, 0xa0, 0x24, 0xee); |
| | |
| | // {E3F2E203-D445-4B8C-9211-AE390D3BA017} {UINT32} Maximum macroblocks per seco |
| | nd that can be handled by MFT |
| | DEFINE_GUID(MF_VIDEO_MAX_MB_PER_SEC, |
| | 0xe3f2e203, 0xd445, 0x4b8c, 0x92, 0x11, 0xae, 0x39, 0xd, 0x3b, 0xa0, 0x17); |
| | #endif // (WINVER >= _WIN32_WINNT_WIN8) |
| | |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| /////////////////////////////// Media Type GUIDs ////////////////////////////// | | /////////////////////////////// Media Type GUIDs ////////////////////////////// |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| | |
| // | | // |
| // Major types | | // Major types |
| // | | // |
| DEFINE_GUID(MFMediaType_Default, | | DEFINE_GUID(MFMediaType_Default, |
| 0x81A412E6, 0x8103, 0x4B06, 0x85, 0x7F, 0x18, 0x62, 0x78, 0x10, 0x24, 0xAC); | | 0x81A412E6, 0x8103, 0x4B06, 0x85, 0x7F, 0x18, 0x62, 0x78, 0x10, 0x24, 0xAC); |
| DEFINE_GUID(MFMediaType_Audio, | | DEFINE_GUID(MFMediaType_Audio, |
| | |
| skipping to change at line 1486 | | skipping to change at line 2203 |
| DEFINE_GUID(MFMediaType_Script, | | DEFINE_GUID(MFMediaType_Script, |
| 0x72178C22, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | | 0x72178C22, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); |
| DEFINE_GUID(MFMediaType_Image, | | DEFINE_GUID(MFMediaType_Image, |
| 0x72178C23, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | | 0x72178C23, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); |
| DEFINE_GUID(MFMediaType_HTML, | | DEFINE_GUID(MFMediaType_HTML, |
| 0x72178C24, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | | 0x72178C24, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); |
| DEFINE_GUID(MFMediaType_Binary, | | DEFINE_GUID(MFMediaType_Binary, |
| 0x72178C25, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | | 0x72178C25, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); |
| DEFINE_GUID(MFMediaType_FileTransfer, | | DEFINE_GUID(MFMediaType_FileTransfer, |
| 0x72178C26, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); | | 0x72178C26, 0xE45B, 0x11D5, 0xBC, 0x2A, 0x00, 0xB0, 0xD0, 0xF3, 0xF4, 0xAB); |
|
| | DEFINE_GUID(MFMediaType_Stream, |
| | 0xe436eb83, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70); |
| | |
| | // |
| | // Image subtypes (MFMediaType_Image major type) |
| | // |
| | // JPEG subtype: same as GUID_ContainerFormatJpeg |
| | DEFINE_GUID(MFImageFormat_JPEG, |
| | 0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x02, 0x8e, 0x10, 0x57); |
| | |
| | // RGB32 subtype: same as MFVideoFormat_RGB32 |
| | DEFINE_GUID(MFImageFormat_RGB32, |
| | 0x00000016, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); |
| | |
| // | | // |
|
| | // MPEG2 Stream subtypes (MFMediaType_Stream major type) |
| | // |
| | DEFINE_GUID(MFStreamFormat_MPEG2Transport, |
| | 0xe06d8023, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); |
| | DEFINE_GUID(MFStreamFormat_MPEG2Program, |
| | 0x263067d1, 0xd330, 0x45dc, 0xb6, 0x69, 0x34, 0xd9, 0x86, 0xe4, 0xe3, 0xe1); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | // |
| // Representations | | // Representations |
| // | | // |
| DEFINE_GUID(AM_MEDIA_TYPE_REPRESENTATION, | | DEFINE_GUID(AM_MEDIA_TYPE_REPRESENTATION, |
| 0xe2e42ad2, 0x132c, 0x491e, 0xa2, 0x68, 0x3c, 0x7c, 0x2d, 0xca, 0x18, 0x1f); | | 0xe2e42ad2, 0x132c, 0x491e, 0xa2, 0x68, 0x3c, 0x7c, 0x2d, 0xca, 0x18, 0x1f); |
| DEFINE_GUID(FORMAT_MFVideoFormat, | | DEFINE_GUID(FORMAT_MFVideoFormat, |
| 0xaed4ab2d, 0x7326, 0x43cb, 0x94, 0x64, 0xc8, 0x79, 0xca, 0xb9, 0xc4, 0x3d); | | 0xaed4ab2d, 0x7326, 0x43cb, 0x94, 0x64, 0xc8, 0x79, 0xca, 0xb9, 0xc4, 0x3d); |
| | |
| ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Media Type functions ////////////////////////// | | ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Media Type functions ////////////////////////// |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| | |
| | |
| skipping to change at line 1514 | | skipping to change at line 2257 |
| typedef struct tagVIDEOINFOHEADER2 VIDEOINFOHEADER2; | | typedef struct tagVIDEOINFOHEADER2 VIDEOINFOHEADER2; |
| struct tagMPEG1VIDEOINFO; | | struct tagMPEG1VIDEOINFO; |
| typedef struct tagMPEG1VIDEOINFO MPEG1VIDEOINFO; | | typedef struct tagMPEG1VIDEOINFO MPEG1VIDEOINFO; |
| struct tagMPEG2VIDEOINFO; | | struct tagMPEG2VIDEOINFO; |
| typedef struct tagMPEG2VIDEOINFO MPEG2VIDEOINFO; | | typedef struct tagMPEG2VIDEOINFO MPEG2VIDEOINFO; |
| struct _AMMediaType; | | struct _AMMediaType; |
| typedef struct _AMMediaType AM_MEDIA_TYPE; | | typedef struct _AMMediaType AM_MEDIA_TYPE; |
| | |
| STDAPI | | STDAPI |
| MFValidateMediaTypeSize( | | MFValidateMediaTypeSize( |
|
| __in GUID FormatType, | | _In_ GUID FormatType, |
| __in_bcount_opt(cbSize) UINT8* pBlock, | | _In_reads_bytes_opt_(cbSize) UINT8* pBlock, |
| __in UINT32 cbSize | | _In_ UINT32 cbSize |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI | | STDAPI |
| MFCreateMediaType( | | MFCreateMediaType( |
|
| __deref_out IMFMediaType** ppMFType | | _Outptr_ IMFMediaType** ppMFType |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI | | STDAPI |
| MFCreateMFVideoFormatFromMFMediaType( | | MFCreateMFVideoFormatFromMFMediaType( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __out MFVIDEOFORMAT** ppMFVF, // must be deleted with CoTaskMe | | _Out_ MFVIDEOFORMAT** ppMFVF, // must be deleted with CoTaskMe |
| mFree | | mFree |
| __out_opt UINT32* pcbSize | | _Out_opt_ UINT32* pcbSize |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| typedef enum _MFWaveFormatExConvertFlags { | | typedef enum _MFWaveFormatExConvertFlags { |
| MFWaveFormatExConvertFlag_Normal = 0, | | MFWaveFormatExConvertFlag_Normal = 0, |
| MFWaveFormatExConvertFlag_ForceExtensible = 1 | | MFWaveFormatExConvertFlag_ForceExtensible = 1 |
| } MFWaveFormatExConvertFlags; | | } MFWaveFormatExConvertFlags; |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| | |
| // | | // |
| // declarations with default parameters | | // declarations with default parameters |
| // | | // |
| | |
|
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| STDAPI | | STDAPI |
| MFCreateWaveFormatExFromMFMediaType( | | MFCreateWaveFormatExFromMFMediaType( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __out WAVEFORMATEX** ppWF, | | _Out_ WAVEFORMATEX** ppWF, |
| __out_opt UINT32* pcbSize, | | _Out_opt_ UINT32* pcbSize, |
| __in UINT32 Flags = MFWaveFormatExConvertFlag_Normal | | _In_ UINT32 Flags = MFWaveFormatExConvertFlag_Normal |
| ); | | ); |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromVideoInfoHeader( | | MFInitMediaTypeFromVideoInfoHeader( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const VIDEOINFOHEADER* pVIH, | | _In_reads_bytes_(cbBufSize) const VIDEOINFOHEADER* pVIH, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __in_opt const GUID* pSubtype = NULL | | _In_opt_ const GUID* pSubtype = NULL |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromVideoInfoHeader2( | | MFInitMediaTypeFromVideoInfoHeader2( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const VIDEOINFOHEADER2* pVIH2, | | _In_reads_bytes_(cbBufSize) const VIDEOINFOHEADER2* pVIH2, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __in_opt const GUID* pSubtype = NULL | | _In_opt_ const GUID* pSubtype = NULL |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromMPEG1VideoInfo( | | MFInitMediaTypeFromMPEG1VideoInfo( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const MPEG1VIDEOINFO* pMP1VI, | | _In_reads_bytes_(cbBufSize) const MPEG1VIDEOINFO* pMP1VI, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __in_opt const GUID* pSubtype = NULL | | _In_opt_ const GUID* pSubtype = NULL |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromMPEG2VideoInfo( | | MFInitMediaTypeFromMPEG2VideoInfo( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const MPEG2VIDEOINFO* pMP2VI, | | _In_reads_bytes_(cbBufSize) const MPEG2VIDEOINFO* pMP2VI, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __in_opt const GUID* pSubtype = NULL | | _In_opt_ const GUID* pSubtype = NULL |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFCalculateBitmapImageSize( | | MFCalculateBitmapImageSize( |
|
| __in_bcount(cbBufSize) const BITMAPINFOHEADER* pBMIH, | | _In_reads_bytes_(cbBufSize) const BITMAPINFOHEADER* pBMIH, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __out UINT32* pcbImageSize, | | _Out_ UINT32* pcbImageSize, |
| __out_opt BOOL* pbKnown = NULL | | _Out_opt_ BOOL* pbKnown = NULL |
| ); | | ); |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
|
| #else | | #else /* cplusplus */ |
| | |
| // | | // |
| // same declarations without default parameters | | // same declarations without default parameters |
| // | | // |
| | |
|
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI | | STDAPI |
| MFCreateWaveFormatExFromMFMediaType( | | MFCreateWaveFormatExFromMFMediaType( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __out WAVEFORMATEX** ppWF, | | _Out_ WAVEFORMATEX** ppWF, |
| __out_opt UINT32* pcbSize, | | _Out_opt_ UINT32* pcbSize, |
| __in UINT32 Flags | | _In_ UINT32 Flags |
| ); | | ); |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
|
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromVideoInfoHeader( | | MFInitMediaTypeFromVideoInfoHeader( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const VIDEOINFOHEADER* pVIH, | | _In_reads_bytes_(cbBufSize) const VIDEOINFOHEADER* pVIH, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __in_opt const GUID* pSubtype | | _In_opt_ const GUID* pSubtype |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromVideoInfoHeader2( | | MFInitMediaTypeFromVideoInfoHeader2( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const VIDEOINFOHEADER2* pVIH2, | | _In_reads_bytes_(cbBufSize) const VIDEOINFOHEADER2* pVIH2, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __in_opt const GUID* pSubtype | | _In_opt_ const GUID* pSubtype |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromMPEG1VideoInfo( | | MFInitMediaTypeFromMPEG1VideoInfo( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const MPEG1VIDEOINFO* pMP1VI, | | _In_reads_bytes_(cbBufSize) const MPEG1VIDEOINFO* pMP1VI, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __in_opt const GUID* pSubtype | | _In_opt_ const GUID* pSubtype |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromMPEG2VideoInfo( | | MFInitMediaTypeFromMPEG2VideoInfo( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const MPEG2VIDEOINFO* pMP2VI, | | _In_reads_bytes_(cbBufSize) const MPEG2VIDEOINFO* pMP2VI, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __in_opt const GUID* pSubtype | | _In_opt_ const GUID* pSubtype |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFCalculateBitmapImageSize( | | MFCalculateBitmapImageSize( |
|
| __in_bcount(cbBufSize) const BITMAPINFOHEADER* pBMIH, | | _In_reads_bytes_(cbBufSize) const BITMAPINFOHEADER* pBMIH, |
| __in UINT32 cbBufSize, | | _In_ UINT32 cbBufSize, |
| __out UINT32* pcbImageSize, | | _Out_ UINT32* pcbImageSize, |
| __out_opt BOOL* pbKnown | | _Out_opt_ BOOL* pbKnown |
| ); | | ); |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
|
| #endif | | #endif /* cplusplus */ |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI | | STDAPI |
| MFCalculateImageSize( | | MFCalculateImageSize( |
|
| __in REFGUID guidSubtype, | | _In_ REFGUID guidSubtype, |
| __in UINT32 unWidth, | | _In_ UINT32 unWidth, |
| __in UINT32 unHeight, | | _In_ UINT32 unHeight, |
| __out UINT32* pcbImageSize | | _Out_ UINT32* pcbImageSize |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFFrameRateToAverageTimePerFrame( | | MFFrameRateToAverageTimePerFrame( |
|
| __in UINT32 unNumerator, | | _In_ UINT32 unNumerator, |
| __in UINT32 unDenominator, | | _In_ UINT32 unDenominator, |
| __out UINT64* punAverageTimePerFrame | | _Out_ UINT64* punAverageTimePerFrame |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFAverageTimePerFrameToFrameRate( | | MFAverageTimePerFrameToFrameRate( |
|
| __in UINT64 unAverageTimePerFrame, | | _In_ UINT64 unAverageTimePerFrame, |
| __out UINT32* punNumerator, | | _Out_ UINT32* punNumerator, |
| __out UINT32* punDenominator | | _Out_ UINT32* punDenominator |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromMFVideoFormat( | | MFInitMediaTypeFromMFVideoFormat( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const MFVIDEOFORMAT* pMFVF, | | _In_reads_bytes_(cbBufSize) const MFVIDEOFORMAT* pMFVF, |
| __in UINT32 cbBufSize | | _In_ UINT32 cbBufSize |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromWaveFormatEx( | | MFInitMediaTypeFromWaveFormatEx( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in_bcount(cbBufSize) const WAVEFORMATEX* pWaveFormat, | | _In_reads_bytes_(cbBufSize) const WAVEFORMATEX* pWaveFormat, |
| __in UINT32 cbBufSize | | _In_ UINT32 cbBufSize |
| ); | | ); |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
|
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| STDAPI | | STDAPI |
| MFInitMediaTypeFromAMMediaType( | | MFInitMediaTypeFromAMMediaType( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in const AM_MEDIA_TYPE* pAMType | | _In_ const AM_MEDIA_TYPE* pAMType |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitAMMediaTypeFromMFMediaType( | | MFInitAMMediaTypeFromMFMediaType( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in GUID guidFormatBlockType, | | _In_ GUID guidFormatBlockType, |
| __inout AM_MEDIA_TYPE* pAMType | | _Inout_ AM_MEDIA_TYPE* pAMType |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFCreateAMMediaTypeFromMFMediaType( | | MFCreateAMMediaTypeFromMFMediaType( |
|
| __in IMFMediaType* pMFType, | | _In_ IMFMediaType* pMFType, |
| __in GUID guidFormatBlockType, | | _In_ GUID guidFormatBlockType, |
| __inout AM_MEDIA_TYPE** ppAMType // delete with DeleteMediaType | | _Inout_ AM_MEDIA_TYPE** ppAMType // delete with DeleteMediaType |
| ); | | ); |
| | |
| // | | // |
| // This function compares a full media type to a partial media type. | | // This function compares a full media type to a partial media type. |
| // | | // |
| // A "partial" media type is one that is given out by a component as a possible | | // A "partial" media type is one that is given out by a component as a possible |
| // media type it could accept. Many attributes may be unset, which represents | | // media type it could accept. Many attributes may be unset, which represents |
| // a "don't care" status for that attribute. | | // a "don't care" status for that attribute. |
| // | | // |
| // For example, a video effect may report that it supports YV12, | | // For example, a video effect may report that it supports YV12, |
| // but not want to specify a particular size. It simply creates a media type and
sets | | // but not want to specify a particular size. It simply creates a media type and
sets |
| // the major type to MFMediaType_Video and the subtype to MEDIASUBTYPE_YV12. | | // the major type to MFMediaType_Video and the subtype to MEDIASUBTYPE_YV12. |
| // | | // |
| // The comparison function succeeds if the partial type contains at least a majo
r type, | | // The comparison function succeeds if the partial type contains at least a majo
r type, |
| // and all of the attributes in the partial type exist in the full type and are
set to | | // and all of the attributes in the partial type exist in the full type and are
set to |
| // the same value. | | // the same value. |
| // | | // |
| STDAPI_(BOOL) | | STDAPI_(BOOL) |
| MFCompareFullToPartialMediaType( | | MFCompareFullToPartialMediaType( |
|
| __in IMFMediaType* pMFTypeFull, | | _In_ IMFMediaType* pMFTypeFull, |
| __in IMFMediaType* pMFTypePartial | | _In_ IMFMediaType* pMFTypePartial |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| STDAPI | | STDAPI |
| MFWrapMediaType( | | MFWrapMediaType( |
|
| __in IMFMediaType* pOrig, | | _In_ IMFMediaType* pOrig, |
| __in REFGUID MajorType, | | _In_ REFGUID MajorType, |
| __in REFGUID SubType, | | _In_ REFGUID SubType, |
| __out IMFMediaType ** ppWrap | | _Out_ IMFMediaType ** ppWrap |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFUnwrapMediaType( | | MFUnwrapMediaType( |
|
| __in IMFMediaType* pWrap, | | _In_ IMFMediaType* pWrap, |
| __out IMFMediaType ** ppOrig | | _Out_ IMFMediaType ** ppOrig |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // MFCreateVideoMediaType | | // MFCreateVideoMediaType |
| // | | // |
| | |
| #ifdef _KSMEDIA_ | | #ifdef _KSMEDIA_ |
| STDAPI MFCreateVideoMediaTypeFromVideoInfoHeader( | | STDAPI MFCreateVideoMediaTypeFromVideoInfoHeader( |
|
| __in const KS_VIDEOINFOHEADER* pVideoInfoHeader, | | _In_ const KS_VIDEOINFOHEADER* pVideoInfoHeader, |
| DWORD cbVideoInfoHeader, | | DWORD cbVideoInfoHeader, |
| DWORD dwPixelAspectRatioX, | | DWORD dwPixelAspectRatioX, |
| DWORD dwPixelAspectRatioY, | | DWORD dwPixelAspectRatioY, |
| MFVideoInterlaceMode InterlaceMode, | | MFVideoInterlaceMode InterlaceMode, |
| QWORD VideoFlags, | | QWORD VideoFlags, |
|
| __in_opt const GUID * pSubtype, | | _In_opt_ const GUID * pSubtype, |
| __out IMFVideoMediaType** ppIVideoMediaType | | _Out_ IMFVideoMediaType** ppIVideoMediaType |
| ); | | ); |
| | |
| STDAPI MFCreateVideoMediaTypeFromVideoInfoHeader2( | | STDAPI MFCreateVideoMediaTypeFromVideoInfoHeader2( |
|
| __in const KS_VIDEOINFOHEADER2* pVideoInfoHeader, | | _In_ const KS_VIDEOINFOHEADER2* pVideoInfoHeader, |
| DWORD cbVideoInfoHeader, | | DWORD cbVideoInfoHeader, |
| QWORD AdditionalVideoFlags, | | QWORD AdditionalVideoFlags, |
|
| __in_opt const GUID * pSubtype, | | _In_opt_ const GUID * pSubtype, |
| __out IMFVideoMediaType** ppIVideoMediaType | | _Out_ IMFVideoMediaType** ppIVideoMediaType |
| ); | | ); |
| | |
| #endif | | #endif |
| | |
| STDAPI MFCreateVideoMediaType( | | STDAPI MFCreateVideoMediaType( |
|
| __in const MFVIDEOFORMAT* pVideoFormat, | | _In_ const MFVIDEOFORMAT* pVideoFormat, |
| __out IMFVideoMediaType** ppIVideoMediaType | | _Out_ IMFVideoMediaType** ppIVideoMediaType |
| ); | | ); |
| | |
| STDAPI MFCreateVideoMediaTypeFromSubtype( | | STDAPI MFCreateVideoMediaTypeFromSubtype( |
|
| __in const GUID * pAMSubtype, | | _In_ const GUID * pAMSubtype, |
| __out IMFVideoMediaType **ppIVideoMediaType | | _Out_ IMFVideoMediaType **ppIVideoMediaType |
| ); | | ); |
| | |
| STDAPI_(BOOL) | | STDAPI_(BOOL) |
| MFIsFormatYUV( | | MFIsFormatYUV( |
| DWORD Format | | DWORD Format |
| ); | | ); |
| | |
| // | | // |
| // These depend on BITMAPINFOHEADER being defined | | // These depend on BITMAPINFOHEADER being defined |
| // | | // |
| STDAPI MFCreateVideoMediaTypeFromBitMapInfoHeader( | | STDAPI MFCreateVideoMediaTypeFromBitMapInfoHeader( |
|
| __in const BITMAPINFOHEADER* pbmihBitMapInfoHeader, | | _In_ const BITMAPINFOHEADER* pbmihBitMapInfoHeader, |
| DWORD dwPixelAspectRatioX, | | DWORD dwPixelAspectRatioX, |
| DWORD dwPixelAspectRatioY, | | DWORD dwPixelAspectRatioY, |
| MFVideoInterlaceMode InterlaceMode, | | MFVideoInterlaceMode InterlaceMode, |
| QWORD VideoFlags, | | QWORD VideoFlags, |
| QWORD qwFramesPerSecondNumerator, | | QWORD qwFramesPerSecondNumerator, |
| QWORD qwFramesPerSecondDenominator, | | QWORD qwFramesPerSecondDenominator, |
| DWORD dwMaxBitRate, | | DWORD dwMaxBitRate, |
|
| __out IMFVideoMediaType** ppIVideoMediaType | | _Out_ IMFVideoMediaType** ppIVideoMediaType |
| ); | | ); |
| | |
| STDAPI MFGetStrideForBitmapInfoHeader( | | STDAPI MFGetStrideForBitmapInfoHeader( |
| DWORD format, | | DWORD format, |
| DWORD dwWidth, | | DWORD dwWidth, |
|
| __out LONG* pStride | | _Out_ LONG* pStride |
| ); | | ); |
| | |
| STDAPI MFGetPlaneSize( | | STDAPI MFGetPlaneSize( |
| DWORD format, | | DWORD format, |
| DWORD dwWidth, | | DWORD dwWidth, |
| DWORD dwHeight, | | DWORD dwHeight, |
|
| __out DWORD* pdwPlaneSize | | _Out_ DWORD* pdwPlaneSize |
| ); | | ); |
| | |
| #if (WINVER >= _WIN32_WINNT_WIN7) | | #if (WINVER >= _WIN32_WINNT_WIN7) |
| // | | // |
| // MFCreateVideoMediaTypeFromBitMapInfoHeaderEx | | // MFCreateVideoMediaTypeFromBitMapInfoHeaderEx |
| // | | // |
| | |
| STDAPI MFCreateVideoMediaTypeFromBitMapInfoHeaderEx( | | STDAPI MFCreateVideoMediaTypeFromBitMapInfoHeaderEx( |
|
| __in_bcount(cbBitMapInfoHeader) const BITMAPINFOHEADER* pbmihBitMapInfoHeade | | _In_reads_bytes_(cbBitMapInfoHeader) const BITMAPINFOHEADER* pbmihBitMapInfo |
| r, | | Header, |
| __in UINT32 cbBitMapInfoHeader, | | _In_ UINT32 cbBitMapInfoHeader, |
| DWORD dwPixelAspectRatioX, | | DWORD dwPixelAspectRatioX, |
| DWORD dwPixelAspectRatioY, | | DWORD dwPixelAspectRatioY, |
| MFVideoInterlaceMode InterlaceMode, | | MFVideoInterlaceMode InterlaceMode, |
| QWORD VideoFlags, | | QWORD VideoFlags, |
| DWORD dwFramesPerSecondNumerator, | | DWORD dwFramesPerSecondNumerator, |
| DWORD dwFramesPerSecondDenominator, | | DWORD dwFramesPerSecondDenominator, |
| DWORD dwMaxBitRate, | | DWORD dwMaxBitRate, |
|
| __out IMFVideoMediaType** ppIVideoMediaType | | _Out_ IMFVideoMediaType** ppIVideoMediaType |
| ); | | ); |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
| // | | // |
| // MFCreateMediaTypeFromRepresentation | | // MFCreateMediaTypeFromRepresentation |
| // | | // |
| | |
| STDAPI MFCreateMediaTypeFromRepresentation( | | STDAPI MFCreateMediaTypeFromRepresentation( |
| GUID guidRepresentation, | | GUID guidRepresentation, |
|
| __in LPVOID pvRepresentation, | | _In_ LPVOID pvRepresentation, |
| __out IMFMediaType** ppIMediaType | | _Out_ IMFMediaType** ppIMediaType |
| ); | | ); |
| | |
| // | | // |
| // MFCreateAudioMediaType | | // MFCreateAudioMediaType |
| // | | // |
| | |
| STDAPI | | STDAPI |
| MFCreateAudioMediaType( | | MFCreateAudioMediaType( |
|
| __in const WAVEFORMATEX* pAudioFormat, | | _In_ const WAVEFORMATEX* pAudioFormat, |
| __out IMFAudioMediaType** ppIAudioMediaType | | _Out_ IMFAudioMediaType** ppIAudioMediaType |
| ); | | ); |
| | |
| DWORD | | DWORD |
| STDMETHODCALLTYPE | | STDMETHODCALLTYPE |
| MFGetUncompressedVideoFormat( | | MFGetUncompressedVideoFormat( |
|
| __in const MFVIDEOFORMAT* pVideoFormat | | _In_ const MFVIDEOFORMAT* pVideoFormat |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitVideoFormat( | | MFInitVideoFormat( |
|
| __in MFVIDEOFORMAT* pVideoFormat, | | _In_ MFVIDEOFORMAT* pVideoFormat, |
| __in MFStandardVideoFormat type | | _In_ MFStandardVideoFormat type |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFInitVideoFormat_RGB( | | MFInitVideoFormat_RGB( |
|
| __in MFVIDEOFORMAT* pVideoFormat, | | _In_ MFVIDEOFORMAT* pVideoFormat, |
| __in DWORD dwWidth, | | _In_ DWORD dwWidth, |
| __in DWORD dwHeight, | | _In_ DWORD dwHeight, |
| __in DWORD D3Dfmt /* 0 indicates sRGB */ | | _In_ DWORD D3Dfmt /* 0 indicates sRGB */ |
| ); | | ); |
| | |
| STDAPI | | STDAPI |
| MFConvertColorInfoToDXVA( | | MFConvertColorInfoToDXVA( |
|
| __out DWORD* pdwToDXVA, | | _Out_ DWORD* pdwToDXVA, |
| __in const MFVIDEOFORMAT* pFromFormat | | _In_ const MFVIDEOFORMAT* pFromFormat |
| ); | | ); |
| STDAPI | | STDAPI |
| MFConvertColorInfoFromDXVA( | | MFConvertColorInfoFromDXVA( |
|
| __inout MFVIDEOFORMAT* pToFormat, | | _Inout_ MFVIDEOFORMAT* pToFormat, |
| __in DWORD dwFromDXVA | | _In_ DWORD dwFromDXVA |
| ); | | ); |
| | |
| // | | // |
| // Optimized stride copy function | | // Optimized stride copy function |
| // | | // |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| STDAPI MFCopyImage( | | STDAPI MFCopyImage( |
|
| __out_bcount(abs(lDestStride) * dwLines) BYTE* pDest, | | _Out_writes_bytes_(_Inexpressible_(abs(lDestStride) * dwLines)) BYTE* pDest
, |
| LONG lDestStride, | | LONG lDestStride, |
|
| __in_bcount(abs(lSrcStride) * dwLines) const BYTE* pSrc, | | _In_reads_bytes_(_Inexpressible_(abs(lSrcStride) * dwLines)) const BYTE* pSr
c, |
| LONG lSrcStride, | | LONG lSrcStride, |
|
| __out_range(<=, min(abs(lSrcStride), abs(lDestStride))) DWORD dwWidthInByte
s, | | _Out_range_(<=, _Inexpressible_(min(abs(lSrcStride), abs(lDestStride)))) DW
ORD dwWidthInBytes, |
| DWORD dwLines | | DWORD dwLines |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| STDAPI MFConvertFromFP16Array( | | STDAPI MFConvertFromFP16Array( |
|
| __out_ecount(dwCount) float* pDest, | | _Out_writes_(dwCount) float* pDest, |
| __in_ecount(dwCount) const WORD* pSrc, | | _In_reads_(dwCount) const WORD* pSrc, |
| DWORD dwCount | | DWORD dwCount |
| ); | | ); |
| | |
| STDAPI MFConvertToFP16Array( | | STDAPI MFConvertToFP16Array( |
|
| __out_ecount(dwCount) WORD* pDest, | | _Out_writes_(dwCount) WORD* pDest, |
| __in_ecount(dwCount) const float* pSrc, | | _In_reads_(dwCount) const float* pSrc, |
| DWORD dwCount | | DWORD dwCount |
| ); | | ); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| | STDAPI MFCreate2DMediaBuffer( |
| | _In_ DWORD dwWidth, |
| | _In_ DWORD dwHeight, |
| | _In_ DWORD dwFourCC, |
| | _In_ BOOL fBottomUp, |
| | _Out_ IMFMediaBuffer** ppBuffer |
| | ); |
| | |
| | // |
| | // Creates an optimal system memory media buffer from a media type |
| | // |
| | STDAPI MFCreateMediaBufferFromMediaType( |
| | _In_ IMFMediaType* pMediaType, |
| | _In_ LONGLONG llDuration, // Sample Duration, needed for audio |
| | _In_ DWORD dwMinLength, // 0 means optimized default |
| | _In_ DWORD dwMinAlignment, // 0 means optimized default |
| | _Outptr_ IMFMediaBuffer** ppBuffer |
| | ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Attributes Utility functions //////////////////
////////// | | ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Attributes Utility functions //////////////////
////////// |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| | |
|
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| // | | // |
| // IMFAttributes inline UTILITY FUNCTIONS - used for IMFMediaType as well | | // IMFAttributes inline UTILITY FUNCTIONS - used for IMFMediaType as well |
| // | | // |
| inline | | inline |
| UINT32 | | UINT32 |
| HI32(UINT64 unPacked) | | HI32(UINT64 unPacked) |
| { | | { |
| return (UINT32)(unPacked >> 32); | | return (UINT32)(unPacked >> 32); |
| } | | } |
| | |
| | |
| skipping to change at line 1931 | | skipping to change at line 2778 |
| | |
| inline | | inline |
| UINT64 | | UINT64 |
| Pack2UINT32AsUINT64(UINT32 unHigh, UINT32 unLow) | | Pack2UINT32AsUINT64(UINT32 unHigh, UINT32 unLow) |
| { | | { |
| return ((UINT64)unHigh << 32) | unLow; | | return ((UINT64)unHigh << 32) | unLow; |
| } | | } |
| | |
| inline | | inline |
| void | | void |
|
| Unpack2UINT32AsUINT64(UINT64 unPacked, __out UINT32* punHigh, __out UINT32* punL
ow) | | Unpack2UINT32AsUINT64(UINT64 unPacked, _Out_ UINT32* punHigh, _Out_ UINT32* punL
ow) |
| { | | { |
| *punHigh = HI32(unPacked); | | *punHigh = HI32(unPacked); |
| *punLow = LO32(unPacked); | | *punLow = LO32(unPacked); |
| } | | } |
| | |
| inline | | inline |
| UINT64 | | UINT64 |
| PackSize(UINT32 unWidth, UINT32 unHeight) | | PackSize(UINT32 unWidth, UINT32 unHeight) |
| { | | { |
| return Pack2UINT32AsUINT64(unWidth, unHeight); | | return Pack2UINT32AsUINT64(unWidth, unHeight); |
| } | | } |
| | |
| inline | | inline |
| void | | void |
|
| UnpackSize(UINT64 unPacked, __out UINT32* punWidth, __out UINT32* punHeight) | | UnpackSize(UINT64 unPacked, _Out_ UINT32* punWidth, _Out_ UINT32* punHeight) |
| { | | { |
| Unpack2UINT32AsUINT64(unPacked, punWidth, punHeight); | | Unpack2UINT32AsUINT64(unPacked, punWidth, punHeight); |
| } | | } |
| | |
| inline | | inline |
| UINT64 | | UINT64 |
| PackRatio(INT32 nNumerator, UINT32 unDenominator) | | PackRatio(INT32 nNumerator, UINT32 unDenominator) |
| { | | { |
| return Pack2UINT32AsUINT64((UINT32)nNumerator, unDenominator); | | return Pack2UINT32AsUINT64((UINT32)nNumerator, unDenominator); |
| } | | } |
| | |
| inline | | inline |
| void | | void |
|
| UnpackRatio(UINT64 unPacked, __out INT32* pnNumerator, __out UINT32* punDenomina
tor) | | UnpackRatio(UINT64 unPacked, _Out_ INT32* pnNumerator, _Out_ UINT32* punDenomina
tor) |
| { | | { |
| Unpack2UINT32AsUINT64(unPacked, (UINT32*)pnNumerator, punDenominator); | | Unpack2UINT32AsUINT64(unPacked, (UINT32*)pnNumerator, punDenominator); |
| } | | } |
| | |
| // | | // |
| // "failsafe" inline get methods - return the stored value or return a default | | // "failsafe" inline get methods - return the stored value or return a default |
| // | | // |
| inline | | inline |
| UINT32 | | UINT32 |
| MFGetAttributeUINT32( | | MFGetAttributeUINT32( |
| | |
| skipping to change at line 2022 | | skipping to change at line 2869 |
| | |
| // | | // |
| // helpers for getting/setting ratios and sizes | | // helpers for getting/setting ratios and sizes |
| // | | // |
| | |
| inline | | inline |
| HRESULT | | HRESULT |
| MFGetAttribute2UINT32asUINT64( | | MFGetAttribute2UINT32asUINT64( |
| IMFAttributes* pAttributes, | | IMFAttributes* pAttributes, |
| REFGUID guidKey, | | REFGUID guidKey, |
|
| __out UINT32* punHigh32, | | _Out_ UINT32* punHigh32, |
| __out UINT32* punLow32 | | _Out_ UINT32* punLow32 |
| ) | | ) |
| { | | { |
| UINT64 unPacked; | | UINT64 unPacked; |
| HRESULT hr = S_OK; | | HRESULT hr = S_OK; |
| | |
| hr = pAttributes->GetUINT64(guidKey, &unPacked); | | hr = pAttributes->GetUINT64(guidKey, &unPacked); |
| if (FAILED(hr)) { | | if (FAILED(hr)) { |
| return hr; | | return hr; |
| } | | } |
| Unpack2UINT32AsUINT64(unPacked, punHigh32, punLow32); | | Unpack2UINT32AsUINT64(unPacked, punHigh32, punLow32); |
| | |
| skipping to change at line 2055 | | skipping to change at line 2902 |
| ) | | ) |
| { | | { |
| return pAttributes->SetUINT64(guidKey, Pack2UINT32AsUINT64(unHigh32, unLow32
)); | | return pAttributes->SetUINT64(guidKey, Pack2UINT32AsUINT64(unHigh32, unLow32
)); |
| } | | } |
| | |
| inline | | inline |
| HRESULT | | HRESULT |
| MFGetAttributeRatio( | | MFGetAttributeRatio( |
| IMFAttributes* pAttributes, | | IMFAttributes* pAttributes, |
| REFGUID guidKey, | | REFGUID guidKey, |
|
| __out UINT32* punNumerator, | | _Out_ UINT32* punNumerator, |
| __out UINT32* punDenominator | | _Out_ UINT32* punDenominator |
| ) | | ) |
| { | | { |
| return MFGetAttribute2UINT32asUINT64(pAttributes, guidKey, punNumerator, pun
Denominator); | | return MFGetAttribute2UINT32asUINT64(pAttributes, guidKey, punNumerator, pun
Denominator); |
| } | | } |
| | |
| inline | | inline |
| HRESULT | | HRESULT |
| MFGetAttributeSize( | | MFGetAttributeSize( |
| IMFAttributes* pAttributes, | | IMFAttributes* pAttributes, |
| REFGUID guidKey, | | REFGUID guidKey, |
|
| __out UINT32* punWidth, | | _Out_ UINT32* punWidth, |
| __out UINT32* punHeight | | _Out_ UINT32* punHeight |
| ) | | ) |
| { | | { |
| return MFGetAttribute2UINT32asUINT64(pAttributes, guidKey, punWidth, punHeig
ht); | | return MFGetAttribute2UINT32asUINT64(pAttributes, guidKey, punWidth, punHeig
ht); |
| } | | } |
| | |
| inline | | inline |
| HRESULT | | HRESULT |
| MFSetAttributeRatio( | | MFSetAttributeRatio( |
| IMFAttributes* pAttributes, | | IMFAttributes* pAttributes, |
| REFGUID guidKey, | | REFGUID guidKey, |
| | |
| skipping to change at line 2097 | | skipping to change at line 2944 |
| HRESULT | | HRESULT |
| MFSetAttributeSize( | | MFSetAttributeSize( |
| IMFAttributes* pAttributes, | | IMFAttributes* pAttributes, |
| REFGUID guidKey, | | REFGUID guidKey, |
| UINT32 unWidth, | | UINT32 unWidth, |
| UINT32 unHeight | | UINT32 unHeight |
| ) | | ) |
| { | | { |
| return MFSetAttribute2UINT32asUINT64(pAttributes, guidKey, unWidth, unHeight
); | | return MFSetAttribute2UINT32asUINT64(pAttributes, guidKey, unWidth, unHeight
); |
| } | | } |
|
| | |
| | #ifdef _INTSAFE_H_INCLUDED_ |
| | inline |
| | HRESULT |
| | MFGetAttributeString( |
| | IMFAttributes* pAttributes, |
| | REFGUID guidKey, |
| | _Outptr_ PWSTR *ppsz |
| | ) |
| | { |
| | UINT32 length; |
| | PWSTR psz = NULL; |
| | *ppsz = NULL; |
| | HRESULT hr = pAttributes->GetStringLength(guidKey, &length); |
| | // add NULL to length |
| | if (SUCCEEDED(hr)) { |
| | hr = UIntAdd(length, 1, &length); |
| | } |
| | if (SUCCEEDED(hr)) { |
| | size_t cb; |
| | hr = SizeTMult(length, sizeof(WCHAR), &cb); |
| | if( SUCCEEDED( hr ) ) |
| | { |
| | psz = PWSTR( CoTaskMemAlloc( cb ) ); |
| | if( !psz ) |
| | { |
| | hr = E_OUTOFMEMORY; |
| | } |
| | } |
| | } |
| | if (SUCCEEDED(hr)) { |
| | hr = pAttributes->GetString(guidKey, psz, length, &length); |
| | } |
| | if (SUCCEEDED(hr)) { |
| | *ppsz = psz; |
| | } else { |
| | CoTaskMemFree(psz); |
| | } |
| | return hr; |
| | } |
| | |
| | #endif // _INTSAFE_H_INCLUDED_ |
| | |
| | /////////////////////////////// Collection //////////////////////////// |
| | //////////////////////////////////////////////////////////////////////////////// |
| | |
| | // |
| | // Instantiates the MF-provided IMFCollection implementation |
| | // |
| | STDAPI MFCreateCollection( |
| | _Out_ IMFCollection **ppIMFCollection ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| #endif | | #endif |
| | |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| //////////////////////////////// Memory Management //////////////////////////// | | //////////////////////////////// Memory Management //////////////////////////// |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| | |
|
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| // | | // |
| // Heap alloc/free | | // Heap alloc/free |
| // | | // |
| typedef enum _EAllocationType | | typedef enum _EAllocationType |
| { | | { |
| eAllocationTypeDynamic, | | eAllocationTypeDynamic, |
| eAllocationTypeRT, | | eAllocationTypeRT, |
| eAllocationTypePageable, | | eAllocationTypePageable, |
| eAllocationTypeIgnore | | eAllocationTypeIgnore |
| } EAllocationType; | | } EAllocationType; |
| | |
| EXTERN_C void* WINAPI MFHeapAlloc( size_t nSize, | | EXTERN_C void* WINAPI MFHeapAlloc( size_t nSize, |
| ULONG dwFlags, | | ULONG dwFlags, |
|
| __in_opt char *pszFile, | | _In_opt_ char *pszFile, |
| int line, | | int line, |
| EAllocationType eat); | | EAllocationType eat); |
| EXTERN_C void WINAPI MFHeapFree( void * pv ); | | EXTERN_C void WINAPI MFHeapFree( void * pv ); |
| | |
|
| /////////////////////////////// Collection //////////////////////////// | | |
| //////////////////////////////////////////////////////////////////////////////// | | |
| | |
| // | | |
| // Instantiates the MF-provided IMFCollection implementation | | |
| // | | |
| STDAPI MFCreateCollection( | | |
| __out IMFCollection **ppIMFCollection ); | | |
| | | |
| ////////////////////////// SourceResolver //////////////////////////// | | ////////////////////////// SourceResolver //////////////////////////// |
| //////////////////////////////////////////////////////////////////////////////// | | //////////////////////////////////////////////////////////////////////////////// |
| DEFINE_GUID(CLSID_MFSourceResolver, | | DEFINE_GUID(CLSID_MFSourceResolver, |
| 0x90eab60f, | | 0x90eab60f, |
| 0xe43a, | | 0xe43a, |
| 0x4188, | | 0x4188, |
| 0xbc, 0xc4, 0xe4, 0x7f, 0xdf, 0x04, 0x86, 0x8c); | | 0xbc, 0xc4, 0xe4, 0x7f, 0xdf, 0x04, 0x86, 0x8c); |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| #if (WINVER >= _WIN32_WINNT_WIN7) | | #if (WINVER >= _WIN32_WINNT_WIN7) |
| // Return (a * b + d) / c | | // Return (a * b + d) / c |
| // Returns _I64_MAX or LLONG_MIN on failure or _I64_MAX if mplat.dll is not ava
ilable | | // Returns _I64_MAX or LLONG_MIN on failure or _I64_MAX if mplat.dll is not ava
ilable |
|
| | |
| | #pragma region Application Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) |
| | |
| LONGLONG WINAPI MFllMulDiv(LONGLONG a, LONGLONG b, LONGLONG c, LONGLONG d); | | LONGLONG WINAPI MFllMulDiv(LONGLONG a, LONGLONG b, LONGLONG c, LONGLONG d); |
|
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| | #pragma endregion |
| | |
| #endif // (WINVER >= _WIN32_WINNT_WIN7) | | #endif // (WINVER >= _WIN32_WINNT_WIN7) |
| | |
|
| | ////////////////////////// Content Protection //////////////////////////// |
| | //////////////////////////////////////////////////////////////////////////////// |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| | STDAPI MFGetContentProtectionSystemCLSID( |
| | _In_ REFGUID guidProtectionSystemID, |
| | _Out_ CLSID *pclsid ); |
| | |
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| #if defined(__cplusplus) | | #if defined(__cplusplus) |
| } | | } |
| #endif | | #endif |
| | |
| #endif //#if !defined(__MFAPI_H__) | | #endif //#if !defined(__MFAPI_H__) |
| | |
| End of changes. 185 change blocks. |
| 305 lines changed or deleted | | 1286 lines changed or added |
|