Added some missing WMF declarations. git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@5603 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/mfapi.h b/mingw-w64-headers/include/mfapi.h index 119e453..3e99293 100644 --- a/mingw-w64-headers/include/mfapi.h +++ b/mingw-w64-headers/include/mfapi.h
@@ -443,6 +443,17 @@ GUID formattype; } MT_ARBITRARY_HEADER; +enum _MFT_ENUM_FLAG { + MFT_ENUM_FLAG_SYNCMFT = 0x00000001, + MFT_ENUM_FLAG_ASYNCMFT = 0x00000002, + MFT_ENUM_FLAG_HARDWARE = 0x00000004, + MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008, + MFT_ENUM_FLAG_LOCALMFT = 0x00000010, + MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020, + MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040, + MFT_ENUM_FLAG_ALL = 0x0000003F +}; + HRESULT WINAPI MFCreateMFByteStreamOnStream(IStream *pStream,IMFByteStream **ppByteStream); HRESULT WINAPI MFGetMFTMerit(IUnknown *pMFT,UINT32 cbVerifier,const BYTE *verifier,DWORD *merit); HRESULT WINAPI MFGetPluginControl(IMFPluginControl **ppPluginControl);
diff --git a/mingw-w64-headers/include/mfidl.h b/mingw-w64-headers/include/mfidl.h index 19be78b..9ed0eb1 100644 --- a/mingw-w64-headers/include/mfidl.h +++ b/mingw-w64-headers/include/mfidl.h
@@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 1.5.22 from include/mfidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 1.5.24 from include/mfidl.idl - Do not edit ***/ #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 @@ -1454,6 +1454,14 @@ WCHAR wszName[MAX_PATH]; } MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO; EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a); +typedef enum _MF_CONNECT_METHOD { + MF_CONNECT_DIRECT = 0x0, + MF_CONNECT_ALLOW_CONVERTER = 0x1, + MF_CONNECT_ALLOW_DECODER = 0x3, + MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x4, + MF_CONNECT_AS_OPTIONAL = 0x10000, + MF_CONNECT_AS_OPTIONAL_BRANCH = 0x20000 +} MF_CONNECT_METHOD; /***************************************************************************** * IMFMediaSession interface */
diff --git a/mingw-w64-headers/include/mfidl.idl b/mingw-w64-headers/include/mfidl.idl index f435b50..9c3a2fc 100644 --- a/mingw-w64-headers/include/mfidl.idl +++ b/mingw-w64-headers/include/mfidl.idl
@@ -132,6 +132,15 @@ cpp_quote("EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a);") +typedef enum _MF_CONNECT_METHOD { + MF_CONNECT_DIRECT = 0x00000000, + MF_CONNECT_ALLOW_CONVERTER = 0x00000001, + MF_CONNECT_ALLOW_DECODER = 0x00000003, + MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x00000004, + MF_CONNECT_AS_OPTIONAL = 0x00010000, + MF_CONNECT_AS_OPTIONAL_BRANCH = 0x00020000 +} MF_CONNECT_METHOD; + [ object, uuid(90377834-21d0-4dee-8214-ba2e3e6c1127),
diff --git a/mingw-w64-headers/include/mfobjects.h b/mingw-w64-headers/include/mfobjects.h index d3cf429..2b5c576 100644 --- a/mingw-w64-headers/include/mfobjects.h +++ b/mingw-w64-headers/include/mfobjects.h
@@ -87,6 +87,11 @@ typedef interface IMFCollection IMFCollection; #endif +#ifndef __IMFPluginControl_FWD_DEFINED__ +#define __IMFPluginControl_FWD_DEFINED__ +typedef interface IMFPluginControl IMFPluginControl; +#endif + /* Headers for imported files */ #include <unknwn.h> @@ -2304,6 +2309,10 @@ #endif /* __IMFMediaType_INTERFACE_DEFINED__ */ +#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001 +#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002 +#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004 +#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008 /***************************************************************************** * IMFAudioMediaType interface */ @@ -2711,6 +2720,28 @@ GUID guidMajorType; GUID guidSubtype; } MFT_REGISTER_TYPE_INFO; +typedef enum _MFVideoFlags { + MFVideoFlag_PAD_TO_Mask = 0x1 | 0x2, + MFVideoFlag_PAD_TO_None = 0 * 0x1, + MFVideoFlag_PAD_TO_4x3 = 1 * 0x1, + MFVideoFlag_PAD_TO_16x9 = 2 * 0x1, + MFVideoFlag_SrcContentHintMask = (0x4 | 0x8) | 0x10, + MFVideoFlag_SrcContentHintNone = 0 * 0x4, + MFVideoFlag_SrcContentHint16x9 = 1 * 0x4, + MFVideoFlag_SrcContentHint235_1 = 2 * 0x4, + MFVideoFlag_AnalogProtected = 0x20, + MFVideoFlag_DigitallyProtected = 0x40, + MFVideoFlag_ProgressiveContent = 0x80, + MFVideoFlag_FieldRepeatCountMask = (0x100 | 0x200) | 0x400, + MFVideoFlag_FieldRepeatCountShift = 8, + MFVideoFlag_ProgressiveSeqReset = 0x800, + MFVideoFlag_PanScanEnabled = 0x20000, + MFVideoFlag_LowerFieldFirst = 0x40000, + MFVideoFlag_BottomUpLinearRep = 0x80000, + MFVideoFlags_DXVASurface = 0x100000, + MFVideoFlags_RenderTargetSurface = 0x400000, + MFVideoFlags_ForceQWORD = 0x7fffffff +} MFVideoFlags; typedef struct _MFRatio { DWORD Numerator; DWORD Denominator; @@ -2853,6 +2884,18 @@ MFVideoCompressedInfo compressedInfo; MFVideoSurfaceInfo surfaceInfo; } MFVIDEOFORMAT; +typedef enum _MFStandardVideoFormat { + MFStdVideoFormat_reserved = 0, + MFStdVideoFormat_NTSC = 1, + MFStdVideoFormat_PAL = 2, + MFStdVideoFormat_DVD_NTSC = 3, + MFStdVideoFormat_DVD_PAL = 4, + MFStdVideoFormat_DV_PAL = 5, + MFStdVideoFormat_DV_NTSC = 6, + MFStdVideoFormat_ATSC_SD480i = 7, + MFStdVideoFormat_ATSC_HD1080i = 8, + MFStdVideoFormat_ATSC_HD720p = 9 +} MFStandardVideoFormat; /***************************************************************************** * IMFVideoMediaType interface */ @@ -4549,6 +4592,38 @@ #endif /* __IMFByteStream_INTERFACE_DEFINED__ */ +#define MFBYTESTREAM_IS_READABLE 0x00000001 +#define MFBYTESTREAM_IS_WRITABLE 0x00000002 +#define MFBYTESTREAM_IS_SEEKABLE 0x00000004 +#define MFBYTESTREAM_IS_REMOTE 0x00000008 +#define MFBYTESTREAM_IS_DIRECTORY 0x00000080 +#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100 +#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200 +#define MFBYTESTREAM_SHARE_WRITE 0x00000400 +#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001 +EXTERN_GUID(MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a); +EXTERN_GUID(MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a); +EXTERN_GUID(MF_BYTESTREAM_DURATION, 0xfc35828a,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a); +EXTERN_GUID(MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a); +EXTERN_GUID(MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a); +EXTERN_GUID(MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a); +typedef enum MF_FILE_ACCESSMODE { + MF_ACCESSMODE_READ = 1, + MF_ACCESSMODE_WRITE = 2, + MF_ACCESSMODE_READWRITE = 3 +} MF_FILE_ACCESSMODE; +typedef enum __WIDL_mmreg_h_generated_name_00000002 { + MF_OPENMODE_FAIL_IF_NOT_EXIST = 0, + MF_OPENMODE_FAIL_IF_EXIST = 1, + MF_OPENMODE_RESET_IF_EXIST = 2, + MF_OPENMODE_APPEND_IF_EXIST = 3, + MF_OPENMODE_DELETE_IF_EXIST = 4 +} MF_FILE_OPENMODE; +typedef enum __WIDL_mmreg_h_generated_name_00000003 { + MF_FILEFLAGS_NONE = 0x0, + MF_FILEFLAGS_NOBUFFERING = 0x1, + MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x2 +} MF_FILE_FLAGS; /***************************************************************************** * IMFCollection interface */ @@ -4735,93 +4810,225 @@ #endif /* __IMFCollection_INTERFACE_DEFINED__ */ -typedef enum _MF_CONNECT_METHOD { - MF_CONNECT_DIRECT = 0x00000000, - MF_CONNECT_ALLOW_CONVERTER = 0x00000001, - MF_CONNECT_ALLOW_DECODER = 0x00000003, - MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x00000004, - MF_CONNECT_AS_OPTIONAL = 0x00010000, - MF_CONNECT_AS_OPTIONAL_BRANCH = 0x00020000 -} MF_CONNECT_METHOD; - -typedef enum MF_FILE_ACCESSMODE { - MF_ACCESSMODE_READ = 1, - MF_ACCESSMODE_WRITE = 2, - MF_ACCESSMODE_READWRITE = 3 -} MF_FILE_ACCESSMODE; - -typedef enum { - MF_FILEFLAGS_NONE = 0x00000000, - MF_FILEFLAGS_NOBUFFERING = 0x00000001, - MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002 -} MF_FILE_FLAGS; - -typedef enum { - MF_OPENMODE_FAIL_IF_NOT_EXIST = 0, - MF_OPENMODE_FAIL_IF_EXIST = 1, - MF_OPENMODE_RESET_IF_EXIST = 2, - MF_OPENMODE_APPEND_IF_EXIST = 3, - MF_OPENMODE_DELETE_IF_EXIST = 4 -} MF_FILE_OPENMODE; - -#if (_WIN32_WINNT >= 0x0601) - typedef enum _MF_Plugin_Type { - MF_Plugin_Type_MFT = 0, - MF_Plugin_Type_MediaSource = 1 + MF_Plugin_Type_MFT = 0, + MF_Plugin_Type_MediaSource = 1 } MF_Plugin_Type; +/***************************************************************************** + * IMFPluginControl interface + */ +#ifndef __IMFPluginControl_INTERFACE_DEFINED__ +#define __IMFPluginControl_INTERFACE_DEFINED__ -#endif /*(_WIN32_WINNT >= 0x0601)*/ +DEFINE_GUID(IID_IMFPluginControl, 0x5c6c44bf, 0x1db6, 0x435b, 0x92,0x49, 0xe8,0xcd,0x10,0xfd,0xec,0x96); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5c6c44bf-1db6-435b-9249-e8cd10fdec96") +IMFPluginControl : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetPreferredClsid( + DWORD pluginType, + LPCWSTR selector, + CLSID *clsid) = 0; -typedef enum _MFStandardVideoFormat { - MFStdVideoFormat_reserved = 0, - MFStdVideoFormat_NTSC, - MFStdVideoFormat_PAL, - MFStdVideoFormat_DVD_NTSC, - MFStdVideoFormat_DVD_PAL, - MFStdVideoFormat_DV_PAL, - MFStdVideoFormat_DV_NTSC, - MFStdVideoFormat_ATSC_SD480i, - MFStdVideoFormat_ATSC_HD1080i, - MFStdVideoFormat_ATSC_HD720p -} MFStandardVideoFormat; + virtual HRESULT STDMETHODCALLTYPE GetPreferredClsidByIndex( + DWORD pluginType, + DWORD index, + LPWSTR *selector, + CLSID *clsid) = 0; -typedef enum _MFVideoFlags { - MFVideoFlag_PAD_TO_Mask = 0x0001 | 0x0002, - MFVideoFlag_PAD_TO_None = 0 * 0x0001, - MFVideoFlag_PAD_TO_4x3 = 1 * 0x0001, - MFVideoFlag_PAD_TO_16x9 = 2 * 0x0001, - MFVideoFlag_SrcContentHintMask = 0x0004 | 0x0008 | 0x0010, - MFVideoFlag_SrcContentHintNone = 0 * 0x0004, - MFVideoFlag_SrcContentHint16x9 = 1 * 0x0004, - MFVideoFlag_SrcContentHint235_1 = 2 * 0x0004, - MFVideoFlag_AnalogProtected = 0x0020, - MFVideoFlag_DigitallyProtected = 0x0040, - MFVideoFlag_ProgressiveContent = 0x0080, - MFVideoFlag_FieldRepeatCountMask = 0x0100 | 0x0200 | 0x0400, - MFVideoFlag_FieldRepeatCountShift = 8, - MFVideoFlag_ProgressiveSeqReset = 0x0800, - MFVideoFlag_PanScanEnabled = 0x20000, - MFVideoFlag_LowerFieldFirst = 0x40000, - MFVideoFlag_BottomUpLinearRep = 0x80000, - MFVideoFlags_DXVASurface = 0x100000, - MFVideoFlags_RenderTargetSurface = 0x400000, - MFVideoFlags_ForceQWORD = 0x7FFFFFFF -} MFVideoFlags; + virtual HRESULT STDMETHODCALLTYPE SetPreferredClsid( + DWORD pluginType, + LPCWSTR selector, + const CLSID *clsid) = 0; -#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001 -#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002 -#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004 -#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008 + virtual HRESULT STDMETHODCALLTYPE IsDisabled( + DWORD pluginType, + REFCLSID clsid) = 0; -#define MFBYTESTREAM_IS_READABLE 0x00000001 -#define MFBYTESTREAM_IS_WRITABLE 0x00000002 -#define MFBYTESTREAM_IS_SEEKABLE 0x00000004 -#define MFBYTESTREAM_IS_REMOTE 0x00000008 -#define MFBYTESTREAM_IS_DIRECTORY 0x00000080 -#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100 -#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200 -#define MFBYTESTREAM_SHARE_WRITE 0x00000400 + virtual HRESULT STDMETHODCALLTYPE GetDisabledByIndex( + DWORD pluginType, + DWORD index, + CLSID *clsid) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDisabled( + DWORD pluginType, + REFCLSID clsid, + WINBOOL disabled) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFPluginControl, 0x5c6c44bf, 0x1db6, 0x435b, 0x92,0x49, 0xe8,0xcd,0x10,0xfd,0xec,0x96) +#endif +#else +typedef struct IMFPluginControlVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFPluginControl* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFPluginControl* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFPluginControl* This); + + /*** IMFPluginControl methods ***/ + HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)( + IMFPluginControl* This, + DWORD pluginType, + LPCWSTR selector, + CLSID *clsid); + + HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)( + IMFPluginControl* This, + DWORD pluginType, + DWORD index, + LPWSTR *selector, + CLSID *clsid); + + HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)( + IMFPluginControl* This, + DWORD pluginType, + LPCWSTR selector, + const CLSID *clsid); + + HRESULT (STDMETHODCALLTYPE *IsDisabled)( + IMFPluginControl* This, + DWORD pluginType, + REFCLSID clsid); + + HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)( + IMFPluginControl* This, + DWORD pluginType, + DWORD index, + CLSID *clsid); + + HRESULT (STDMETHODCALLTYPE *SetDisabled)( + IMFPluginControl* This, + DWORD pluginType, + REFCLSID clsid, + WINBOOL disabled); + + END_INTERFACE +} IMFPluginControlVtbl; +interface IMFPluginControl { + CONST_VTBL IMFPluginControlVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFPluginControl_Release(This) (This)->lpVtbl->Release(This) +/*** IMFPluginControl methods ***/ +#define IMFPluginControl_GetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid) +#define IMFPluginControl_GetPreferredClsidByIndex(This,pluginType,index,selector,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid) +#define IMFPluginControl_SetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid) +#define IMFPluginControl_IsDisabled(This,pluginType,clsid) (This)->lpVtbl->IsDisabled(This,pluginType,clsid) +#define IMFPluginControl_GetDisabledByIndex(This,pluginType,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid) +#define IMFPluginControl_SetDisabled(This,pluginType,clsid,disabled) (This)->lpVtbl->SetDisabled(This,pluginType,clsid,disabled) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFPluginControl_QueryInterface(IMFPluginControl* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFPluginControl_AddRef(IMFPluginControl* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFPluginControl_Release(IMFPluginControl* This) { + return This->lpVtbl->Release(This); +} +/*** IMFPluginControl methods ***/ +static FORCEINLINE HRESULT IMFPluginControl_GetPreferredClsid(IMFPluginControl* This,DWORD pluginType,LPCWSTR selector,CLSID *clsid) { + return This->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid); +} +static FORCEINLINE HRESULT IMFPluginControl_GetPreferredClsidByIndex(IMFPluginControl* This,DWORD pluginType,DWORD index,LPWSTR *selector,CLSID *clsid) { + return This->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid); +} +static FORCEINLINE HRESULT IMFPluginControl_SetPreferredClsid(IMFPluginControl* This,DWORD pluginType,LPCWSTR selector,const CLSID *clsid) { + return This->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid); +} +static FORCEINLINE HRESULT IMFPluginControl_IsDisabled(IMFPluginControl* This,DWORD pluginType,REFCLSID clsid) { + return This->lpVtbl->IsDisabled(This,pluginType,clsid); +} +static FORCEINLINE HRESULT IMFPluginControl_GetDisabledByIndex(IMFPluginControl* This,DWORD pluginType,DWORD index,CLSID *clsid) { + return This->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid); +} +static FORCEINLINE HRESULT IMFPluginControl_SetDisabled(IMFPluginControl* This,DWORD pluginType,REFCLSID clsid,WINBOOL disabled) { + return This->lpVtbl->SetDisabled(This,pluginType,clsid,disabled); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFPluginControl_GetPreferredClsid_Proxy( + IMFPluginControl* This, + DWORD pluginType, + LPCWSTR selector, + CLSID *clsid); +void __RPC_STUB IMFPluginControl_GetPreferredClsid_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFPluginControl_GetPreferredClsidByIndex_Proxy( + IMFPluginControl* This, + DWORD pluginType, + DWORD index, + LPWSTR *selector, + CLSID *clsid); +void __RPC_STUB IMFPluginControl_GetPreferredClsidByIndex_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFPluginControl_SetPreferredClsid_Proxy( + IMFPluginControl* This, + DWORD pluginType, + LPCWSTR selector, + const CLSID *clsid); +void __RPC_STUB IMFPluginControl_SetPreferredClsid_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFPluginControl_IsDisabled_Proxy( + IMFPluginControl* This, + DWORD pluginType, + REFCLSID clsid); +void __RPC_STUB IMFPluginControl_IsDisabled_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFPluginControl_GetDisabledByIndex_Proxy( + IMFPluginControl* This, + DWORD pluginType, + DWORD index, + CLSID *clsid); +void __RPC_STUB IMFPluginControl_GetDisabledByIndex_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFPluginControl_SetDisabled_Proxy( + IMFPluginControl* This, + DWORD pluginType, + REFCLSID clsid, + WINBOOL disabled); +void __RPC_STUB IMFPluginControl_SetDisabled_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFPluginControl_INTERFACE_DEFINED__ */ + /* Begin additional prototypes for all interfaces */ ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
diff --git a/mingw-w64-headers/include/mfobjects.idl b/mingw-w64-headers/include/mfobjects.idl index 767f46f..a9d744e 100644 --- a/mingw-w64-headers/include/mfobjects.idl +++ b/mingw-w64-headers/include/mfobjects.idl
@@ -143,6 +143,11 @@ HRESULT FreeRepresentation([in] GUID guidRepresentation, [in] LPVOID pvRepresentation); } +cpp_quote("#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001") +cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002") +cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004") +cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008") + [ object, uuid(26a0adc3-ce26-4672-9304-69552edd3faf), @@ -158,6 +163,29 @@ GUID guidSubtype; } MFT_REGISTER_TYPE_INFO; +typedef enum _MFVideoFlags { + MFVideoFlag_PAD_TO_Mask = 0x0001 | 0x0002, + MFVideoFlag_PAD_TO_None = 0 * 0x0001, + MFVideoFlag_PAD_TO_4x3 = 1 * 0x0001, + MFVideoFlag_PAD_TO_16x9 = 2 * 0x0001, + MFVideoFlag_SrcContentHintMask = 0x0004 | 0x0008 | 0x0010, + MFVideoFlag_SrcContentHintNone = 0 * 0x0004, + MFVideoFlag_SrcContentHint16x9 = 1 * 0x0004, + MFVideoFlag_SrcContentHint235_1 = 2 * 0x0004, + MFVideoFlag_AnalogProtected = 0x0020, + MFVideoFlag_DigitallyProtected = 0x0040, + MFVideoFlag_ProgressiveContent = 0x0080, + MFVideoFlag_FieldRepeatCountMask = 0x0100 | 0x0200 | 0x0400, + MFVideoFlag_FieldRepeatCountShift = 8, + MFVideoFlag_ProgressiveSeqReset = 0x0800, + MFVideoFlag_PanScanEnabled = 0x20000, + MFVideoFlag_LowerFieldFirst = 0x40000, + MFVideoFlag_BottomUpLinearRep = 0x80000, + MFVideoFlags_DXVASurface = 0x100000, + MFVideoFlags_RenderTargetSurface = 0x400000, + MFVideoFlags_ForceQWORD = 0x7FFFFFFF +} MFVideoFlags; + typedef struct _MFRatio { DWORD Numerator; DWORD Denominator; @@ -325,6 +353,19 @@ MFVideoSurfaceInfo surfaceInfo; } MFVIDEOFORMAT; +typedef enum _MFStandardVideoFormat { + MFStdVideoFormat_reserved = 0, + MFStdVideoFormat_NTSC, + MFStdVideoFormat_PAL, + MFStdVideoFormat_DVD_NTSC, + MFStdVideoFormat_DVD_PAL, + MFStdVideoFormat_DV_PAL, + MFStdVideoFormat_DV_NTSC, + MFStdVideoFormat_ATSC_SD480i, + MFStdVideoFormat_ATSC_HD1080i, + MFStdVideoFormat_ATSC_HD720p +} MFStandardVideoFormat; + [ object, uuid(b99f381f-a8f9-47a2-a5af-ca3a225a3890), @@ -446,6 +487,44 @@ HRESULT Close(); } +cpp_quote("#define MFBYTESTREAM_IS_READABLE 0x00000001") +cpp_quote("#define MFBYTESTREAM_IS_WRITABLE 0x00000002") +cpp_quote("#define MFBYTESTREAM_IS_SEEKABLE 0x00000004") +cpp_quote("#define MFBYTESTREAM_IS_REMOTE 0x00000008") +cpp_quote("#define MFBYTESTREAM_IS_DIRECTORY 0x00000080") +cpp_quote("#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100") +cpp_quote("#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200") +cpp_quote("#define MFBYTESTREAM_SHARE_WRITE 0x00000400") + +cpp_quote("#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001") + +cpp_quote("EXTERN_GUID(MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);") +cpp_quote("EXTERN_GUID(MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);") +cpp_quote("EXTERN_GUID(MF_BYTESTREAM_DURATION, 0xfc35828a,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);") +cpp_quote("EXTERN_GUID(MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);") +cpp_quote("EXTERN_GUID(MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);") +cpp_quote("EXTERN_GUID(MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);") + +typedef enum MF_FILE_ACCESSMODE { + MF_ACCESSMODE_READ = 1, + MF_ACCESSMODE_WRITE = 2, + MF_ACCESSMODE_READWRITE = 3 +} MF_FILE_ACCESSMODE; + +typedef enum { + MF_OPENMODE_FAIL_IF_NOT_EXIST = 0, + MF_OPENMODE_FAIL_IF_EXIST = 1, + MF_OPENMODE_RESET_IF_EXIST = 2, + MF_OPENMODE_APPEND_IF_EXIST = 3, + MF_OPENMODE_DELETE_IF_EXIST = 4 +} MF_FILE_OPENMODE; + +typedef enum { + MF_FILEFLAGS_NONE = 0x00000000, + MF_FILEFLAGS_NOBUFFERING = 0x00000001, + MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002 +} MF_FILE_FLAGS; + [ object, uuid(5bc8a76b-869a-46a3-9b03-fa218a66aebe) @@ -460,90 +539,23 @@ HRESULT RemoveAllElements(); } -cpp_quote("typedef enum _MF_CONNECT_METHOD {") -cpp_quote(" MF_CONNECT_DIRECT = 0x00000000,") -cpp_quote(" MF_CONNECT_ALLOW_CONVERTER = 0x00000001,") -cpp_quote(" MF_CONNECT_ALLOW_DECODER = 0x00000003,") -cpp_quote(" MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES = 0x00000004,") -cpp_quote(" MF_CONNECT_AS_OPTIONAL = 0x00010000,") -cpp_quote(" MF_CONNECT_AS_OPTIONAL_BRANCH = 0x00020000 ") -cpp_quote("} MF_CONNECT_METHOD;") -cpp_quote("") -cpp_quote("typedef enum MF_FILE_ACCESSMODE {") -cpp_quote(" MF_ACCESSMODE_READ = 1,") -cpp_quote(" MF_ACCESSMODE_WRITE = 2,") -cpp_quote(" MF_ACCESSMODE_READWRITE = 3 ") -cpp_quote("} MF_FILE_ACCESSMODE;") -cpp_quote("") -cpp_quote("typedef enum {") -cpp_quote(" MF_FILEFLAGS_NONE = 0x00000000,") -cpp_quote(" MF_FILEFLAGS_NOBUFFERING = 0x00000001,") -cpp_quote(" MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002 ") -cpp_quote("} MF_FILE_FLAGS;") -cpp_quote("") -cpp_quote("typedef enum {") -cpp_quote(" MF_OPENMODE_FAIL_IF_NOT_EXIST = 0,") -cpp_quote(" MF_OPENMODE_FAIL_IF_EXIST = 1,") -cpp_quote(" MF_OPENMODE_RESET_IF_EXIST = 2,") -cpp_quote(" MF_OPENMODE_APPEND_IF_EXIST = 3,") -cpp_quote(" MF_OPENMODE_DELETE_IF_EXIST = 4 ") -cpp_quote("} MF_FILE_OPENMODE;") -cpp_quote("") -cpp_quote("#if (_WIN32_WINNT >= 0x0601)") -cpp_quote("") -cpp_quote("typedef enum _MF_Plugin_Type {") -cpp_quote(" MF_Plugin_Type_MFT = 0,") -cpp_quote(" MF_Plugin_Type_MediaSource = 1 ") -cpp_quote("} MF_Plugin_Type;") -cpp_quote("") -cpp_quote("#endif /*(_WIN32_WINNT >= 0x0601)*/") -cpp_quote("") -cpp_quote("typedef enum _MFStandardVideoFormat {") -cpp_quote(" MFStdVideoFormat_reserved = 0,") -cpp_quote(" MFStdVideoFormat_NTSC,") -cpp_quote(" MFStdVideoFormat_PAL,") -cpp_quote(" MFStdVideoFormat_DVD_NTSC,") -cpp_quote(" MFStdVideoFormat_DVD_PAL,") -cpp_quote(" MFStdVideoFormat_DV_PAL,") -cpp_quote(" MFStdVideoFormat_DV_NTSC,") -cpp_quote(" MFStdVideoFormat_ATSC_SD480i,") -cpp_quote(" MFStdVideoFormat_ATSC_HD1080i,") -cpp_quote(" MFStdVideoFormat_ATSC_HD720p ") -cpp_quote("} MFStandardVideoFormat;") -cpp_quote("") -cpp_quote("typedef enum _MFVideoFlags {") -cpp_quote(" MFVideoFlag_PAD_TO_Mask = 0x0001 | 0x0002,") -cpp_quote(" MFVideoFlag_PAD_TO_None = 0 * 0x0001,") -cpp_quote(" MFVideoFlag_PAD_TO_4x3 = 1 * 0x0001,") -cpp_quote(" MFVideoFlag_PAD_TO_16x9 = 2 * 0x0001,") -cpp_quote(" MFVideoFlag_SrcContentHintMask = 0x0004 | 0x0008 | 0x0010,") -cpp_quote(" MFVideoFlag_SrcContentHintNone = 0 * 0x0004,") -cpp_quote(" MFVideoFlag_SrcContentHint16x9 = 1 * 0x0004,") -cpp_quote(" MFVideoFlag_SrcContentHint235_1 = 2 * 0x0004,") -cpp_quote(" MFVideoFlag_AnalogProtected = 0x0020,") -cpp_quote(" MFVideoFlag_DigitallyProtected = 0x0040,") -cpp_quote(" MFVideoFlag_ProgressiveContent = 0x0080,") -cpp_quote(" MFVideoFlag_FieldRepeatCountMask = 0x0100 | 0x0200 | 0x0400,") -cpp_quote(" MFVideoFlag_FieldRepeatCountShift = 8,") -cpp_quote(" MFVideoFlag_ProgressiveSeqReset = 0x0800,") -cpp_quote(" MFVideoFlag_PanScanEnabled = 0x20000,") -cpp_quote(" MFVideoFlag_LowerFieldFirst = 0x40000,") -cpp_quote(" MFVideoFlag_BottomUpLinearRep = 0x80000,") -cpp_quote(" MFVideoFlags_DXVASurface = 0x100000,") -cpp_quote(" MFVideoFlags_RenderTargetSurface = 0x400000,") -cpp_quote(" MFVideoFlags_ForceQWORD = 0x7FFFFFFF ") -cpp_quote("} MFVideoFlags;") -cpp_quote("") -cpp_quote("#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001") -cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002") -cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004") -cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008") -cpp_quote("") -cpp_quote("#define MFBYTESTREAM_IS_READABLE 0x00000001") -cpp_quote("#define MFBYTESTREAM_IS_WRITABLE 0x00000002") -cpp_quote("#define MFBYTESTREAM_IS_SEEKABLE 0x00000004") -cpp_quote("#define MFBYTESTREAM_IS_REMOTE 0x00000008") -cpp_quote("#define MFBYTESTREAM_IS_DIRECTORY 0x00000080") -cpp_quote("#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100") -cpp_quote("#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200") -cpp_quote("#define MFBYTESTREAM_SHARE_WRITE 0x00000400") +typedef enum _MF_Plugin_Type { + MF_Plugin_Type_MFT = 0, + MF_Plugin_Type_MediaSource = 1 +} MF_Plugin_Type; + +[ + object, + local, + uuid(5c6c44bf-1db6-435b-9249-e8cd10fdec96), + pointer_default(unique) +] +interface IMFPluginControl : IUnknown +{ + HRESULT GetPreferredClsid(DWORD pluginType, LPCWSTR selector, CLSID *clsid); + HRESULT GetPreferredClsidByIndex(DWORD pluginType, DWORD index, LPWSTR *selector, CLSID *clsid); + HRESULT SetPreferredClsid(DWORD pluginType, LPCWSTR selector, const CLSID *clsid); + HRESULT IsDisabled(DWORD pluginType, REFCLSID clsid); + HRESULT GetDisabledByIndex(DWORD pluginType, DWORD index, CLSID *clsid); + HRESULT SetDisabled(DWORD pluginType, REFCLSID clsid, BOOL disabled); +}
diff --git a/mingw-w64-headers/include/mfplay.h b/mingw-w64-headers/include/mfplay.h index 0263a5f..89680d9 100644 --- a/mingw-w64-headers/include/mfplay.h +++ b/mingw-w64-headers/include/mfplay.h
@@ -32,17 +32,6 @@ MFP_CREDENTIAL_LOGGED_ON_USER = 0x00000020 } _MFP_CREDENTIAL_FLAGS; -enum _MFT_ENUM_FLAG { - MFT_ENUM_FLAG_SYNCMFT = 0x00000001, - MFT_ENUM_FLAG_ASYNCMFT = 0x00000002, - MFT_ENUM_FLAG_HARDWARE = 0x00000004, - MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008, - MFT_ENUM_FLAG_LOCALMFT = 0x00000010, - MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020, - MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040, - MFT_ENUM_FLAG_ALL = 0x0000003F -}; - typedef enum MFP_EVENT_TYPE { MFP_EVENT_TYPE_PLAY = 0, MFP_EVENT_TYPE_PAUSE = 1,
diff --git a/mingw-w64-headers/include/mfreadwrite.h b/mingw-w64-headers/include/mfreadwrite.h index 14445aa..5ca6a77 100644 --- a/mingw-w64-headers/include/mfreadwrite.h +++ b/mingw-w64-headers/include/mfreadwrite.h
@@ -27,6 +27,11 @@ typedef interface IMFSinkWriter IMFSinkWriter; #endif +#ifndef __IMFSourceReaderCallback_FWD_DEFINED__ +#define __IMFSourceReaderCallback_FWD_DEFINED__ +typedef interface IMFSourceReaderCallback IMFSourceReaderCallback; +#endif + /* Headers for imported files */ #include <mfobjects.h> @@ -35,6 +40,13 @@ extern "C" { #endif +EXTERN_GUID(MF_SOURCE_READER_ASYNC_CALLBACK, 0x1e3dbeac,0xbb43,0x4c35,0xb5,0x07,0xcd,0x64,0x44,0x64,0xc9,0x65); +EXTERN_GUID(MF_SOURCE_READER_D3D_MANAGER, 0xec822da2,0xe1e9,0x4b29,0xa0,0xd8,0x56,0x3c,0x71,0x9f,0x52,0x69); +EXTERN_GUID(MF_SOURCE_READER_DISABLE_DXVA, 0xaa456cfd,0x3943,0x4a1e,0xa7,0x7d,0x18,0x38,0xc0,0xea,0x2e,0x35); +EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CONFIG, 0x9085abeb,0x0354,0x48f9,0xab,0xb5,0x20,0x0d,0xf8,0x38,0xc6,0x8e); +EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS, 0x6d23f5c8,0xc5d7,0x4a9b,0x99,0x71,0x5d,0x11,0xf8,0xbc,0xa8,0x80); +EXTERN_GUID(MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING, 0xfb394f3d,0xccf1,0x42ee,0xbb,0xb3,0xf9,0xb8,0x45,0xd5,0x68,0x1d); +EXTERN_GUID(MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN, 0x56b67165,0x219e,0x456d,0xa2,0x2e,0x2d,0x30,0x04,0xc7,0xfe,0x56); typedef enum MF_SOURCE_READER_FLAG { MF_SOURCE_READERF_ERROR = 0x1, MF_SOURCE_READERF_ENDOFSTREAM = 0x2, @@ -679,7 +691,143 @@ #endif /* __IMFSinkWriter_INTERFACE_DEFINED__ */ -EXTERN_GUID( MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS, 0x6d23f5c8,0xc5d7,0x4a9b,0x99,0x71,0x5d,0x11,0xf8,0xbc,0xa8,0x80); +/***************************************************************************** + * IMFSourceReaderCallback interface + */ +#ifndef __IMFSourceReaderCallback_INTERFACE_DEFINED__ +#define __IMFSourceReaderCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("deec8d99-fa1d-4d82-84c2-2c8969944867") +IMFSourceReaderCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnReadSample( + HRESULT hrStatus, + DWORD dwStreamIndex, + DWORD dwStreamFlags, + LONGLONG llTimestamp, + IMFSample *pSample) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnFlush( + DWORD dwStreamIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnEvent( + DWORD dwStreamIndex, + IMFMediaEvent *pEvent) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67) +#endif +#else +typedef struct IMFSourceReaderCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFSourceReaderCallback* This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFSourceReaderCallback* This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFSourceReaderCallback* This); + + /*** IMFSourceReaderCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnReadSample)( + IMFSourceReaderCallback* This, + HRESULT hrStatus, + DWORD dwStreamIndex, + DWORD dwStreamFlags, + LONGLONG llTimestamp, + IMFSample *pSample); + + HRESULT (STDMETHODCALLTYPE *OnFlush)( + IMFSourceReaderCallback* This, + DWORD dwStreamIndex); + + HRESULT (STDMETHODCALLTYPE *OnEvent)( + IMFSourceReaderCallback* This, + DWORD dwStreamIndex, + IMFMediaEvent *pEvent); + + END_INTERFACE +} IMFSourceReaderCallbackVtbl; +interface IMFSourceReaderCallback { + CONST_VTBL IMFSourceReaderCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFSourceReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFSourceReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFSourceReaderCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IMFSourceReaderCallback methods ***/ +#define IMFSourceReaderCallback_OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample) (This)->lpVtbl->OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample) +#define IMFSourceReaderCallback_OnFlush(This,dwStreamIndex) (This)->lpVtbl->OnFlush(This,dwStreamIndex) +#define IMFSourceReaderCallback_OnEvent(This,dwStreamIndex,pEvent) (This)->lpVtbl->OnEvent(This,dwStreamIndex,pEvent) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFSourceReaderCallback_QueryInterface(IMFSourceReaderCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFSourceReaderCallback_AddRef(IMFSourceReaderCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFSourceReaderCallback_Release(IMFSourceReaderCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IMFSourceReaderCallback methods ***/ +static FORCEINLINE HRESULT IMFSourceReaderCallback_OnReadSample(IMFSourceReaderCallback* This,HRESULT hrStatus,DWORD dwStreamIndex,DWORD dwStreamFlags,LONGLONG llTimestamp,IMFSample *pSample) { + return This->lpVtbl->OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample); +} +static FORCEINLINE HRESULT IMFSourceReaderCallback_OnFlush(IMFSourceReaderCallback* This,DWORD dwStreamIndex) { + return This->lpVtbl->OnFlush(This,dwStreamIndex); +} +static FORCEINLINE HRESULT IMFSourceReaderCallback_OnEvent(IMFSourceReaderCallback* This,DWORD dwStreamIndex,IMFMediaEvent *pEvent) { + return This->lpVtbl->OnEvent(This,dwStreamIndex,pEvent); +} +#endif +#endif + +#endif + +HRESULT STDMETHODCALLTYPE IMFSourceReaderCallback_OnReadSample_Proxy( + IMFSourceReaderCallback* This, + HRESULT hrStatus, + DWORD dwStreamIndex, + DWORD dwStreamFlags, + LONGLONG llTimestamp, + IMFSample *pSample); +void __RPC_STUB IMFSourceReaderCallback_OnReadSample_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFSourceReaderCallback_OnFlush_Proxy( + IMFSourceReaderCallback* This, + DWORD dwStreamIndex); +void __RPC_STUB IMFSourceReaderCallback_OnFlush_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); +HRESULT STDMETHODCALLTYPE IMFSourceReaderCallback_OnEvent_Proxy( + IMFSourceReaderCallback* This, + DWORD dwStreamIndex, + IMFMediaEvent *pEvent); +void __RPC_STUB IMFSourceReaderCallback_OnEvent_Stub( + IRpcStubBuffer* This, + IRpcChannelBuffer* pRpcChannelBuffer, + PRPC_MESSAGE pRpcMessage, + DWORD* pdwStubPhase); + +#endif /* __IMFSourceReaderCallback_INTERFACE_DEFINED__ */ + HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *pMediaSink,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter); HRESULT WINAPI MFCreateSinkWriterFromURL(LPCWSTR pwszOutputURL,IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter); HRESULT WINAPI MFCreateSourceReaderFromByteStream(IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
diff --git a/mingw-w64-headers/include/mfreadwrite.idl b/mingw-w64-headers/include/mfreadwrite.idl index 0d91790..163178a 100644 --- a/mingw-w64-headers/include/mfreadwrite.idl +++ b/mingw-w64-headers/include/mfreadwrite.idl
@@ -6,6 +6,14 @@ import "mfobjects.idl"; +cpp_quote("EXTERN_GUID(MF_SOURCE_READER_ASYNC_CALLBACK, 0x1e3dbeac,0xbb43,0x4c35,0xb5,0x07,0xcd,0x64,0x44,0x64,0xc9,0x65);") +cpp_quote("EXTERN_GUID(MF_SOURCE_READER_D3D_MANAGER, 0xec822da2,0xe1e9,0x4b29,0xa0,0xd8,0x56,0x3c,0x71,0x9f,0x52,0x69);") +cpp_quote("EXTERN_GUID(MF_SOURCE_READER_DISABLE_DXVA, 0xaa456cfd,0x3943,0x4a1e,0xa7,0x7d,0x18,0x38,0xc0,0xea,0x2e,0x35);") +cpp_quote("EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CONFIG, 0x9085abeb,0x0354,0x48f9,0xab,0xb5,0x20,0x0d,0xf8,0x38,0xc6,0x8e);") +cpp_quote("EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS, 0x6d23f5c8,0xc5d7,0x4a9b,0x99,0x71,0x5d,0x11,0xf8,0xbc,0xa8,0x80);") +cpp_quote("EXTERN_GUID(MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING, 0xfb394f3d,0xccf1,0x42ee,0xbb,0xb3,0xf9,0xb8,0x45,0xd5,0x68,0x1d);" ) +cpp_quote("EXTERN_GUID(MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN, 0x56b67165,0x219e,0x456d,0xa2,0x2e,0x2d,0x30,0x04,0xc7,0xfe,0x56);" ) + typedef [v1_enum] enum MF_SOURCE_READER_FLAG { MF_SOURCE_READERF_ERROR = 0x00000001, MF_SOURCE_READERF_ENDOFSTREAM = 0x00000002, @@ -85,7 +93,18 @@ HRESULT GetStatistics([in] DWORD dwStreamIndex, [out] MF_SINK_WRITER_STATISTICS *pStats); } -cpp_quote("EXTERN_GUID( MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS, 0x6d23f5c8,0xc5d7,0x4a9b,0x99,0x71,0x5d,0x11,0xf8,0xbc,0xa8,0x80);") +[ + object, + uuid(deec8d99-fa1d-4d82-84c2-2c8969944867), + local +] +interface IMFSourceReaderCallback : IUnknown +{ + HRESULT OnReadSample([in] HRESULT hrStatus, [in] DWORD dwStreamIndex, [in] DWORD dwStreamFlags, + [in] LONGLONG llTimestamp, [in] IMFSample *pSample); + HRESULT OnFlush([in] DWORD dwStreamIndex); + HRESULT OnEvent([in] DWORD dwStreamIndex, [in] IMFMediaEvent *pEvent); +} cpp_quote("HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *pMediaSink,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter);") cpp_quote("HRESULT WINAPI MFCreateSinkWriterFromURL(LPCWSTR pwszOutputURL,IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter);")
diff --git a/mingw-w64-headers/include/mftransform.h b/mingw-w64-headers/include/mftransform.h index 85f1d81..08ebd83 100644 --- a/mingw-w64-headers/include/mftransform.h +++ b/mingw-w64-headers/include/mftransform.h
@@ -15,19 +15,6 @@ MFT_DRAIN_NO_TAILS = 0x00000001 }; -#if (_WIN32_WINNT >= 0x0601) - enum _MFT_ENUM_FLAG { - MFT_ENUM_FLAG_SYNCMFT = 0x00000001, - MFT_ENUM_FLAG_ASYNCMFT = 0x00000002, - MFT_ENUM_FLAG_HARDWARE = 0x00000004, - MFT_ENUM_FLAG_FIELDOFUSE = 0x00000008, - MFT_ENUM_FLAG_LOCALMFT = 0x00000010, - MFT_ENUM_FLAG_TRANSCODE_ONLY = 0x00000020, - MFT_ENUM_FLAG_SORTANDFILTER = 0x00000040, - MFT_ENUM_FLAG_ALL = 0x0000003F -}; -#endif /*(_WIN32_WINNT >= 0x0601)*/ - enum _MFT_INPUT_STATUS_FLAGS { MFT_INPUT_STATUS_ACCEPT_DATA = 0x00000001 };