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
};