Headers diff for evr.dll between 6.0.6002.18005-Windows 6.0 and 6.1.7601.19091-Windows 7.0 versions



 evr.h (6.0.6002.18005-Windows 6.0)   evr.h (6.1.7601.19091-Windows 7.0) 
/* 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.0499 */ /* File created by MIDL compiler version 7.00.0555 */
/* Compiler settings for evr.idl: /* Compiler settings for evr.idl:
Oicf, W1, Zp8, env=Win32 (32b run) Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
protocol : dce , ms_ext, c_ext, robust protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level: VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable) __declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE() 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*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__ #ifndef __REQUIRED_RPCSAL_H_VERSION__
skipping to change at line 83 skipping to change at line 83
#ifndef __IMFTrackedSample_FWD_DEFINED__ #ifndef __IMFTrackedSample_FWD_DEFINED__
#define __IMFTrackedSample_FWD_DEFINED__ #define __IMFTrackedSample_FWD_DEFINED__
typedef interface IMFTrackedSample IMFTrackedSample; typedef interface IMFTrackedSample IMFTrackedSample;
#endif /* __IMFTrackedSample_FWD_DEFINED__ */ #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__
#define __IMFVideoMixerControl2_FWD_DEFINED__
typedef interface IMFVideoMixerControl2 IMFVideoMixerControl2;
#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__
#define __IEVRFilterConfigEx_FWD_DEFINED__
typedef interface IEVRFilterConfigEx IEVRFilterConfigEx;
#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 "mftransform.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] */
#if defined(__midl) #if defined(__midl)
skipping to change at line 218 skipping to change at line 227
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,
/* [out] */ /* [annotation][out] */
__out float *pxIn, __out float *pxIn,
/* [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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
/* [out] */ /* [annotation][out] */
__out float *pxIn, __out float *pxIn,
/* [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;
}; };
skipping to change at line 297 skipping to change at line 306
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(
/* [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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
/* [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;
}; };
skipping to change at line 356 skipping to change at line 365
#endif /* COBJMACROS */ #endif /* COBJMACROS */
#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 /* [public] */ typedef
enum __MIDL___MIDL_itf_evr_0000_0002_0001 enum MFVideoAspectRatioMode
{ MFVideoARMode_None = 0, { MFVideoARMode_None = 0,
MFVideoARMode_PreservePicture = 0x1, MFVideoARMode_PreservePicture = 0x1,
MFVideoARMode_PreservePixel = 0x2, MFVideoARMode_PreservePixel = 0x2,
MFVideoARMode_NonLinearStretch = 0x4, MFVideoARMode_NonLinearStretch = 0x4,
MFVideoARMode_Mask = 0x7 MFVideoARMode_Mask = 0x7
} MFVideoAspectRatioMode; } MFVideoAspectRatioMode;
typedef /* [public] */ typedef
enum __MIDL___MIDL_itf_evr_0000_0002_0002 enum MFVideoRenderPrefs
{ MFVideoRenderPrefs_DoNotRenderBorder = 0x1, { MFVideoRenderPrefs_DoNotRenderBorder = 0x1,
MFVideoRenderPrefs_DoNotClipToDevice = 0x2, MFVideoRenderPrefs_DoNotClipToDevice = 0x2,
MFVideoRenderPrefs_Mask = 0x3 MFVideoRenderPrefs_AllowOutputThrottling = 0x4,
MFVideoRenderPrefs_ForceOutputThrottling = 0x8,
MFVideoRenderPrefs_ForceBatching = 0x10,
MFVideoRenderPrefs_AllowBatching = 0x20,
MFVideoRenderPrefs_ForceScaling = 0x40,
MFVideoRenderPrefs_AllowScaling = 0x80,
MFVideoRenderPrefs_DoNotRepaintOnStop = 0x100,
MFVideoRenderPrefs_Mask = 0x1ff
} MFVideoRenderPrefs; } MFVideoRenderPrefs;
typedef struct MFVideoNormalizedRect typedef struct MFVideoNormalizedRect
{ {
float left; float left;
float top; float top;
float right; float right;
float bottom; float bottom;
} MFVideoNormalizedRect; } MFVideoNormalizedRect;
skipping to change at line 460 skipping to change at line 476
}; };
#else /* C style interface */ #else /* C style interface */
typedef struct IMFVideoDisplayControlVtbl typedef struct IMFVideoDisplayControlVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )( HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [in] */ __RPC__in REFIID riid, /* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
IMFVideoDisplayControl * This); __RPC__in IMFVideoDisplayControl * This);
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
IMFVideoDisplayControl * This); __RPC__in IMFVideoDisplayControl * This);
HRESULT ( STDMETHODCALLTYPE *GetNativeVideoSize )( HRESULT ( STDMETHODCALLTYPE *GetNativeVideoSize )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [unique][out][in] */ __RPC__inout_opt SIZE *pszVideo, /* [unique][out][in] */ __RPC__inout_opt SIZE *pszVideo,
/* [unique][out][in] */ __RPC__inout_opt SIZE *pszARVideo); /* [unique][out][in] */ __RPC__inout_opt SIZE *pszARVideo);
HRESULT ( STDMETHODCALLTYPE *GetIdealVideoSize )( HRESULT ( STDMETHODCALLTYPE *GetIdealVideoSize )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [unique][out][in] */ __RPC__inout_opt SIZE *pszMin, /* [unique][out][in] */ __RPC__inout_opt SIZE *pszMin,
/* [unique][out][in] */ __RPC__inout_opt SIZE *pszMax); /* [unique][out][in] */ __RPC__inout_opt SIZE *pszMax);
HRESULT ( STDMETHODCALLTYPE *SetVideoPosition )( HRESULT ( STDMETHODCALLTYPE *SetVideoPosition )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [unique][in] */ __RPC__in_opt const MFVideoNormalizedRect *pnrcSo urce, /* [unique][in] */ __RPC__in_opt const MFVideoNormalizedRect *pnrcSo urce,
/* [unique][in] */ __RPC__in_opt const LPRECT prcDest); /* [unique][in] */ __RPC__in_opt const LPRECT prcDest);
HRESULT ( STDMETHODCALLTYPE *GetVideoPosition )( HRESULT ( STDMETHODCALLTYPE *GetVideoPosition )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [out] */ __RPC__out MFVideoNormalizedRect *pnrcSource, /* [out] */ __RPC__out MFVideoNormalizedRect *pnrcSource,
/* [out] */ __RPC__out LPRECT prcDest); /* [out] */ __RPC__out LPRECT prcDest);
HRESULT ( STDMETHODCALLTYPE *SetAspectRatioMode )( HRESULT ( STDMETHODCALLTYPE *SetAspectRatioMode )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [in] */ DWORD dwAspectRatioMode); /* [in] */ DWORD dwAspectRatioMode);
HRESULT ( STDMETHODCALLTYPE *GetAspectRatioMode )( HRESULT ( STDMETHODCALLTYPE *GetAspectRatioMode )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [out] */ __RPC__out DWORD *pdwAspectRatioMode); /* [out] */ __RPC__out DWORD *pdwAspectRatioMode);
HRESULT ( STDMETHODCALLTYPE *SetVideoWindow )( HRESULT ( STDMETHODCALLTYPE *SetVideoWindow )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [in] */ __RPC__in HWND hwndVideo); /* [in] */ __RPC__in HWND hwndVideo);
HRESULT ( STDMETHODCALLTYPE *GetVideoWindow )( HRESULT ( STDMETHODCALLTYPE *GetVideoWindow )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [out] */ __RPC__deref_out_opt HWND *phwndVideo); /* [out] */ __RPC__deref_out_opt HWND *phwndVideo);
HRESULT ( STDMETHODCALLTYPE *RepaintVideo )( HRESULT ( STDMETHODCALLTYPE *RepaintVideo )(
IMFVideoDisplayControl * This); __RPC__in IMFVideoDisplayControl * This);
HRESULT ( STDMETHODCALLTYPE *GetCurrentImage )( HRESULT ( STDMETHODCALLTYPE *GetCurrentImage )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [out][in] */ __RPC__inout BITMAPINFOHEADER *pBih, /* [out][in] */ __RPC__inout BITMAPINFOHEADER *pBih,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbD ib) BYTE **pDib, /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbD ib) BYTE **pDib,
/* [out] */ __RPC__out DWORD *pcbDib, /* [out] */ __RPC__out DWORD *pcbDib,
/* [unique][out][in] */ __RPC__inout_opt LONGLONG *pTimeStamp); /* [unique][out][in] */ __RPC__inout_opt LONGLONG *pTimeStamp);
HRESULT ( STDMETHODCALLTYPE *SetBorderColor )( HRESULT ( STDMETHODCALLTYPE *SetBorderColor )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [in] */ COLORREF Clr); /* [in] */ COLORREF Clr);
HRESULT ( STDMETHODCALLTYPE *GetBorderColor )( HRESULT ( STDMETHODCALLTYPE *GetBorderColor )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [out] */ __RPC__out COLORREF *pClr); /* [out] */ __RPC__out COLORREF *pClr);
HRESULT ( STDMETHODCALLTYPE *SetRenderingPrefs )( HRESULT ( STDMETHODCALLTYPE *SetRenderingPrefs )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [in] */ DWORD dwRenderFlags); /* [in] */ DWORD dwRenderFlags);
HRESULT ( STDMETHODCALLTYPE *GetRenderingPrefs )( HRESULT ( STDMETHODCALLTYPE *GetRenderingPrefs )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [out] */ __RPC__out DWORD *pdwRenderFlags); /* [out] */ __RPC__out DWORD *pdwRenderFlags);
HRESULT ( STDMETHODCALLTYPE *SetFullscreen )( HRESULT ( STDMETHODCALLTYPE *SetFullscreen )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [in] */ BOOL fFullscreen); /* [in] */ BOOL fFullscreen);
HRESULT ( STDMETHODCALLTYPE *GetFullscreen )( HRESULT ( STDMETHODCALLTYPE *GetFullscreen )(
IMFVideoDisplayControl * This, __RPC__in IMFVideoDisplayControl * This,
/* [out] */ __RPC__out BOOL *pfFullscreen); /* [out] */ __RPC__out BOOL *pfFullscreen);
END_INTERFACE END_INTERFACE
} IMFVideoDisplayControlVtbl; } IMFVideoDisplayControlVtbl;
interface IMFVideoDisplayControl interface IMFVideoDisplayControl
{ {
CONST_VTBL struct IMFVideoDisplayControlVtbl *lpVtbl; CONST_VTBL struct IMFVideoDisplayControlVtbl *lpVtbl;
}; };
skipping to change at line 617 skipping to change at line 633
#endif /* COBJMACROS */ #endif /* COBJMACROS */
#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 /* [public][public] */ typedef
enum __MIDL___MIDL_itf_evr_0000_0003_0001 enum MFVP_MESSAGE_TYPE
{ MFVP_MESSAGE_FLUSH = 0, { MFVP_MESSAGE_FLUSH = 0,
MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x1, MFVP_MESSAGE_INVALIDATEMEDIATYPE = 0x1,
MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x2, MFVP_MESSAGE_PROCESSINPUTNOTIFY = 0x2,
MFVP_MESSAGE_BEGINSTREAMING = 0x3, MFVP_MESSAGE_BEGINSTREAMING = 0x3,
MFVP_MESSAGE_ENDSTREAMING = 0x4, MFVP_MESSAGE_ENDSTREAMING = 0x4,
MFVP_MESSAGE_ENDOFSTREAM = 0x5, MFVP_MESSAGE_ENDOFSTREAM = 0x5,
MFVP_MESSAGE_STEP = 0x6, MFVP_MESSAGE_STEP = 0x6,
MFVP_MESSAGE_CANCELSTEP = 0x7 MFVP_MESSAGE_CANCELSTEP = 0x7
} MFVP_MESSAGE_TYPE; } MFVP_MESSAGE_TYPE;
skipping to change at line 651 skipping to change at line 667
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(
/* [out] */ /* [annotation][out] */
__deref_out IMFVideoMediaType **ppMediaType) = 0; __deref_out 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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
skipping to change at line 703 skipping to change at line 719
/* [in] */ MFTIME hnsSystemTime, /* [in] */ MFTIME hnsSystemTime,
/* [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,
/* [out] */ /* [annotation][out] */
__deref_out IMFVideoMediaType **ppMediaType); __deref_out IMFVideoMediaType **ppMediaType);
END_INTERFACE END_INTERFACE
} IMFVideoPresenterVtbl; } IMFVideoPresenterVtbl;
interface IMFVideoPresenter interface IMFVideoPresenter
{ {
CONST_VTBL struct IMFVideoPresenterVtbl *lpVtbl; CONST_VTBL struct IMFVideoPresenterVtbl *lpVtbl;
}; };
skipping to change at line 767 skipping to change at line 783
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(
/* [out] */ /* [annotation][out] */
__out LONGLONG *phnsSampleTime, __out LONGLONG *phnsSampleTime,
/* [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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
/* [out] */ /* [annotation][out] */
__out LONGLONG *phnsSampleTime, __out LONGLONG *phnsSampleTime,
/* [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);
skipping to change at line 862 skipping to change at line 878
EXTERN_C const IID IID_IMFTrackedSample; EXTERN_C const IID IID_IMFTrackedSample;
#if defined(__cplusplus) && !defined(CINTERFACE) #if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("245BF8E9-0755-40f7-88A5-AE0F18D55E17") MIDL_INTERFACE("245BF8E9-0755-40f7-88A5-AE0F18D55E17")
IMFTrackedSample : public IUnknown IMFTrackedSample : public IUnknown
{ {
public: public:
virtual HRESULT STDMETHODCALLTYPE SetAllocator( virtual HRESULT STDMETHODCALLTYPE SetAllocator(
/* [in] */ /* [annotation][in] */
__in IMFAsyncCallback *pSampleAllocator, __in IMFAsyncCallback *pSampleAllocator,
/* [unique][in] */ IUnknown *pUnkState) = 0; /* [unique][in] */ IUnknown *pUnkState) = 0;
}; };
#else /* C style interface */ #else /* C style interface */
typedef struct IMFTrackedSampleVtbl typedef struct IMFTrackedSampleVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )( HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMFTrackedSample * This, IMFTrackedSample * This,
/* [in] */ REFIID riid, /* [in] */ REFIID riid,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
IMFTrackedSample * This); IMFTrackedSample * This);
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
IMFTrackedSample * This); IMFTrackedSample * This);
HRESULT ( STDMETHODCALLTYPE *SetAllocator )( HRESULT ( STDMETHODCALLTYPE *SetAllocator )(
IMFTrackedSample * This, IMFTrackedSample * This,
/* [in] */ /* [annotation][in] */
__in IMFAsyncCallback *pSampleAllocator, __in IMFAsyncCallback *pSampleAllocator,
/* [unique][in] */ IUnknown *pUnkState); /* [unique][in] */ IUnknown *pUnkState);
END_INTERFACE END_INTERFACE
} IMFTrackedSampleVtbl; } IMFTrackedSampleVtbl;
interface IMFTrackedSample interface IMFTrackedSample
{ {
CONST_VTBL struct IMFTrackedSampleVtbl *lpVtbl; CONST_VTBL struct IMFTrackedSampleVtbl *lpVtbl;
}; };
skipping to change at line 959 skipping to change at line 975
}; };
#else /* C style interface */ #else /* C style interface */
typedef struct IMFVideoMixerControlVtbl typedef struct IMFVideoMixerControlVtbl
{ {
BEGIN_INTERFACE BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )( HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMFVideoMixerControl * This, __RPC__in IMFVideoMixerControl * This,
/* [in] */ __RPC__in REFIID riid, /* [in] */ __RPC__in REFIID riid,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )( ULONG ( STDMETHODCALLTYPE *AddRef )(
IMFVideoMixerControl * This); __RPC__in IMFVideoMixerControl * This);
ULONG ( STDMETHODCALLTYPE *Release )( ULONG ( STDMETHODCALLTYPE *Release )(
IMFVideoMixerControl * This); __RPC__in IMFVideoMixerControl * This);
HRESULT ( STDMETHODCALLTYPE *SetStreamZOrder )( HRESULT ( STDMETHODCALLTYPE *SetStreamZOrder )(
IMFVideoMixerControl * This, __RPC__in IMFVideoMixerControl * This,
/* [in] */ DWORD dwStreamID, /* [in] */ DWORD dwStreamID,
/* [in] */ DWORD dwZ); /* [in] */ DWORD dwZ);
HRESULT ( STDMETHODCALLTYPE *GetStreamZOrder )( HRESULT ( STDMETHODCALLTYPE *GetStreamZOrder )(
IMFVideoMixerControl * This, __RPC__in IMFVideoMixerControl * This,
/* [in] */ DWORD dwStreamID, /* [in] */ DWORD dwStreamID,
/* [out] */ __RPC__out DWORD *pdwZ); /* [out] */ __RPC__out DWORD *pdwZ);
HRESULT ( STDMETHODCALLTYPE *SetStreamOutputRect )( HRESULT ( STDMETHODCALLTYPE *SetStreamOutputRect )(
IMFVideoMixerControl * This, __RPC__in IMFVideoMixerControl * This,
/* [in] */ DWORD dwStreamID, /* [in] */ DWORD dwStreamID,
/* [in] */ __RPC__in const MFVideoNormalizedRect *pnrcOutput); /* [in] */ __RPC__in const MFVideoNormalizedRect *pnrcOutput);
HRESULT ( STDMETHODCALLTYPE *GetStreamOutputRect )( HRESULT ( STDMETHODCALLTYPE *GetStreamOutputRect )(
IMFVideoMixerControl * This, __RPC__in IMFVideoMixerControl * This,
/* [in] */ DWORD dwStreamID, /* [in] */ DWORD dwStreamID,
/* [out] */ __RPC__out MFVideoNormalizedRect *pnrcOutput); /* [out] */ __RPC__out MFVideoNormalizedRect *pnrcOutput);
END_INTERFACE END_INTERFACE
} IMFVideoMixerControlVtbl; } IMFVideoMixerControlVtbl;
interface IMFVideoMixerControl interface IMFVideoMixerControl
{ {
CONST_VTBL struct IMFVideoMixerControlVtbl *lpVtbl; CONST_VTBL struct IMFVideoMixerControlVtbl *lpVtbl;
}; };
skipping to change at line 1027 skipping to change at line 1043
#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 */
/* [local] */
typedef
enum _MFVideoMixPrefs
{ MFVideoMixPrefs_ForceHalfInterlace = 0x1,
MFVideoMixPrefs_AllowDropToHalfInterlace = 0x2,
MFVideoMixPrefs_AllowDropToBob = 0x4,
MFVideoMixPrefs_ForceBob = 0x8,
MFVideoMixPrefs_Mask = 0xf
} MFVideoMixPrefs;
extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0007_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0007_v0_0_s_ifspec;
#ifndef __IMFVideoMixerControl2_INTERFACE_DEFINED__
#define __IMFVideoMixerControl2_INTERFACE_DEFINED__
/* interface IMFVideoMixerControl2 */
/* [helpstring][uuid][object] */
EXTERN_C const IID IID_IMFVideoMixerControl2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8459616d-966e-4930-b658-54fa7e5a16d3")
IMFVideoMixerControl2 : public IMFVideoMixerControl
{
public:
virtual HRESULT STDMETHODCALLTYPE SetMixingPrefs(
/* [in] */ DWORD dwMixFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMixingPrefs(
/* [out] */ __RPC__out DWORD *pdwMixFlags) = 0;
};
#else /* C style interface */
typedef struct IMFVideoMixerControl2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IMFVideoMixerControl2 * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IMFVideoMixerControl2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IMFVideoMixerControl2 * This);
HRESULT ( STDMETHODCALLTYPE *SetStreamZOrder )(
__RPC__in IMFVideoMixerControl2 * This,
/* [in] */ DWORD dwStreamID,
/* [in] */ DWORD dwZ);
HRESULT ( STDMETHODCALLTYPE *GetStreamZOrder )(
__RPC__in IMFVideoMixerControl2 * This,
/* [in] */ DWORD dwStreamID,
/* [out] */ __RPC__out DWORD *pdwZ);
HRESULT ( STDMETHODCALLTYPE *SetStreamOutputRect )(
__RPC__in IMFVideoMixerControl2 * This,
/* [in] */ DWORD dwStreamID,
/* [in] */ __RPC__in const MFVideoNormalizedRect *pnrcOutput);
HRESULT ( STDMETHODCALLTYPE *GetStreamOutputRect )(
__RPC__in IMFVideoMixerControl2 * This,
/* [in] */ DWORD dwStreamID,
/* [out] */ __RPC__out MFVideoNormalizedRect *pnrcOutput);
HRESULT ( STDMETHODCALLTYPE *SetMixingPrefs )(
__RPC__in IMFVideoMixerControl2 * This,
/* [in] */ DWORD dwMixFlags);
HRESULT ( STDMETHODCALLTYPE *GetMixingPrefs )(
__RPC__in IMFVideoMixerControl2 * This,
/* [out] */ __RPC__out DWORD *pdwMixFlags);
END_INTERFACE
} IMFVideoMixerControl2Vtbl;
interface IMFVideoMixerControl2
{
CONST_VTBL struct IMFVideoMixerControl2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMFVideoMixerControl2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMFVideoMixerControl2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMFVideoMixerControl2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMFVideoMixerControl2_SetStreamZOrder(This,dwStreamID,dwZ) \
( (This)->lpVtbl -> SetStreamZOrder(This,dwStreamID,dwZ) )
#define IMFVideoMixerControl2_GetStreamZOrder(This,dwStreamID,pdwZ) \
( (This)->lpVtbl -> GetStreamZOrder(This,dwStreamID,pdwZ) )
#define IMFVideoMixerControl2_SetStreamOutputRect(This,dwStreamID,pnrcOutput) \
( (This)->lpVtbl -> SetStreamOutputRect(This,dwStreamID,pnrcOutput) )
#define IMFVideoMixerControl2_GetStreamOutputRect(This,dwStreamID,pnrcOutput) \
( (This)->lpVtbl -> GetStreamOutputRect(This,dwStreamID,pnrcOutput) )
#define IMFVideoMixerControl2_SetMixingPrefs(This,dwMixFlags) \
( (This)->lpVtbl -> SetMixingPrefs(This,dwMixFlags) )
#define IMFVideoMixerControl2_GetMixingPrefs(This,pdwMixFlags) \
( (This)->lpVtbl -> GetMixingPrefs(This,pdwMixFlags) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMFVideoMixerControl2_INTERFACE_DEFINED__ */
#ifndef __IMFVideoRenderer_INTERFACE_DEFINED__ #ifndef __IMFVideoRenderer_INTERFACE_DEFINED__
#define __IMFVideoRenderer_INTERFACE_DEFINED__ #define __IMFVideoRenderer_INTERFACE_DEFINED__
/* interface IMFVideoRenderer */ /* interface IMFVideoRenderer */
/* [local][helpstring][uuid][object] */ /* [local][helpstring][uuid][object] */
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(
/* [unique][in] */ /* [annotation][unique][in] */
__in_opt IMFTransform *pVideoMixer, __in_opt IMFTransform *pVideoMixer,
/* [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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
/* [unique][in] */ /* [annotation][unique][in] */
__in_opt IMFTransform *pVideoMixer, __in_opt IMFTransform *pVideoMixer,
/* [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;
}; };
skipping to change at line 1120 skipping to change at line 1262
#if defined(__cplusplus) && !defined(CINTERFACE) #if defined(__cplusplus) && !defined(CINTERFACE)
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(
/* [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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
/* [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;
}; };
skipping to change at line 1183 skipping to change at line 1325
#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_0009 */ /* interface __MIDL_itf_evr_0000_0010 */
/* [local] */
typedef
enum _EVRFilterConfig_Prefs
{ EVRFilterConfigPrefs_EnableQoS = 0x1,
EVRFilterConfigPrefs_Mask = 0x1
} EVRFilterConfigPrefs;
extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0010_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0010_v0_0_s_ifspec;
#ifndef __IEVRFilterConfigEx_INTERFACE_DEFINED__
#define __IEVRFilterConfigEx_INTERFACE_DEFINED__
/* interface IEVRFilterConfigEx */
/* [helpstring][uuid][object] */
EXTERN_C const IID IID_IEVRFilterConfigEx;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("aea36028-796d-454f-beee-b48071e24304")
IEVRFilterConfigEx : public IEVRFilterConfig
{
public:
virtual HRESULT STDMETHODCALLTYPE SetConfigPrefs(
/* [in] */ DWORD dwConfigFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE GetConfigPrefs(
/* [out] */ __RPC__out DWORD *pdwConfigFlags) = 0;
};
#else /* C style interface */
typedef struct IEVRFilterConfigExVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IEVRFilterConfigEx * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IEVRFilterConfigEx * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IEVRFilterConfigEx * This);
HRESULT ( STDMETHODCALLTYPE *SetNumberOfStreams )(
__RPC__in IEVRFilterConfigEx * This,
/* [in] */ DWORD dwMaxStreams);
HRESULT ( STDMETHODCALLTYPE *GetNumberOfStreams )(
__RPC__in IEVRFilterConfigEx * This,
/* [annotation][out] */
__out DWORD *pdwMaxStreams);
HRESULT ( STDMETHODCALLTYPE *SetConfigPrefs )(
__RPC__in IEVRFilterConfigEx * This,
/* [in] */ DWORD dwConfigFlags);
HRESULT ( STDMETHODCALLTYPE *GetConfigPrefs )(
__RPC__in IEVRFilterConfigEx * This,
/* [out] */ __RPC__out DWORD *pdwConfigFlags);
END_INTERFACE
} IEVRFilterConfigExVtbl;
interface IEVRFilterConfigEx
{
CONST_VTBL struct IEVRFilterConfigExVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IEVRFilterConfigEx_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IEVRFilterConfigEx_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IEVRFilterConfigEx_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IEVRFilterConfigEx_SetNumberOfStreams(This,dwMaxStreams) \
( (This)->lpVtbl -> SetNumberOfStreams(This,dwMaxStreams) )
#define IEVRFilterConfigEx_GetNumberOfStreams(This,pdwMaxStreams) \
( (This)->lpVtbl -> GetNumberOfStreams(This,pdwMaxStreams) )
#define IEVRFilterConfigEx_SetConfigPrefs(This,dwConfigFlags) \
( (This)->lpVtbl -> SetConfigPrefs(This,dwConfigFlags) )
#define IEVRFilterConfigEx_GetConfigPrefs(This,pdwConfigFlags) \
( (This)->lpVtbl -> GetConfigPrefs(This,pdwConfigFlags) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IEVRFilterConfigEx_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_evr_0000_0011 */
/* [local] */ /* [local] */
typedef typedef
enum _MF_SERVICE_LOOKUP_TYPE enum _MF_SERVICE_LOOKUP_TYPE
{ MF_SERVICE_LOOKUP_UPSTREAM = 0, { MF_SERVICE_LOOKUP_UPSTREAM = 0,
MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = ( MF_SERVICE_LOOKUP_UPSTREAM + 1 ) , MF_SERVICE_LOOKUP_UPSTREAM_DIRECT = ( MF_SERVICE_LOOKUP_UPSTREAM + 1 ) ,
MF_SERVICE_LOOKUP_DOWNSTREAM = ( MF_SERVICE_LOOKUP_UPSTREAM_DIRECT + 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 + 1 ) ,
MF_SERVICE_LOOKUP_ALL = ( MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT + 1 ) , MF_SERVICE_LOOKUP_ALL = ( MF_SERVICE_LOOKUP_DOWNSTREAM_DIRECT + 1 ) ,
MF_SERVICE_LOOKUP_GLOBAL = ( MF_SERVICE_LOOKUP_ALL + 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_0009_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0011_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0009_v0_0_s_ifspec; extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0011_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)
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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__out_ecount_full(*pnObjects) LPVOID *ppvObjects, __out_ecount_full(*pnObjects) LPVOID *ppvObjects,
/* [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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__out_ecount_full(*pnObjects) LPVOID *ppvObjects, __out_ecount_full(*pnObjects) LPVOID *ppvObjects,
/* [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;
}; };
skipping to change at line 1297 skipping to change at line 1545
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(
/* [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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
/* [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
{ {
skipping to change at line 1398 skipping to change at line 1646
#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,
/* [iid_is][out] */ /* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject); __RPC__deref_out 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,
skipping to change at line 1460 skipping to change at line 1708
#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_0012 */ /* interface __MIDL_itf_evr_0000_0014 */
/* [local] */ /* [local] */
#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,
skipping to change at line 1497 skipping to change at line 1745
); );
EVRPUBLIC(MFCreateVideoRenderer)( EVRPUBLIC(MFCreateVideoRenderer)(
REFIID riidRenderer, REFIID riidRenderer,
__deref_out_opt void ** ppVideoRenderer __deref_out_opt void ** ppVideoRenderer
); );
EVRPUBLIC(MFCreateVideoSampleFromSurface)( EVRPUBLIC(MFCreateVideoSampleFromSurface)(
__in_opt IUnknown* pUnkSurface, __in_opt IUnknown* pUnkSurface,
__deref_out_opt IMFSample** ppSample __deref_out_opt IMFSample** ppSample
); );
extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0012_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0014_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0012_v0_0_s_ifspec; extern RPC_IF_HANDLE __MIDL_itf_evr_0000_0014_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */ /* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsign unsigned long __RPC_USER HWND_UserSize( __RPC__in unsigned long
ed long , HWND * ); *, unsigned long , __RPC__in HWND * );
unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, unsigned char * __RPC_USER HWND_UserMarshal( __RPC__in unsigned long *, __RPC_
HWND * ); _inout_xcount(0) unsigned char *, __RPC__in HWND * );
unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, unsigned char * __RPC_USER HWND_UserUnmarshal(__RPC__in unsigned long *, __RPC_
HWND * ); _in_xcount(0) unsigned char *, __RPC__out HWND * );
void __RPC_USER HWND_UserFree( unsigned long *, HWND * void __RPC_USER HWND_UserFree( __RPC__in unsigned long
); *, __RPC__in HWND * );
unsigned long __RPC_USER HWND_UserSize64( unsigned long *, unsi unsigned long __RPC_USER HWND_UserSize64( __RPC__in unsigned lo
gned long , HWND * ); ng *, unsigned long , __RPC__in HWND * );
unsigned char * __RPC_USER HWND_UserMarshal64( unsigned long *, unsigned char unsigned char * __RPC_USER HWND_UserMarshal64( __RPC__in unsigned long *, __RP
*, HWND * ); C__inout_xcount(0) unsigned char *, __RPC__in HWND * );
unsigned char * __RPC_USER HWND_UserUnmarshal64(unsigned long *, unsigned char unsigned char * __RPC_USER HWND_UserUnmarshal64(__RPC__in unsigned long *, __RP
*, HWND * ); C__in_xcount(0) unsigned char *, __RPC__out HWND * );
void __RPC_USER HWND_UserFree64( unsigned long *, HWND void __RPC_USER HWND_UserFree64( __RPC__in unsigned lo
* ); ng *, __RPC__in HWND * );
/* end of Additional Prototypes */ /* end of Additional Prototypes */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 81 change blocks. 
97 lines changed or deleted 345 lines changed or added


 mfapi.h (6.0.6002.18005-Windows 6.0)   mfapi.h (6.1.7601.19091-Windows 7.0) 
skipping to change at line 32 skipping to change at line 32
#include <avrt.h> #include <avrt.h>
#ifndef AVRT_DATA #ifndef AVRT_DATA
#define AVRT_DATA #define AVRT_DATA
#endif #endif
#ifndef AVRT_BSS #ifndef AVRT_BSS
#define AVRT_BSS #define AVRT_BSS
#endif #endif
#if !defined(MF_VERSION) #if !defined(MF_VERSION)
#if (WINVER >= _WIN32_WINNT_WIN7)
#define MF_SDK_VERSION 0x0002
#else // Vista
#define MF_SDK_VERSION 0x0001 #define MF_SDK_VERSION 0x0001
#define MF_API_VERSION 0x0070 // Increment this whenever you change an API
#endif // (WINVER >= _WIN32_WINNT_WIN7)
#define MF_API_VERSION 0x0070 // This value is unused in the Win7 release and le
ft at its Vista release value
#define MF_VERSION (MF_SDK_VERSION << 16 | MF_API_VERSION) #define MF_VERSION (MF_SDK_VERSION << 16 | MF_API_VERSION)
#endif
#endif //!defined(MF_VERSION)
#define MFSTARTUP_NOSOCKET 0x1 #define MFSTARTUP_NOSOCKET 0x1
#define MFSTARTUP_LITE (MFSTARTUP_NOSOCKET) #define MFSTARTUP_LITE (MFSTARTUP_NOSOCKET)
#define MFSTARTUP_FULL 0 #define MFSTARTUP_FULL 0
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#endif #endif
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
skipping to change at line 102 skipping to change at line 113
IUnknown * pState); IUnknown * pState);
STDAPI MFPutWorkItemEx( STDAPI MFPutWorkItemEx(
DWORD dwQueue, DWORD dwQueue,
IMFAsyncResult * pResult); IMFAsyncResult * pResult);
STDAPI MFScheduleWorkItem( STDAPI MFScheduleWorkItem(
IMFAsyncCallback * pCallback, IMFAsyncCallback * pCallback,
IUnknown * pState, IUnknown * pState,
INT64 Timeout, INT64 Timeout,
MFWORKITEM_KEY * pKey); __out_opt MFWORKITEM_KEY * pKey);
STDAPI MFScheduleWorkItemEx( STDAPI MFScheduleWorkItemEx(
IMFAsyncResult * pResult, IMFAsyncResult * pResult,
INT64 Timeout, INT64 Timeout,
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.
// //
STDAPI MFCancelWorkItem( STDAPI MFCancelWorkItem(
MFWORKITEM_KEY Key); MFWORKITEM_KEY Key);
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// MF periodic callbacks // MF periodic callbacks
// //
STDAPI MFGetTimerPeriodicity( STDAPI MFGetTimerPeriodicity(
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,
DWORD * pdwKey); __out_opt DWORD * pdwKey);
STDAPI MFRemovePeriodicCallback( STDAPI MFRemovePeriodicCallback(
DWORD dwKey); DWORD dwKey);
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// MF work queues // MF work queues
// //
#if (WINVER >= _WIN32_WINNT_WIN7)
//
// MFASYNC_WORKQUEUE_TYPE: types of work queue used by MFAllocateWorkQueueEx
//
typedef enum
{
// MF_STANDARD_WORKQUEUE: Work queue in a thread without Window
// message loop.
MF_STANDARD_WORKQUEUE = 0,
// MF_WINDOW_WORKQUEUE: Work queue in a thread running Window
// Message loop that calls PeekMessage() / DispatchMessage()..
MF_WINDOW_WORKQUEUE = 1,
} MFASYNC_WORKQUEUE_TYPE;
STDAPI MFAllocateWorkQueueEx(
__in MFASYNC_WORKQUEUE_TYPE WorkQueueType,
__out OUT DWORD * pdwWorkQueue);
#endif // (WINVER >= _WIN32_WINNT_WIN7)
//
// Allocate a standard work queue. the behaviour is the same with:
// MFAllocateWorkQueueEx( MF_STANDARD_WORKQUEUE, pdwWorkQueue )
//
STDAPI MFAllocateWorkQueue( STDAPI MFAllocateWorkQueue(
__out OUT DWORD * pdwWorkQueue); __out OUT DWORD * pdwWorkQueue);
STDAPI MFLockWorkQueue( STDAPI MFLockWorkQueue(
IN DWORD dwWorkQueue); __in DWORD dwWorkQueue);
STDAPI MFUnlockWorkQueue( STDAPI MFUnlockWorkQueue(
IN DWORD dwWorkQueue); __in DWORD dwWorkQueue);
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 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 MFSetWorkQueueClass(
DWORD dwWorkQueueId,
LPCWSTR szClass );
STDAPI MFGetWorkQueueMMCSSClass( STDAPI MFGetWorkQueueMMCSSClass(
DWORD dwWorkQueueId, DWORD dwWorkQueueId,
__out_ecount_part_opt(*pcchClass,*pcchClass) LPWSTR pwszClass, __out_ecount_part_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 );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Async Model ////////////////////////////// ///////////////////////////////// Async Model //////////////////////////////
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Instantiates the MF-provided Async Result implementation // Instantiates the MF-provided Async Result implementation
// //
STDAPI MFCreateAsyncResult( STDAPI MFCreateAsyncResult(
IUnknown * punkObject, IUnknown * punkObject,
IMFAsyncCallback * pCallback, IMFAsyncCallback * pCallback,
IUnknown * punkState, IUnknown * punkState,
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 239 skipping to change at line 271
// //
// 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,
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,
IMFByteStream **ppIByteStream ); __out IMFByteStream **ppIByteStream );
STDAPI MFBeginCreateFile( STDAPI MFBeginCreateFile(
IN MF_FILE_ACCESSMODE AccessMode, MF_FILE_ACCESSMODE AccessMode,
IN MF_FILE_OPENMODE OpenMode, MF_FILE_OPENMODE OpenMode,
IN MF_FILE_FLAGS fFlags, MF_FILE_FLAGS fFlags,
IN LPCWSTR pwszFilePath, LPCWSTR pwszFilePath,
IN IMFAsyncCallback * pCallback, IMFAsyncCallback * pCallback,
IN IUnknown * pState, IUnknown * pState,
OUT IUnknown ** ppCancelCookie); __out IUnknown ** ppCancelCookie);
STDAPI MFEndCreateFile( STDAPI MFEndCreateFile(
IN IMFAsyncResult * pResult, IMFAsyncResult * pResult,
OUT IMFByteStream **ppFile ); __out IMFByteStream **ppFile );
STDAPI MFCancelCreateFile( STDAPI MFCancelCreateFile(
IN IUnknown * pCancelCookie); IUnknown * pCancelCookie);
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Buffers ////////////////////////////// ///////////////////////////////// Buffers //////////////////////////////
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Creates an IMFMediaBuffer in memory // Creates an IMFMediaBuffer in memory
// //
STDAPI MFCreateMemoryBuffer( STDAPI MFCreateMemoryBuffer(
__in DWORD cbMaxLength, __in DWORD cbMaxLength,
__deref_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,
__deref_out IMFMediaBuffer ** ppBuffer ); __out IMFMediaBuffer ** ppBuffer );
// //
// 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(
skipping to change at line 326 skipping to change at line 358
#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,
__deref_out IMFMediaBuffer ** ppBuffer ); __out IMFMediaBuffer ** ppBuffer );
// //
// 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.
// //
STDAPI MFCreateMediaEvent( STDAPI MFCreateMediaEvent(
MediaEventType met, __in MediaEventType met,
REFGUID guidExtendedType, __in REFGUID guidExtendedType,
HRESULT hrStatus, __in HRESULT hrStatus,
const PROPVARIANT * pvValue, __in_opt const PROPVARIANT * pvValue,
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(
IMFMediaEventQueue **ppMediaEventQueue ); __out IMFMediaEventQueue **ppMediaEventQueue );
// //
// 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 388 skipping to change at line 420
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
// //
// MESesssionTopologyStatus 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.
// //
// However, there are no guarantees about how these status values will be // However, there are no guarantees about how these status values will be
// ordered between two consecutive topologies. For example, // ordered between two consecutive topologies. For example,
// MF_TOPOSTATUS_READY could arrive for topology n+1 before // MF_TOPOSTATUS_READY could arrive for topology n+1 before
skipping to change at line 419 skipping to change at line 451
// MF_TOPOSTATUS_READY: The topology has been put in place and is // MF_TOPOSTATUS_READY: The topology has been put in place and is
// ready to start. All GetService calls to the Media Session will use // ready to start. All GetService calls to the Media Session will use
// this topology. // this topology.
MF_TOPOSTATUS_READY = 100, MF_TOPOSTATUS_READY = 100,
// MF_TOPOSTATUS_STARTED_SOURCE: The Media Session has started to read // MF_TOPOSTATUS_STARTED_SOURCE: The Media Session has started to read
// and process data from the Media Source(s) in this topology. // and process data from the Media Source(s) in this topology.
MF_TOPOSTATUS_STARTED_SOURCE = 200, MF_TOPOSTATUS_STARTED_SOURCE = 200,
#if (WINVER >= _WIN32_WINNT_WIN7)
// MF_TOPOSTATUS_DYNAMIC_CHANGED: The topology has been dynamic changed
// due to the format change.
MF_TOPOSTATUS_DYNAMIC_CHANGED = 210,
#endif // (WINVER >= _WIN32_WINNT_WIN7)
// MF_TOPOSTATUS_SINK_SWITCHED: The Media Sinks in the pipeline have // MF_TOPOSTATUS_SINK_SWITCHED: The Media Sinks in the pipeline have
// switched from a previous topology to this topology. // switched from a previous topology to this topology.
// Note that this status does not get sent for the first topology; // Note that this status does not get sent for the first topology;
// applications can assume that the sinks are playing the first // applications can assume that the sinks are playing the first
// topology when they receive MESessionStarted. // topology when they receive MESessionStarted.
MF_TOPOSTATUS_SINK_SWITCHED = 300, MF_TOPOSTATUS_SINK_SWITCHED = 300,
// MF_TOPOSTATUS_ENDED: Playback of this topology is complete. // MF_TOPOSTATUS_ENDED: Playback of this topology is complete.
// Before deleting this topology, however, the application should wait // Before deleting this topology, however, the application should wait
// for either MESessionEnded or the MF_TOPOSTATUS_STARTED_SOURCE status // for either MESessionEnded or the MF_TOPOSTATUS_STARTED_SOURCE status
skipping to change at line 530 skipping to change at line 568
// //
// 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);
#if (WINVER >= _WIN32_WINNT_WIN7)
//
// METransformNeedInput attributes
//
// MF_EVENT_MFT_INPUT_STREAM_ID {F29C2CCA-7AE6-42d2-B284-BF837CC874E2}
// Type: UINT32
DEFINE_GUID(MF_EVENT_MFT_INPUT_STREAM_ID,
0xf29c2cca, 0x7ae6, 0x42d2, 0xb2, 0x84, 0xbf, 0x83, 0x7c, 0xc8, 0x74, 0xe2);
//
// METransformDrainComplete and METransformMarker attributes
//
// MF_EVENT_MFT_CONTEXT {B7CD31F1-899E-4b41-80C9-26A896D32977}
// Type: UINT64
DEFINE_GUID(MF_EVENT_MFT_CONTEXT,
0xb7cd31f1, 0x899e, 0x4b41, 0x80, 0xc9, 0x26, 0xa8, 0x96, 0xd3, 0x29, 0x77);
#endif // (WINVER >= _WIN32_WINNT_WIN7)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// 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 );
// //
skipping to change at line 681 skipping to change at line 740
0x9ea73fb4, 0xef7a, 0x4559, 0x8d, 0x5d, 0x71, 0x9d, 0x8f, 0x04, 0x26, 0xc7); 0x9ea73fb4, 0xef7a, 0x4559, 0x8d, 0x5d, 0x71, 0x9d, 0x8f, 0x04, 0x26, 0xc7);
// {91c64bd0-f91e-4d8c-9276-db248279d975} MFT_CATEGORY_AUDIO_ENCODER // {91c64bd0-f91e-4d8c-9276-db248279d975} MFT_CATEGORY_AUDIO_ENCODER
DEFINE_GUID(MFT_CATEGORY_AUDIO_ENCODER, DEFINE_GUID(MFT_CATEGORY_AUDIO_ENCODER,
0x91c64bd0, 0xf91e, 0x4d8c, 0x92, 0x76, 0xdb, 0x24, 0x82, 0x79, 0xd9, 0x75); 0x91c64bd0, 0xf91e, 0x4d8c, 0x92, 0x76, 0xdb, 0x24, 0x82, 0x79, 0xd9, 0x75);
// {11064c48-3648-4ed0-932e-05ce8ac811b7} MFT_CATEGORY_AUDIO_EFFECT // {11064c48-3648-4ed0-932e-05ce8ac811b7} MFT_CATEGORY_AUDIO_EFFECT
DEFINE_GUID(MFT_CATEGORY_AUDIO_EFFECT, DEFINE_GUID(MFT_CATEGORY_AUDIO_EFFECT,
0x11064c48, 0x3648, 0x4ed0, 0x93, 0x2e, 0x05, 0xce, 0x8a, 0xc8, 0x11, 0xb7); 0x11064c48, 0x3648, 0x4ed0, 0x93, 0x2e, 0x05, 0xce, 0x8a, 0xc8, 0x11, 0xb7);
#if (WINVER >= _WIN32_WINNT_WIN7)
// {302EA3FC-AA5F-47f9-9F7A-C2188BB163021}...MFT_CATEGORY_VIDEO_PROCESSOR
DEFINE_GUID(MFT_CATEGORY_VIDEO_PROCESSOR,
0x302ea3fc, 0xaa5f, 0x47f9, 0x9f, 0x7a, 0xc2, 0x18, 0x8b, 0xb1, 0x63, 0x2);
#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);
// //
// new version of MFT_REGISTER_TYPE_INFO for MF
//
typedef struct _MFT_REGISTER_TYPE_INFO {
GUID guidMajorType;
GUID guidSubtype;
} MFT_REGISTER_TYPE_INFO;
//
// "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_ecount_opt(cInputTypes) MFT_REGISTER_TYPE_INFO* pInputTypes,
__in UINT32 cOutputTypes, __in UINT32 cOutputTypes,
__in_ecount_opt(cOutputTypes) MFT_REGISTER_TYPE_INFO* pOutputTypes, __in_ecount_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)
// Register an MFT class in-process
STDAPI
MFTRegisterLocal(
__in IClassFactory* pClassFactory,
__in REFGUID guidCategory,
__in LPCWSTR pszName,
__in UINT32 Flags,
__in UINT32 cInputTypes,
__in_ecount_opt(cInputTypes)const MFT_REGISTER_TYPE_INFO* pInputTypes,
__in UINT32 cOutputTypes,
__in_ecount_opt(cOutputTypes)const MFT_REGISTER_TYPE_INFO* pOutputTypes
);
// Unregister locally registered MFT
// If pClassFactory is NULL all local MFTs are unregistered
STDAPI
MFTUnregisterLocal(
__in_opt IClassFactory * pClassFactory
);
// Register an MFT class in-process, by CLSID
STDAPI
MFTRegisterLocalByCLSID(
__in REFCLSID clisdMFT,
__in REFGUID guidCategory,
__in LPCWSTR pszName,
__in UINT32 Flags,
__in UINT32 cInputTypes,
__in_ecount_opt(cInputTypes)const MFT_REGISTER_TYPE_INFO* pInputTypes,
__in UINT32 cOutputTypes,
__in_ecount_opt(cOutputTypes)const MFT_REGISTER_TYPE_INFO* pOutputTypes
);
// Unregister locally registered MFT by CLSID
STDAPI
MFTUnregisterLocalByCLSID(
__in CLSID clsidMFT
);
#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,
__out_ecount(*pcMFTs) CLSID** ppclsidMFT, // must be freed with CoTaskMemFree __deref_out_ecount(*pcMFTs) CLSID** ppclsidMFT, // must be freed with CoTaskMemFree
__out UINT32* pcMFTs __out UINT32* pcMFTs
); );
#if (WINVER >= _WIN32_WINNT_WIN7)
enum _MFT_ENUM_FLAG
{
MFT_ENUM_FLAG_SYNCMFT = 0x00000001, // Enumerates V1 MFTs. This is
default.
MFT_ENUM_FLAG_ASYNCMFT = 0x00000002, // Enumerates only software asy
nc MFTs also known as V2 MFTs
MFT_ENUM_FLAG_HARDWARE = 0x00000004, // Enumerates V2 hardware async
MFTs
MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008, // Enumerates MFTs that require
unlocking
MFT_ENUM_FLAG_LOCALMFT = 0x00000010, // Enumerates Locally (in-proce
ss) registered MFTs
MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020, // Enumerates decoder MFTs used
by transcode only
MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040, // Apply system local, do not u
se and preferred sorting and filtering
MFT_ENUM_FLAG_ALL = 0x0000003F // Enumerates all MFTs includin
g SW and HW MFTs and applies filtering
};
//
// result *pppMFTActivate must be freed with CoTaskMemFree. Each IMFActivate poi
nter inside this
// buffer should be released.
//
STDAPI
MFTEnumEx(
__in GUID guidCate
gory,
__in UINT32 Flags,
__in_opt const MFT_REGISTER_TYPE_INFO* pInputTy
pe,
__in_opt const MFT_REGISTER_TYPE_INFO* pOutputT
ype,
__deref_out_ecount(*pnumMFTActivate) IMFActivate*** pppMFTAc
tivate,
__out UINT32* pnumMFTA
ctivate
);
#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,
__deref_out_opt LPWSTR* pszName, __out_opt LPWSTR* pszName,
__out_ecount_opt(*pcInputTypes) MFT_REGISTER_TYPE_INFO** ppInputTypes __deref_opt_out_ecount(*pcInputTypes) MFT_REGISTER_TYPE_INFO** ppInputTy
, pes,
__out_opt UINT32* pcInputTypes __out_opt UINT32* pcInputTy
, pes,
__out_ecount_opt(*pcOutputTypes) MFT_REGISTER_TYPE_INFO** ppOutputType __deref_opt_out_ecount(*pcOutputTypes) MFT_REGISTER_TYPE_INFO** ppOutputT
s, ypes,
__out_opt UINT32* pcOutputType __out_opt UINT32* pcOutputT
s, ypes,
__deref_out_opt IMFAttributes** ppAttributes __deref_opt_out_opt IMFAttributes** ppAttribu
tes
);
#if (WINVER >= _WIN32_WINNT_WIN7)
//
// Get the plugin control API
//
STDAPI
MFGetPluginControl(
__out IMFPluginControl **ppPluginControl
); );
//
// Get MFT's merit - checking that is has a valid certificate
//
STDAPI
MFGetMFTMerit(
__inout IUnknown *pMFT,
__in UINT32 cbVerifier,
__in_bcount(cbVerifier) const BYTE * verifier,
__out DWORD *merit
);
#endif // (WINVER >= _WIN32_WINNT_WIN7)
//////////////////////////////////////////////////////////////////////////////// /////////////////////////////// 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
skipping to change at line 798 skipping to change at line 949
// If no D3D headers have been included yet, define local versions of D3DFMT con stants we use. // If no D3D headers have been included yet, define local versions of D3DFMT con stants we use.
// We can't include D3D headers from this header because we need it to be compat ible with all versions // We can't include D3D headers from this header because we need it to be compat ible with all versions
// of D3D. // of D3D.
// //
#ifndef DIRECT3D_VERSION #ifndef DIRECT3D_VERSION
#define D3DFMT_R8G8B8 20 #define D3DFMT_R8G8B8 20
#define D3DFMT_A8R8G8B8 21 #define D3DFMT_A8R8G8B8 21
#define D3DFMT_X8R8G8B8 22 #define D3DFMT_X8R8G8B8 22
#define D3DFMT_R5G6B5 23 #define D3DFMT_R5G6B5 23
#define D3DFMT_X1R5G5B5 24 #define D3DFMT_X1R5G5B5 24
#define D3DFMT_P8 41
#define LOCAL_D3DFMT_DEFINES 1 #define LOCAL_D3DFMT_DEFINES 1
#endif #endif
DEFINE_MEDIATYPE_GUID( MFVideoFormat_Base, 0x00000000 ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_Base, 0x00000000 );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB32, D3DFMT_X8R8G8B8 ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB32, D3DFMT_X8R8G8B8 );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_ARGB32, D3DFMT_A8R8G8B8 ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_ARGB32, D3DFMT_A8R8G8B8 );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB24, D3DFMT_R8G8B8 ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB24, D3DFMT_R8G8B8 );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB555, D3DFMT_X1R5G5B5 ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB555, D3DFMT_X1R5G5B5 );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB565, D3DFMT_R5G6B5 ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB565, D3DFMT_R5G6B5 );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_RGB8, D3DFMT_P8 );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_AI44, FCC('AI44') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_AI44, FCC('AI44') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_AYUV, FCC('AYUV') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_AYUV, FCC('AYUV') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_YUY2, FCC('YUY2') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_YUY2, FCC('YUY2') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_YVYU, FCC('YVYU') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_YVU9, FCC('YVU9') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_UYVY, FCC('UYVY') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_UYVY, FCC('UYVY') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_NV11, FCC('NV11') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_NV11, FCC('NV11') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_NV12, FCC('NV12') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_NV12, FCC('NV12') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_YV12, FCC('YV12') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_YV12, FCC('YV12') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_I420, FCC('I420') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_IYUV, FCC('IYUV') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_IYUV, FCC('IYUV') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y210, FCC('Y210') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y210, FCC('Y210') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y216, FCC('Y216') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y216, FCC('Y216') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y410, FCC('Y410') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y410, FCC('Y410') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y416, FCC('Y416') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y416, FCC('Y416') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y41P, FCC('Y41P') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y41T, FCC('Y41T') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_Y42T, FCC('Y42T') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_P210, FCC('P210') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_P210, FCC('P210') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_P216, FCC('P216') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_P216, FCC('P216') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_P010, FCC('P010') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_P010, FCC('P010') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_P016, FCC('P016') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_P016, FCC('P016') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_v210, FCC('v210') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_v210, FCC('v210') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_v216, FCC('v216') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_v410, FCC('v410') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_v410, FCC('v410') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_MP43, FCC('MP43') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_MP43, FCC('MP43') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_MP4S, FCC('MP4S') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_MP4S, FCC('MP4S') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_M4S2, FCC('M4S2') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_MP4V, FCC('MP4V') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_WMV1, FCC('WMV1') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_WMV1, FCC('WMV1') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_WMV2, FCC('WMV2') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_WMV2, FCC('WMV2') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_WMV3, FCC('WMV3') ); DEFINE_MEDIATYPE_GUID( MFVideoFormat_WMV3, FCC('WMV3') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_WVC1, FCC('WVC1') );
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_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_H264, FCC('H264') );
DEFINE_MEDIATYPE_GUID( MFVideoFormat_MJPG, FCC('MJPG') );
// //
// 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 LOCAL_D3DFMT_DEFINES #undef LOCAL_D3DFMT_DEFINES
#endif #endif
// //
// 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);
skipping to change at line 877 skipping to change at line 1045
DEFINE_MEDIATYPE_GUID( MFAudioFormat_DTS, WAVE_FORMAT_DTS ); DEFINE_MEDIATYPE_GUID( MFAudioFormat_DTS, WAVE_FORMAT_DTS );
DEFINE_MEDIATYPE_GUID( MFAudioFormat_Dolby_AC3_SPDIF, WAVE_FORMAT_DOLBY_AC3_SP DIF ); DEFINE_MEDIATYPE_GUID( MFAudioFormat_Dolby_AC3_SPDIF, WAVE_FORMAT_DOLBY_AC3_SP DIF );
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_ADTS, WAVE_FORMAT_MPEG_ADTS_AA
C );
//
// MPEG-4 media types
//
// {00000000-767a-494d-b478-f29d25dc9037} MFMPEG4Format_Base
DEFINE_GUID(MFMPEG4Format_Base,
0x00000000, 0x767a, 0x494d, 0xb4, 0x78, 0xf2, 0x9d, 0x25, 0xdc, 0x90, 0x37);
//////////////////////////////////////////////////////////////////////////////// /////////////////////////////// Media Type Attributes GUIDs /////////////////// ///////// //////////////////////////////////////////////////////////////////////////////// /////////////////////////////// Media Type Attributes GUIDs /////////////////// /////////
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
// GUIDs for IMFMediaType properties - prefix 'MF_MT_' - basic prop type in {}, // GUIDs for IMFMediaType properties - prefix 'MF_MT_' - basic prop type in {},
// with type to cast to in (). // with type to cast to in ().
// //
// //
skipping to change at line 1004 skipping to change at line 1182
// a WAVEFORMATEXTENSIBLE when converting to a legacy type. It is set by the WAV EFORMATEX->IMFMediaType // a WAVEFORMATEXTENSIBLE when converting to a legacy type. It is set by the WAV EFORMATEX->IMFMediaType
// conversion routines when the original format block is a non-extensible WAVEFO RMATEX. // conversion routines when the original format block is a non-extensible WAVEFO RMATEX.
// //
// This preference can be overridden and does not guarantee that the type can be correctly expressed // This preference can be overridden and does not guarantee that the type can be correctly expressed
// by a non-extensible type. // by a non-extensible type.
// //
// {a901aaba-e037-458a-bdf6-545be2074042} MF_MT_AUDIO_PREFER_WAVEFORMATEX {UINT32 (BOOL)} // {a901aaba-e037-458a-bdf6-545be2074042} MF_MT_AUDIO_PREFER_WAVEFORMATEX {UINT32 (BOOL)}
DEFINE_GUID(MF_MT_AUDIO_PREFER_WAVEFORMATEX, DEFINE_GUID(MF_MT_AUDIO_PREFER_WAVEFORMATEX,
0xa901aaba, 0xe037, 0x458a, 0xbd, 0xf6, 0x54, 0x5b, 0xe2, 0x07, 0x40, 0x42); 0xa901aaba, 0xe037, 0x458a, 0xbd, 0xf6, 0x54, 0x5b, 0xe2, 0x07, 0x40, 0x42);
#if (WINVER >= _WIN32_WINNT_WIN7)
//
// AUDIO - AAC extra data
//
// {BFBABE79-7434-4d1c-94F0-72A3B9E17188} MF_MT_AAC_PAYLOAD_TYPE {UINT32}
DEFINE_GUID(MF_MT_AAC_PAYLOAD_TYPE,
0xbfbabe79, 0x7434, 0x4d1c, 0x94, 0xf0, 0x72, 0xa3, 0xb9, 0xe1, 0x71, 0x88);
// {7632F0E6-9538-4d61-ACDA-EA29C8C14456} MF_MT_AAC_AUDIO_PROFILE_LEVEL_INDICATI
ON {UINT32}
DEFINE_GUID(MF_MT_AAC_AUDIO_PROFILE_LEVEL_INDICATION,
0x7632f0e6, 0x9538, 0x4d61, 0xac, 0xda, 0xea, 0x29, 0xc8, 0xc1, 0x44, 0x56);
#endif // (WINVER >= _WIN32_WINNT_WIN7)
// //
// VIDEO core data // VIDEO core data
// //
// {1652c33d-d6b2-4012-b834-72030849a37d} MF_MT_FRAME_SIZE {UIN T64 (HI32(Width),LO32(Height))} // {1652c33d-d6b2-4012-b834-72030849a37d} MF_MT_FRAME_SIZE {UIN T64 (HI32(Width),LO32(Height))}
DEFINE_GUID(MF_MT_FRAME_SIZE, DEFINE_GUID(MF_MT_FRAME_SIZE,
0x1652c33d, 0xd6b2, 0x4012, 0xb8, 0x34, 0x72, 0x03, 0x08, 0x49, 0xa3, 0x7d); 0x1652c33d, 0xd6b2, 0x4012, 0xb8, 0x34, 0x72, 0x03, 0x08, 0x49, 0xa3, 0x7d);
// {c459a2e8-3d2c-4e44-b132-fee5156c7bb0} MF_MT_FRAME_RATE {UIN T64 (HI32(Numerator),LO32(Denominator))} // {c459a2e8-3d2c-4e44-b132-fee5156c7bb0} MF_MT_FRAME_RATE {UIN T64 (HI32(Numerator),LO32(Denominator))}
DEFINE_GUID(MF_MT_FRAME_RATE, DEFINE_GUID(MF_MT_FRAME_RATE,
skipping to change at line 1196 skipping to change at line 1389
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);
#if (WINVER >= _WIN32_WINNT_WIN7)
//
// ARBITRARY
//
//
// MT_ARBITRARY_HEADER stores information about the format of an arbitrary media
type
//
typedef struct _MT_ARBITRARY_HEADER
{
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
}
MT_ARBITRARY_HEADER;
// {9E6BD6F5-0109-4f95-84AC-9309153A19FC} MF_MT_ARBITRARY_HEADER {MT_
ARBITRARY_HEADER}
DEFINE_GUID(MF_MT_ARBITRARY_HEADER,
0x9e6bd6f5, 0x109, 0x4f95, 0x84, 0xac, 0x93, 0x9, 0x15, 0x3a, 0x19, 0xfc );
// {5A75B249-0D7D-49a1-A1C3-E0D87F0CADE5} MF_MT_ARBITRARY_FORMAT {Blo
b}
DEFINE_GUID(MF_MT_ARBITRARY_FORMAT,
0x5a75b249, 0xd7d, 0x49a1, 0xa1, 0xc3, 0xe0, 0xd8, 0x7f, 0xc, 0xad, 0xe5);
//
// IMAGE
//
// {ED062CF4-E34E-4922-BE99-934032133D7C} MF_MT_IMAGE_LOSS_TOLERANT {UIN
T32 (BOOL)}
DEFINE_GUID(MF_MT_IMAGE_LOSS_TOLERANT,
0xed062cf4, 0xe34e, 0x4922, 0xbe, 0x99, 0x93, 0x40, 0x32, 0x13, 0x3d, 0x7c);
//
// MPEG-4 Media Type Attributes
//
// {261E9D83-9529-4B8F-A111-8B9C950A81A9} MF_MT_MPEG4_SAMPLE_DESCRIPTION {BL
OB}
DEFINE_GUID(MF_MT_MPEG4_SAMPLE_DESCRIPTION,
0x261e9d83, 0x9529, 0x4b8f, 0xa1, 0x11, 0x8b, 0x9c, 0x95, 0x0a, 0x81, 0xa9);
// {9aa7e155-b64a-4c1d-a500-455d600b6560} MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY {UI
NT32}
DEFINE_GUID(MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY,
0x9aa7e155, 0xb64a, 0x4c1d, 0xa5, 0x00, 0x45, 0x5d, 0x60, 0x0b, 0x65, 0x60);
//
// Save original format information for AVI and WAV files
//
// {d7be3fe0-2bc7-492d-b843-61a1919b70c3} MF_MT_ORIGINAL_4CC (UI
NT32)
DEFINE_GUID(MF_MT_ORIGINAL_4CC,
0xd7be3fe0, 0x2bc7, 0x492d, 0xb8, 0x43, 0x61, 0xa1, 0x91, 0x9b, 0x70, 0xc3);
// {8cbbc843-9fd9-49c2-882f-a72586c408ad} MF_MT_ORIGINAL_WAVE_FORMAT_TAG (UI
NT32)
DEFINE_GUID(MF_MT_ORIGINAL_WAVE_FORMAT_TAG,
0x8cbbc843, 0x9fd9, 0x49c2, 0x88, 0x2f, 0xa7, 0x25, 0x86, 0xc4, 0x08, 0xad);
//
// Video Capture Media Type Attributes
//
// {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,
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))}
DEFINE_GUID(MF_MT_FRAME_RATE_RANGE_MAX,
0xe3371d41, 0xb4cf, 0x4a05, 0xbd, 0x4e, 0x20, 0xb8, 0x8b, 0xb2, 0xc4, 0xd6);
#endif // (WINVER >= _WIN32_WINNT_WIN7)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// 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 1480 skipping to change at line 1743
__in IMFMediaType* pWrap, __in IMFMediaType* pWrap,
__out IMFMediaType ** ppOrig __out IMFMediaType ** ppOrig
); );
// //
// MFCreateVideoMediaType // MFCreateVideoMediaType
// //
#ifdef _KSMEDIA_ #ifdef _KSMEDIA_
STDAPI MFCreateVideoMediaTypeFromVideoInfoHeader( STDAPI MFCreateVideoMediaTypeFromVideoInfoHeader(
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,
const GUID * pSubtype, __in_opt const GUID * pSubtype,
IMFVideoMediaType** ppIVideoMediaType __out IMFVideoMediaType** ppIVideoMediaType
); );
STDAPI MFCreateVideoMediaTypeFromVideoInfoHeader2( STDAPI MFCreateVideoMediaTypeFromVideoInfoHeader2(
const KS_VIDEOINFOHEADER2* pVideoInfoHeader, __in const KS_VIDEOINFOHEADER2* pVideoInfoHeader,
DWORD cbVideoInfoHeader, DWORD cbVideoInfoHeader,
QWORD AdditionalVideoFlags, QWORD AdditionalVideoFlags,
const GUID * pSubtype, __in_opt const GUID * pSubtype,
IMFVideoMediaType** ppIVideoMediaType __out IMFVideoMediaType** ppIVideoMediaType
); );
#endif #endif
STDAPI MFCreateVideoMediaType( STDAPI MFCreateVideoMediaType(
const MFVIDEOFORMAT* pVideoFormat, __in const MFVIDEOFORMAT* pVideoFormat,
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(
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,
IMFVideoMediaType** ppIVideoMediaType __out IMFVideoMediaType** ppIVideoMediaType
); );
STDAPI MFGetStrideForBitmapInfoHeader( STDAPI MFGetStrideForBitmapInfoHeader(
DWORD format, DWORD format,
DWORD dwWidth, DWORD dwWidth,
LONG* pStride __out LONG* pStride
); );
STDAPI MFGetPlaneSize( STDAPI MFGetPlaneSize(
DWORD format, DWORD format,
DWORD dwWidth, DWORD dwWidth,
DWORD dwHeight, DWORD dwHeight,
DWORD* pdwPlaneSize __out DWORD* pdwPlaneSize
);
#if (WINVER >= _WIN32_WINNT_WIN7)
//
// MFCreateVideoMediaTypeFromBitMapInfoHeaderEx
//
STDAPI MFCreateVideoMediaTypeFromBitMapInfoHeaderEx(
__in_bcount(cbBitMapInfoHeader) const BITMAPINFOHEADER* pbmihBitMapInfoHeade
r,
__in UINT32 cbBitMapInfoHeader,
DWORD dwPixelAspectRatioX,
DWORD dwPixelAspectRatioY,
MFVideoInterlaceMode InterlaceMode,
QWORD VideoFlags,
DWORD dwFramesPerSecondNumerator,
DWORD dwFramesPerSecondDenominator,
DWORD dwMaxBitRate,
__out IMFVideoMediaType** ppIVideoMediaType
); );
#endif // (WINVER >= _WIN32_WINNT_WIN7)
// //
// MFCreateMediaTypeFromRepresentation // MFCreateMediaTypeFromRepresentation
// //
STDAPI MFCreateMediaTypeFromRepresentation( STDAPI MFCreateMediaTypeFromRepresentation(
GUID guidRepresentation, GUID guidRepresentation,
LPVOID pvRepresentation, __in LPVOID pvRepresentation,
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
skipping to change at line 1585 skipping to change at line 1867
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(
DWORD* pdwToDXVA, __out DWORD* pdwToDXVA,
const MFVIDEOFORMAT* pFromFormat __in const MFVIDEOFORMAT* pFromFormat
); );
STDAPI STDAPI
MFConvertColorInfoFromDXVA( MFConvertColorInfoFromDXVA(
MFVIDEOFORMAT* pToFormat, __inout MFVIDEOFORMAT* pToFormat,
DWORD dwFromDXVA __in DWORD dwFromDXVA
); );
// //
// Optimized stride copy function // Optimized stride copy function
// //
STDAPI MFCopyImage( STDAPI MFCopyImage(
BYTE* pDest, __out_bcount(abs(lDestStride) * dwLines) BYTE* pDest,
LONG lDestStride, LONG lDestStride,
const BYTE* pSrc, __in_bcount(abs(lSrcStride) * dwLines) const BYTE* pSrc,
LONG lSrcStride, LONG lSrcStride,
DWORD dwWidthInBytes, __out_range(<=, min(abs(lSrcStride), abs(lDestStride))) DWORD dwWidthInByte s,
DWORD dwLines DWORD dwLines
); );
STDAPI MFConvertFromFP16Array( STDAPI MFConvertFromFP16Array(
float* pDest, __out_ecount(dwCount) float* pDest,
const WORD* pSrc, __in_ecount(dwCount) const WORD* pSrc,
DWORD dwCount DWORD dwCount
); );
STDAPI MFConvertToFP16Array( STDAPI MFConvertToFP16Array(
WORD* pDest, __out_ecount(dwCount) WORD* pDest,
const float* pSrc, __in_ecount(dwCount) const float* pSrc,
DWORD dwCount DWORD dwCount
); );
//////////////////////////////////////////////////////////////////////////////// /////////////////////////////// Attributes Utility functions ////////////////// ////////// //////////////////////////////////////////////////////////////////////////////// /////////////////////////////// Attributes Utility functions ////////////////// //////////
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
#ifdef __cplusplus #ifdef __cplusplus
// //
// IMFAttributes inline UTILITY FUNCTIONS - used for IMFMediaType as well // IMFAttributes inline UTILITY FUNCTIONS - used for IMFMediaType as well
skipping to change at line 1649 skipping to change at line 1931
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, UINT32* punHigh, UINT32* punLow) 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, UINT32* punWidth, 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, INT32* pnNumerator, UINT32* punDenominator) 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 1740 skipping to change at line 2022
// //
// 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,
UINT32* punHigh32, __out UINT32* punHigh32,
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 1773 skipping to change at line 2055
) )
{ {
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,
UINT32* punNumerator, __out UINT32* punNumerator,
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,
UINT32* punWidth, __out UINT32* punWidth,
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 1832 skipping to change at line 2114
// 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* 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 MFHeapFree( void * pv ); EXTERN_C void WINAPI MFHeapFree( void * pv );
/////////////////////////////// Collection //////////////////////////// /////////////////////////////// Collection ////////////////////////////
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
// Instantiates the MF-provided IMFCollection implementation // Instantiates the MF-provided IMFCollection implementation
// //
STDAPI MFCreateCollection( STDAPI MFCreateCollection(
__deref_out IMFCollection **ppIMFCollection ); __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);
#if (WINVER >= _WIN32_WINNT_WIN7)
// Return (a * b + d) / c
// Returns _I64_MAX or LLONG_MIN on failure or _I64_MAX if mplat.dll is not ava
ilable
LONGLONG WINAPI MFllMulDiv(LONGLONG a, LONGLONG b, LONGLONG c, LONGLONG d);
#endif // (WINVER >= _WIN32_WINNT_WIN7)
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif #endif
#endif //#if !defined(__MFAPI_H__) #endif //#if !defined(__MFAPI_H__)
 End of changes. 74 change blocks. 
92 lines changed or deleted 411 lines changed or added

This html diff was produced by rfcdiff 1.41.