зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1852806 - Remove macros for older Windows SDK from dom/media/platforms/wmf/. r=media-playback-reviewers,karlt
Depends on D188021 Differential Revision: https://phabricator.services.mozilla.com/D188022
This commit is contained in:
Родитель
1be02e87d5
Коммит
db45d70072
|
@ -5,15 +5,7 @@
|
|||
#ifndef DOM_MEDIA_PLATFORM_WMF_MFCDMEXTRA_H
|
||||
#define DOM_MEDIA_PLATFORM_WMF_MFCDMEXTRA_H
|
||||
|
||||
// Currently, we build with WINVER=0x601 (Win7), which means the declarations in
|
||||
// mfcontentdecryptionmodule.h will not be visible, which is only available on
|
||||
// Win10 (0x0A00). Also, we don't yet have the Fall Creators Update SDK
|
||||
// available on build machines, so even with updated WINVER, some of the
|
||||
// interfaces we need would not be present. To work around this, until the build
|
||||
// environment is updated, we include copies of the relevant classes/interfaces
|
||||
// we need.
|
||||
#if defined(WINVER) && WINVER >= 0x0A00
|
||||
# include <mfcontentdecryptionmodule.h>
|
||||
#include <mfcontentdecryptionmodule.h>
|
||||
|
||||
// See
|
||||
// https://github.com/microsoft/media-foundation/issues/37#issuecomment-1198317488
|
||||
|
@ -23,300 +15,5 @@ EXTERN_GUID(GUID_ClassName, 0x77631a31, 0xe5e7, 0x4785, 0xbf, 0x17, 0x20, 0xf5,
|
|||
0x7b, 0x22, 0x48, 0x02);
|
||||
EXTERN_GUID(CLSID_EMEStoreActivate, 0x2df7b51e, 0x797b, 0x4d06, 0xbe, 0x71,
|
||||
0xd1, 0x4a, 0x52, 0xcf, 0x84, 0x21);
|
||||
#else
|
||||
// For `IMFCdmSuspendNotify`
|
||||
# include "MFMediaEngineExtra.h"
|
||||
|
||||
typedef enum MF_MEDIAKEYS_REQUIREMENT {
|
||||
MF_MEDIAKEYS_REQUIREMENT_REQUIRED = 1,
|
||||
MF_MEDIAKEYS_REQUIREMENT_OPTIONAL = 2,
|
||||
MF_MEDIAKEYS_REQUIREMENT_NOT_ALLOWED = 3
|
||||
} MF_MEDIAKEYS_REQUIREMENT;
|
||||
|
||||
EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY
|
||||
MF_CONTENTDECRYPTIONMODULE_STOREPATH = {
|
||||
{0x77d993b9,
|
||||
0xba61,
|
||||
0x4bb7,
|
||||
{0x92, 0xc6, 0x18, 0xc8, 0x6a, 0x18, 0x9c, 0x06}},
|
||||
0x02};
|
||||
EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MF_EME_INITDATATYPES = {
|
||||
{0x497d231b,
|
||||
0x4eb9,
|
||||
0x4df0,
|
||||
{0xb4, 0x74, 0xb9, 0xaf, 0xeb, 0x0a, 0xdf, 0x38}},
|
||||
PID_FIRST_USABLE + 0x00000001};
|
||||
EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MF_EME_DISTINCTIVEID = {
|
||||
{0x7dc9c4a5,
|
||||
0x12be,
|
||||
0x497e,
|
||||
{0x8b, 0xff, 0x9b, 0x60, 0xb2, 0xdc, 0x58, 0x45}},
|
||||
PID_FIRST_USABLE + 0x00000002};
|
||||
EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MF_EME_PERSISTEDSTATE = {
|
||||
{0x5d4df6ae,
|
||||
0x9af1,
|
||||
0x4e3d,
|
||||
{0x95, 0x5b, 0x0e, 0x4b, 0xd2, 0x2f, 0xed, 0xf0}},
|
||||
PID_FIRST_USABLE + 0x00000003};
|
||||
EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MF_EME_AUDIOCAPABILITIES = {
|
||||
{0x980fbb84,
|
||||
0x297d,
|
||||
0x4ea7,
|
||||
{0x89, 0x5f, 0xbc, 0xf2, 0x8a, 0x46, 0x28, 0x81}},
|
||||
PID_FIRST_USABLE + 0x00000004};
|
||||
EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MF_EME_VIDEOCAPABILITIES = {
|
||||
{0xb172f83d,
|
||||
0x30dd,
|
||||
0x4c10,
|
||||
{0x80, 0x06, 0xed, 0x53, 0xda, 0x4d, 0x3b, 0xdb}},
|
||||
PID_FIRST_USABLE + 0x00000005};
|
||||
EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MF_EME_ROBUSTNESS = {
|
||||
{0x9d3d2b9e,
|
||||
0x7023,
|
||||
0x4944,
|
||||
{0xa8, 0xf5, 0xec, 0xca, 0x52, 0xa4, 0x69, 0x90}},
|
||||
PID_FIRST_USABLE + 0x00000001};
|
||||
EXTERN_C const DECLSPEC_SELECTANY PROPERTYKEY MF_EME_CONTENTTYPE = {
|
||||
{0x289fb1fc,
|
||||
0xd9c4,
|
||||
0x4cc7,
|
||||
{0xb2, 0xbe, 0x97, 0x2b, 0x0e, 0x9b, 0x28, 0x3a}},
|
||||
PID_FIRST_USABLE + 0x00000002};
|
||||
|
||||
typedef enum MF_MEDIAKEYSESSION_TYPE {
|
||||
MF_MEDIAKEYSESSION_TYPE_TEMPORARY = 0,
|
||||
MF_MEDIAKEYSESSION_TYPE_PERSISTENT_LICENSE =
|
||||
(MF_MEDIAKEYSESSION_TYPE_TEMPORARY + 1),
|
||||
MF_MEDIAKEYSESSION_TYPE_PERSISTENT_RELEASE_MESSAGE =
|
||||
(MF_MEDIAKEYSESSION_TYPE_PERSISTENT_LICENSE + 1),
|
||||
MF_MEDIAKEYSESSION_TYPE_PERSISTENT_USAGE_RECORD =
|
||||
(MF_MEDIAKEYSESSION_TYPE_PERSISTENT_RELEASE_MESSAGE + 1)
|
||||
} MF_MEDIAKEYSESSION_TYPE;
|
||||
|
||||
typedef enum MF_MEDIAKEYSESSION_MESSAGETYPE {
|
||||
MF_MEDIAKEYSESSION_MESSAGETYPE_LICENSE_REQUEST = 0,
|
||||
MF_MEDIAKEYSESSION_MESSAGETYPE_LICENSE_RENEWAL = 1,
|
||||
MF_MEDIAKEYSESSION_MESSAGETYPE_LICENSE_RELEASE = 2,
|
||||
MF_MEDIAKEYSESSION_MESSAGETYPE_INDIVIDUALIZATION_REQUEST = 3
|
||||
} MF_MEDIAKEYSESSION_MESSAGETYPE;
|
||||
|
||||
typedef enum MF_MEDIAKEY_STATUS {
|
||||
MF_MEDIAKEY_STATUS_USABLE = 0,
|
||||
MF_MEDIAKEY_STATUS_EXPIRED = (MF_MEDIAKEY_STATUS_USABLE + 1),
|
||||
MF_MEDIAKEY_STATUS_OUTPUT_DOWNSCALED = (MF_MEDIAKEY_STATUS_EXPIRED + 1),
|
||||
MF_MEDIAKEY_STATUS_OUTPUT_NOT_ALLOWED =
|
||||
(MF_MEDIAKEY_STATUS_OUTPUT_DOWNSCALED + 1),
|
||||
MF_MEDIAKEY_STATUS_STATUS_PENDING =
|
||||
(MF_MEDIAKEY_STATUS_OUTPUT_NOT_ALLOWED + 1),
|
||||
MF_MEDIAKEY_STATUS_INTERNAL_ERROR = (MF_MEDIAKEY_STATUS_STATUS_PENDING + 1),
|
||||
MF_MEDIAKEY_STATUS_RELEASED = (MF_MEDIAKEY_STATUS_INTERNAL_ERROR + 1),
|
||||
MF_MEDIAKEY_STATUS_OUTPUT_RESTRICTED = (MF_MEDIAKEY_STATUS_RELEASED + 1)
|
||||
} MF_MEDIAKEY_STATUS;
|
||||
|
||||
typedef struct MFMediaKeyStatus {
|
||||
BYTE* pbKeyId;
|
||||
UINT cbKeyId;
|
||||
MF_MEDIAKEY_STATUS eMediaKeyStatus;
|
||||
} MFMediaKeyStatus;
|
||||
|
||||
EXTERN_GUID(MF_CONTENTDECRYPTIONMODULE_SERVICE, 0x15320c45, 0xff80, 0x484a,
|
||||
0x9d, 0xcb, 0xd, 0xf8, 0x94, 0xe6, 0x9a, 0x1);
|
||||
EXTERN_GUID(GUID_ObjectStream, 0x3e73735c, 0xe6c0, 0x481d, 0x82, 0x60, 0xee,
|
||||
0x5d, 0xb1, 0x34, 0x3b, 0x5f);
|
||||
EXTERN_GUID(GUID_ClassName, 0x77631a31, 0xe5e7, 0x4785, 0xbf, 0x17, 0x20, 0xf5,
|
||||
0x7b, 0x22, 0x48, 0x02);
|
||||
EXTERN_GUID(CLSID_EMEStoreActivate, 0x2df7b51e, 0x797b, 0x4d06, 0xbe, 0x71,
|
||||
0xd1, 0x4a, 0x52, 0xcf, 0x84, 0x21);
|
||||
|
||||
# ifndef __IMFContentDecryptionModuleSessionCallbacks_INTERFACE_DEFINED__
|
||||
# define __IMFContentDecryptionModuleSessionCallbacks_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFContentDecryptionModuleSessionCallbacks */
|
||||
/* [unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFContentDecryptionModuleSessionCallbacks;
|
||||
|
||||
MIDL_INTERFACE("3f96ee40-ad81-4096-8470-59a4b770f89a")
|
||||
IMFContentDecryptionModuleSessionCallbacks : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE KeyMessage(
|
||||
/* [in] */ MF_MEDIAKEYSESSION_MESSAGETYPE messageType,
|
||||
/* [size_is][in] */
|
||||
__RPC__in_ecount_full(messageSize) const BYTE* message,
|
||||
/* [in] */ DWORD messageSize,
|
||||
/* [optional][in] */ __RPC__in LPCWSTR destinationURL) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE KeyStatusChanged(void) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFContentDecryptionModuleSessionCallbacks_INTERFACE_DEFINED__ \
|
||||
*/
|
||||
|
||||
# ifndef __IMFContentDecryptionModuleSession_INTERFACE_DEFINED__
|
||||
# define __IMFContentDecryptionModuleSession_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFContentDecryptionModuleSession */
|
||||
/* [unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFContentDecryptionModuleSession;
|
||||
|
||||
MIDL_INTERFACE("4e233efd-1dd2-49e8-b577-d63eee4c0d33")
|
||||
IMFContentDecryptionModuleSession : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE GetSessionId(
|
||||
/* [out] */ __RPC__deref_out_opt LPWSTR * sessionId) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetExpiration(
|
||||
/* [out] */ __RPC__out double* expiration) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetKeyStatuses(
|
||||
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(
|
||||
*numKeyStatuses) MFMediaKeyStatus *
|
||||
*keyStatuses,
|
||||
/* [out] */ __RPC__out UINT * numKeyStatuses) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Load(
|
||||
/* [in] */ __RPC__in LPCWSTR sessionId,
|
||||
/* [out] */ __RPC__out BOOL * loaded) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GenerateRequest(
|
||||
/* [in] */ __RPC__in LPCWSTR initDataType,
|
||||
/* [size_is][in] */
|
||||
__RPC__in_ecount_full(initDataSize) const BYTE* initData,
|
||||
/* [in] */ DWORD initDataSize) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Update(
|
||||
/* [size_is][in] */ __RPC__in_ecount_full(responseSize)
|
||||
const BYTE* response,
|
||||
/* [in] */ DWORD responseSize) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Close(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Remove(void) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFContentDecryptionModuleSession_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFPMPHostApp_INTERFACE_DEFINED__
|
||||
# define __IMFPMPHostApp_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFPMPHostApp */
|
||||
/* [uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFPMPHostApp;
|
||||
|
||||
MIDL_INTERFACE("84d2054a-3aa1-4728-a3b0-440a418cf49c")
|
||||
IMFPMPHostApp : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE LockProcess(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE UnlockProcess(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE ActivateClassById(
|
||||
/* [in] */ __RPC__in LPCWSTR id,
|
||||
/* [unique][in] */ __RPC__in_opt IStream * pStream,
|
||||
/* [in] */ __RPC__in REFIID riid,
|
||||
/* [iid_is][out] */ __RPC__deref_out_opt void** ppv) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFPMPHostApp_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFContentDecryptionModule_INTERFACE_DEFINED__
|
||||
# define __IMFContentDecryptionModule_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFContentDecryptionModule */
|
||||
/* [unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFContentDecryptionModule;
|
||||
|
||||
MIDL_INTERFACE("87be986c-10be-4943-bf48-4b54ce1983a2")
|
||||
IMFContentDecryptionModule : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE SetContentEnabler(
|
||||
/* [in] */ __RPC__in_opt IMFContentEnabler * contentEnabler,
|
||||
/* [in] */ __RPC__in_opt IMFAsyncResult * result) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetSuspendNotify(
|
||||
/* [out] */ __RPC__deref_out_opt IMFCdmSuspendNotify * *notify) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetPMPHostApp(
|
||||
/* [in] */ __RPC__in_opt IMFPMPHostApp * pmpHostApp) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateSession(
|
||||
/* [in] */ MF_MEDIAKEYSESSION_TYPE sessionType,
|
||||
/* [in] */ __RPC__in_opt IMFContentDecryptionModuleSessionCallbacks *
|
||||
callbacks,
|
||||
/* [out] */ __RPC__deref_out_opt IMFContentDecryptionModuleSession *
|
||||
*session) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetServerCertificate(
|
||||
/* [size_is][in] */ __RPC__in_ecount_full(certificateSize)
|
||||
const BYTE* certificate,
|
||||
/* [in] */ DWORD certificateSize) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateTrustedInput(
|
||||
/* [size_is][in] */ __RPC__in_ecount_full(contentInitDataSize)
|
||||
const BYTE* contentInitData,
|
||||
/* [in] */ DWORD contentInitDataSize,
|
||||
/* [out] */ __RPC__deref_out_opt IMFTrustedInput** trustedInput) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetProtectionSystemIds(
|
||||
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*count)
|
||||
GUID *
|
||||
*systemIds,
|
||||
/* [out] */ __RPC__out DWORD * count) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFContentDecryptionModule_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFContentDecryptionModuleAccess_INTERFACE_DEFINED__
|
||||
# define __IMFContentDecryptionModuleAccess_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFContentDecryptionModuleAccess */
|
||||
/* [unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFContentDecryptionModuleAccess;
|
||||
|
||||
MIDL_INTERFACE("a853d1f4-e2a0-4303-9edc-f1a68ee43136")
|
||||
IMFContentDecryptionModuleAccess : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateContentDecryptionModule(
|
||||
/* [in] */ __RPC__in_opt IPropertyStore *
|
||||
contentDecryptionModuleProperties,
|
||||
/* [out] */ __RPC__deref_out_opt IMFContentDecryptionModule *
|
||||
*contentDecryptionModule) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetConfiguration(
|
||||
/* [out] */ __RPC__deref_out_opt IPropertyStore * *configuration) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetKeySystem(
|
||||
/* [out] */ __RPC__deref_out_opt LPWSTR * keySystem) = 0;
|
||||
};
|
||||
# endif /* __IMFContentDecryptionModuleAccess_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFContentDecryptionModuleFactory_INTERFACE_DEFINED__
|
||||
# define __IMFContentDecryptionModuleFactory_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFContentDecryptionModuleFactory */
|
||||
/* [local][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFContentDecryptionModuleFactory;
|
||||
MIDL_INTERFACE("7d5abf16-4cbb-4e08-b977-9ba59049943e")
|
||||
IMFContentDecryptionModuleFactory : public IUnknown {
|
||||
public:
|
||||
virtual BOOL STDMETHODCALLTYPE IsTypeSupported(
|
||||
/* [in] */ LPCWSTR keySystem,
|
||||
/* [optional][in] */ LPCWSTR contentType) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateContentDecryptionModuleAccess(
|
||||
/* [in] */ LPCWSTR keySystem,
|
||||
/* [size_is][size_is][in] */ IPropertyStore * *configurations,
|
||||
/* [in] */ DWORD numConfigurations,
|
||||
/* [out] */ IMFContentDecryptionModuleAccess *
|
||||
*contentDecryptionModuleAccess) = 0;
|
||||
};
|
||||
# endif /* __IMFContentDecryptionModuleFactory_INTERFACE_DEFINED__ */
|
||||
|
||||
#endif // defined(WINVER) && WINVER >= 0x0A00
|
||||
|
||||
#endif // DOM_MEDIA_PLATFORM_WMF_MFCDMEXTRA_H
|
||||
|
|
|
@ -9,708 +9,4 @@
|
|||
#include <mfmediaengine.h>
|
||||
#include <mfapi.h>
|
||||
|
||||
// Currently, we build with WINVER=0x601 (Win7), which means newer
|
||||
// declarations in mfmediaengine.h will not be visible. Also, we don't
|
||||
// yet have the Fall Creators Update SDK available on build machines,
|
||||
// so even with updated WINVER, some of the interfaces we need would
|
||||
// not be present.
|
||||
// To work around this, until the build environment is updated,
|
||||
// we include copies of the relevant classes/interfaces we need.
|
||||
#if !defined(WINVER) || WINVER < 0x0602
|
||||
|
||||
# define WS_EX_NOREDIRECTIONBITMAP 0x00200000L
|
||||
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_CALLBACK, 0xc60381b8, 0x83a4, 0x41f8, 0xa3, 0xd0,
|
||||
0xde, 0x05, 0x07, 0x68, 0x49, 0xa9);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_DXGI_MANAGER, 0x065702da, 0x1094, 0x486d, 0x86,
|
||||
0x17, 0xee, 0x7c, 0xc4, 0xee, 0x46, 0x48);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_EXTENSION, 0x3109fd46, 0x060d, 0x4b62, 0x8d, 0xcf,
|
||||
0xfa, 0xff, 0x81, 0x13, 0x18, 0xd2);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_PLAYBACK_HWND, 0xd988879b, 0x67c9, 0x4d92, 0xba,
|
||||
0xa7, 0x6e, 0xad, 0xd4, 0x46, 0x03, 0x9d);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_OPM_HWND, 0xa0be8ee7, 0x0572, 0x4f2c, 0xa8, 0x01,
|
||||
0x2a, 0x15, 0x1b, 0xd3, 0xe7, 0x26);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_PLAYBACK_VISUAL, 0x6debd26f, 0x6ab9, 0x4d7e, 0xb0,
|
||||
0xee, 0xc6, 0x1a, 0x73, 0xff, 0xad, 0x15);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_COREWINDOW, 0xfccae4dc, 0x0b7f, 0x41c2, 0x9f, 0x96,
|
||||
0x46, 0x59, 0x94, 0x8a, 0xcd, 0xdc);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_VIDEO_OUTPUT_FORMAT, 0x5066893c, 0x8cf9, 0x42bc,
|
||||
0x8b, 0x8a, 0x47, 0x22, 0x12, 0xe5, 0x27, 0x26);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_CONTENT_PROTECTION_FLAGS, 0xe0350223, 0x5aaf,
|
||||
0x4d76, 0xa7, 0xc3, 0x06, 0xde, 0x70, 0x89, 0x4d, 0xb4);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_CONTENT_PROTECTION_MANAGER, 0xfdd6dfaa, 0xbd85,
|
||||
0x4af3, 0x9e, 0x0f, 0xa0, 0x1d, 0x53, 0x9d, 0x87, 0x6a);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_AUDIO_ENDPOINT_ROLE, 0xd2cb93d1, 0x116a, 0x44f2,
|
||||
0x93, 0x85, 0xf7, 0xd0, 0xfd, 0xa2, 0xfb, 0x46);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_AUDIO_CATEGORY, 0xc8d4c51d, 0x350e, 0x41f2, 0xba,
|
||||
0x46, 0xfa, 0xeb, 0xbb, 0x08, 0x57, 0xf6);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_STREAM_CONTAINS_ALPHA_CHANNEL, 0x5cbfaf44, 0xd2b2,
|
||||
0x4cfb, 0x80, 0xa7, 0xd4, 0x29, 0xc7, 0x4c, 0x78, 0x9d);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE, 0x4e0212e2, 0xe18f,
|
||||
0x41e1, 0x95, 0xe5, 0xc0, 0xe7, 0xe9, 0x23, 0x5b, 0xc3);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE9, 0x052c2d39, 0x40c0,
|
||||
0x4188, 0xab, 0x86, 0xf8, 0x28, 0x27, 0x3b, 0x75, 0x22);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE10, 0x11a47afd, 0x6589,
|
||||
0x4124, 0xb3, 0x12, 0x61, 0x58, 0xec, 0x51, 0x7f, 0xc3);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE11, 0x1cf1315f, 0xce3f,
|
||||
0x4035, 0x93, 0x91, 0x16, 0x14, 0x2f, 0x77, 0x51, 0x89);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_BROWSER_COMPATIBILITY_MODE_IE_EDGE, 0xa6f3e465,
|
||||
0x3aca, 0x442c, 0xa3, 0xf0, 0xad, 0x6d, 0xda, 0xd8, 0x39, 0xae);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_COMPATIBILITY_MODE, 0x3ef26ad4, 0xdc54, 0x45de,
|
||||
0xb9, 0xaf, 0x76, 0xc8, 0xc6, 0x6b, 0xfa, 0x8e);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_COMPATIBILITY_MODE_WWA_EDGE, 0x15b29098, 0x9f01,
|
||||
0x4e4d, 0xb6, 0x5a, 0xc0, 0x6c, 0x6c, 0x89, 0xda, 0x2a);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_COMPATIBILITY_MODE_WIN10, 0x5b25e089, 0x6ca7,
|
||||
0x4139, 0xa2, 0xcb, 0xfc, 0xaa, 0xb3, 0x95, 0x52, 0xa3);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_SOURCE_RESOLVER_CONFIG_STORE, 0x0ac0c497, 0xb3c4,
|
||||
0x48c9, 0x9c, 0xde, 0xbb, 0x8c, 0xa2, 0x44, 0x2c, 0xa3);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_TRACK_ID, 0x65bea312, 0x4043, 0x4815, 0x8e, 0xab,
|
||||
0x44, 0xdc, 0xe2, 0xef, 0x8f, 0x2a);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_TELEMETRY_APPLICATION_ID, 0x1e7b273b, 0xa7e4,
|
||||
0x402a, 0x8f, 0x51, 0xc4, 0x8e, 0x88, 0xa2, 0xca, 0xbc);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_SYNCHRONOUS_CLOSE, 0xc3c2e12f, 0x7e0e, 0x4e43, 0xb9,
|
||||
0x1c, 0xdc, 0x99, 0x2c, 0xcd, 0xfa, 0x5e);
|
||||
EXTERN_GUID(MF_MEDIA_ENGINE_MEDIA_PLAYER_MODE, 0x3ddd8d45, 0x5aa1, 0x4112, 0x82,
|
||||
0xe5, 0x36, 0xf6, 0xa2, 0x19, 0x7e, 0x6e);
|
||||
EXTERN_GUID(CLSID_MFMediaEngineClassFactory, 0xb44392da, 0x499b, 0x446b, 0xa4,
|
||||
0xcb, 0x0, 0x5f, 0xea, 0xd0, 0xe6, 0xd5);
|
||||
EXTERN_GUID(MF_MT_VIDEO_ROTATION, 0xc380465d, 0x2271, 0x428c, 0x9b, 0x83, 0xec,
|
||||
0xea, 0x3b, 0x4a, 0x85, 0xc1);
|
||||
|
||||
typedef enum _MFVideoRotationFormat {
|
||||
MFVideoRotationFormat_0 = 0,
|
||||
MFVideoRotationFormat_90 = 90,
|
||||
MFVideoRotationFormat_180 = 180,
|
||||
MFVideoRotationFormat_270 = 270
|
||||
} MFVideoRotationFormat;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_EVENT {
|
||||
MF_MEDIA_ENGINE_EVENT_LOADSTART = 1,
|
||||
MF_MEDIA_ENGINE_EVENT_PROGRESS = 2,
|
||||
MF_MEDIA_ENGINE_EVENT_SUSPEND = 3,
|
||||
MF_MEDIA_ENGINE_EVENT_ABORT = 4,
|
||||
MF_MEDIA_ENGINE_EVENT_ERROR = 5,
|
||||
MF_MEDIA_ENGINE_EVENT_EMPTIED = 6,
|
||||
MF_MEDIA_ENGINE_EVENT_STALLED = 7,
|
||||
MF_MEDIA_ENGINE_EVENT_PLAY = 8,
|
||||
MF_MEDIA_ENGINE_EVENT_PAUSE = 9,
|
||||
MF_MEDIA_ENGINE_EVENT_LOADEDMETADATA = 10,
|
||||
MF_MEDIA_ENGINE_EVENT_LOADEDDATA = 11,
|
||||
MF_MEDIA_ENGINE_EVENT_WAITING = 12,
|
||||
MF_MEDIA_ENGINE_EVENT_PLAYING = 13,
|
||||
MF_MEDIA_ENGINE_EVENT_CANPLAY = 14,
|
||||
MF_MEDIA_ENGINE_EVENT_CANPLAYTHROUGH = 15,
|
||||
MF_MEDIA_ENGINE_EVENT_SEEKING = 16,
|
||||
MF_MEDIA_ENGINE_EVENT_SEEKED = 17,
|
||||
MF_MEDIA_ENGINE_EVENT_TIMEUPDATE = 18,
|
||||
MF_MEDIA_ENGINE_EVENT_ENDED = 19,
|
||||
MF_MEDIA_ENGINE_EVENT_RATECHANGE = 20,
|
||||
MF_MEDIA_ENGINE_EVENT_DURATIONCHANGE = 21,
|
||||
MF_MEDIA_ENGINE_EVENT_VOLUMECHANGE = 22,
|
||||
MF_MEDIA_ENGINE_EVENT_FORMATCHANGE = 1000,
|
||||
MF_MEDIA_ENGINE_EVENT_PURGEQUEUEDEVENTS = 1001,
|
||||
MF_MEDIA_ENGINE_EVENT_TIMELINE_MARKER = 1002,
|
||||
MF_MEDIA_ENGINE_EVENT_BALANCECHANGE = 1003,
|
||||
MF_MEDIA_ENGINE_EVENT_DOWNLOADCOMPLETE = 1004,
|
||||
MF_MEDIA_ENGINE_EVENT_BUFFERINGSTARTED = 1005,
|
||||
MF_MEDIA_ENGINE_EVENT_BUFFERINGENDED = 1006,
|
||||
MF_MEDIA_ENGINE_EVENT_FRAMESTEPCOMPLETED = 1007,
|
||||
MF_MEDIA_ENGINE_EVENT_NOTIFYSTABLESTATE = 1008,
|
||||
MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY = 1009,
|
||||
MF_MEDIA_ENGINE_EVENT_TRACKSCHANGE = 1010,
|
||||
MF_MEDIA_ENGINE_EVENT_OPMINFO = 1011,
|
||||
MF_MEDIA_ENGINE_EVENT_RESOURCELOST = 1012,
|
||||
MF_MEDIA_ENGINE_EVENT_DELAYLOADEVENT_CHANGED = 1013,
|
||||
MF_MEDIA_ENGINE_EVENT_STREAMRENDERINGERROR = 1014,
|
||||
MF_MEDIA_ENGINE_EVENT_SUPPORTEDRATES_CHANGED = 1015,
|
||||
MF_MEDIA_ENGINE_EVENT_AUDIOENDPOINTCHANGE = 1016
|
||||
} MF_MEDIA_ENGINE_EVENT;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_PROTECTION_FLAGS {
|
||||
MF_MEDIA_ENGINE_ENABLE_PROTECTED_CONTENT = 1,
|
||||
MF_MEDIA_ENGINE_USE_PMP_FOR_ALL_CONTENT = 2,
|
||||
MF_MEDIA_ENGINE_USE_UNPROTECTED_PMP = 4
|
||||
} MF_MEDIA_ENGINE_PROTECTION_FLAGS;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_CREATEFLAGS {
|
||||
MF_MEDIA_ENGINE_AUDIOONLY = 0x1,
|
||||
MF_MEDIA_ENGINE_WAITFORSTABLE_STATE = 0x2,
|
||||
MF_MEDIA_ENGINE_FORCEMUTE = 0x4,
|
||||
MF_MEDIA_ENGINE_REAL_TIME_MODE = 0x8,
|
||||
MF_MEDIA_ENGINE_DISABLE_LOCAL_PLUGINS = 0x10,
|
||||
MF_MEDIA_ENGINE_CREATEFLAGS_MASK = 0x1f
|
||||
} MF_MEDIA_ENGINE_CREATEFLAGS;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_S3D_PACKING_MODE {
|
||||
MF_MEDIA_ENGINE_S3D_PACKING_MODE_NONE = 0,
|
||||
MF_MEDIA_ENGINE_S3D_PACKING_MODE_SIDE_BY_SIDE = 1,
|
||||
MF_MEDIA_ENGINE_S3D_PACKING_MODE_TOP_BOTTOM = 2
|
||||
} MF_MEDIA_ENGINE_S3D_PACKING_MODE;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_STATISTIC {
|
||||
MF_MEDIA_ENGINE_STATISTIC_FRAMES_RENDERED = 0,
|
||||
MF_MEDIA_ENGINE_STATISTIC_FRAMES_DROPPED = 1,
|
||||
MF_MEDIA_ENGINE_STATISTIC_BYTES_DOWNLOADED = 2,
|
||||
MF_MEDIA_ENGINE_STATISTIC_BUFFER_PROGRESS = 3,
|
||||
MF_MEDIA_ENGINE_STATISTIC_FRAMES_PER_SECOND = 4,
|
||||
MF_MEDIA_ENGINE_STATISTIC_PLAYBACK_JITTER = 5,
|
||||
MF_MEDIA_ENGINE_STATISTIC_FRAMES_CORRUPTED = 6,
|
||||
MF_MEDIA_ENGINE_STATISTIC_TOTAL_FRAME_DELAY = 7
|
||||
} MF_MEDIA_ENGINE_STATISTIC;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_SEEK_MODE {
|
||||
MF_MEDIA_ENGINE_SEEK_MODE_NORMAL = 0,
|
||||
MF_MEDIA_ENGINE_SEEK_MODE_APPROXIMATE = 1
|
||||
} MF_MEDIA_ENGINE_SEEK_MODE;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_ERR {
|
||||
MF_MEDIA_ENGINE_ERR_NOERROR = 0,
|
||||
MF_MEDIA_ENGINE_ERR_ABORTED = 1,
|
||||
MF_MEDIA_ENGINE_ERR_NETWORK = 2,
|
||||
MF_MEDIA_ENGINE_ERR_DECODE = 3,
|
||||
MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED = 4,
|
||||
MF_MEDIA_ENGINE_ERR_ENCRYPTED = 5
|
||||
} MF_MEDIA_ENGINE_ERR;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_NETWORK {
|
||||
MF_MEDIA_ENGINE_NETWORK_EMPTY = 0,
|
||||
MF_MEDIA_ENGINE_NETWORK_IDLE = 1,
|
||||
MF_MEDIA_ENGINE_NETWORK_LOADING = 2,
|
||||
MF_MEDIA_ENGINE_NETWORK_NO_SOURCE = 3
|
||||
} MF_MEDIA_ENGINE_NETWORK;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_READY {
|
||||
MF_MEDIA_ENGINE_READY_HAVE_NOTHING = 0,
|
||||
MF_MEDIA_ENGINE_READY_HAVE_METADATA = 1,
|
||||
MF_MEDIA_ENGINE_READY_HAVE_CURRENT_DATA = 2,
|
||||
MF_MEDIA_ENGINE_READY_HAVE_FUTURE_DATA = 3,
|
||||
MF_MEDIA_ENGINE_READY_HAVE_ENOUGH_DATA = 4
|
||||
} MF_MEDIA_ENGINE_READY;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_CANPLAY {
|
||||
MF_MEDIA_ENGINE_CANPLAY_NOT_SUPPORTED = 0,
|
||||
MF_MEDIA_ENGINE_CANPLAY_MAYBE = 1,
|
||||
MF_MEDIA_ENGINE_CANPLAY_PROBABLY = 2
|
||||
} MF_MEDIA_ENGINE_CANPLAY;
|
||||
|
||||
typedef enum MF_MEDIA_ENGINE_PRELOAD {
|
||||
MF_MEDIA_ENGINE_PRELOAD_MISSING = 0,
|
||||
MF_MEDIA_ENGINE_PRELOAD_EMPTY = 1,
|
||||
MF_MEDIA_ENGINE_PRELOAD_NONE = 2,
|
||||
MF_MEDIA_ENGINE_PRELOAD_METADATA = 3,
|
||||
MF_MEDIA_ENGINE_PRELOAD_AUTOMATIC = 4
|
||||
} MF_MEDIA_ENGINE_PRELOAD;
|
||||
|
||||
typedef enum _MF3DVideoOutputType {
|
||||
MF3DVideoOutputType_BaseView = 0,
|
||||
MF3DVideoOutputType_Stereo = 1
|
||||
} MF3DVideoOutputType;
|
||||
|
||||
# ifndef __IMFMediaEngineNotify_INTERFACE_DEFINED__
|
||||
# define __IMFMediaEngineNotify_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFMediaEngineNotify */
|
||||
/* [local][unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFMediaEngineNotify;
|
||||
MIDL_INTERFACE("fee7c112-e776-42b5-9bbf-0048524e2bd5")
|
||||
IMFMediaEngineNotify : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE EventNotify(
|
||||
/* [annotation][in] */
|
||||
_In_ DWORD event,
|
||||
/* [annotation][in] */
|
||||
_In_ DWORD_PTR param1,
|
||||
/* [annotation][in] */
|
||||
_In_ DWORD param2) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFMediaEngineNotify_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFMediaEngineExtension_INTERFACE_DEFINED__
|
||||
# define __IMFMediaEngineExtension_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFMediaEngineExtension */
|
||||
/* [local][unique][uuid][object] */
|
||||
EXTERN_C const IID IID_IMFMediaEngineExtension;
|
||||
MIDL_INTERFACE("2f69d622-20b5-41e9-afdf-89ced1dda04e")
|
||||
IMFMediaEngineExtension : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE CanPlayType(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL AudioOnly,
|
||||
/* [annotation][in] */
|
||||
_In_ BSTR MimeType,
|
||||
/* [annotation][out] */
|
||||
_Out_ MF_MEDIA_ENGINE_CANPLAY * pAnswer) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE BeginCreateObject(
|
||||
/* [annotation][in] */
|
||||
_In_ BSTR bstrURL,
|
||||
/* [annotation][in] */
|
||||
_In_opt_ IMFByteStream * pByteStream,
|
||||
/* [annotation][in] */
|
||||
_In_ MF_OBJECT_TYPE type,
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IUnknown * *ppIUnknownCancelCookie,
|
||||
/* [annotation][in] */
|
||||
_In_ IMFAsyncCallback * pCallback,
|
||||
/* [annotation][in] */
|
||||
_In_opt_ IUnknown * punkState) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE CancelObjectCreation(
|
||||
/* [annotation][in] */
|
||||
_In_ IUnknown * pIUnknownCancelCookie) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE EndCreateObject(
|
||||
/* [annotation][in] */
|
||||
_In_ IMFAsyncResult * pResult,
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IUnknown * *ppObject) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFMediaEngineExtension_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFMediaEngineClassFactory_INTERFACE_DEFINED__
|
||||
# define __IMFMediaEngineClassFactory_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFMediaEngineClassFactory */
|
||||
/* [local][unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFMediaEngineClassFactory;
|
||||
|
||||
MIDL_INTERFACE("4D645ACE-26AA-4688-9BE1-DF3516990B93")
|
||||
IMFMediaEngineClassFactory : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateInstance(
|
||||
/* [annotation][in] */
|
||||
_In_ DWORD dwFlags,
|
||||
/* [annotation][in] */
|
||||
_In_ IMFAttributes * pAttr,
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IMFMediaEngine * *ppPlayer) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateTimeRange(
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IMFMediaTimeRange * *ppTimeRange) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateError(
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IMFMediaError * *ppError) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFMediaEngineClassFactory_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFMediaEngineClassFactory4_INTERFACE_DEFINED__
|
||||
# define __IMFMediaEngineClassFactory4_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFMediaEngineClassFactory4 */
|
||||
/* [local][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFMediaEngineClassFactory4;
|
||||
|
||||
MIDL_INTERFACE("fbe256c1-43cf-4a9b-8cb8-ce8632a34186")
|
||||
IMFMediaEngineClassFactory4 : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateContentDecryptionModuleFactory(
|
||||
/* [annotation][in] */
|
||||
_In_ LPCWSTR keySystem,
|
||||
/* [annotation][in] */
|
||||
_In_ REFIID riid,
|
||||
/* [annotation][iid_is][out] */
|
||||
_Outptr_ LPVOID * ppvObject) = 0;
|
||||
};
|
||||
# endif // __IMFMediaEngineClassFactory4_INTERFACE_DEFINED__
|
||||
|
||||
# ifndef __IMFMediaEngine_INTERFACE_DEFINED__
|
||||
# define __IMFMediaEngine_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFMediaEngine */
|
||||
/* [local][unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFMediaEngine;
|
||||
MIDL_INTERFACE("98a1b0bb-03eb-4935-ae7c-93c1fa0e1c93")
|
||||
IMFMediaEngine : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE GetError(
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IMFMediaError * *ppError) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetErrorCode(
|
||||
/* [annotation][in] */
|
||||
_In_ MF_MEDIA_ENGINE_ERR error) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetSourceElements(
|
||||
/* [annotation][in] */
|
||||
_In_ IMFMediaEngineSrcElements * pSrcElements) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetSource(
|
||||
/* [annotation][in] */
|
||||
_In_ BSTR pUrl) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetCurrentSource(
|
||||
/* [annotation][out] */
|
||||
_Out_ BSTR * ppUrl) = 0;
|
||||
|
||||
virtual USHORT STDMETHODCALLTYPE GetNetworkState(void) = 0;
|
||||
|
||||
virtual MF_MEDIA_ENGINE_PRELOAD STDMETHODCALLTYPE GetPreload(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetPreload(
|
||||
/* [annotation][in] */
|
||||
_In_ MF_MEDIA_ENGINE_PRELOAD Preload) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetBuffered(
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IMFMediaTimeRange * *ppBuffered) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Load(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE CanPlayType(
|
||||
/* [annotation][in] */
|
||||
_In_ BSTR type,
|
||||
/* [annotation][out] */
|
||||
_Out_ MF_MEDIA_ENGINE_CANPLAY * pAnswer) = 0;
|
||||
|
||||
virtual USHORT STDMETHODCALLTYPE GetReadyState(void) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE IsSeeking(void) = 0;
|
||||
|
||||
virtual double STDMETHODCALLTYPE GetCurrentTime(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetCurrentTime(
|
||||
/* [annotation][in] */
|
||||
_In_ double seekTime) = 0;
|
||||
|
||||
virtual double STDMETHODCALLTYPE GetStartTime(void) = 0;
|
||||
|
||||
virtual double STDMETHODCALLTYPE GetDuration(void) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE IsPaused(void) = 0;
|
||||
|
||||
virtual double STDMETHODCALLTYPE GetDefaultPlaybackRate(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetDefaultPlaybackRate(
|
||||
/* [annotation][in] */
|
||||
_In_ double Rate) = 0;
|
||||
|
||||
virtual double STDMETHODCALLTYPE GetPlaybackRate(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetPlaybackRate(
|
||||
/* [annotation][in] */
|
||||
_In_ double Rate) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetPlayed(
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IMFMediaTimeRange * *ppPlayed) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetSeekable(
|
||||
/* [annotation][out] */
|
||||
_Outptr_ IMFMediaTimeRange * *ppSeekable) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE IsEnded(void) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE GetAutoPlay(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetAutoPlay(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL AutoPlay) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE GetLoop(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetLoop(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL Loop) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Play(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Pause(void) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE GetMuted(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetMuted(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL Muted) = 0;
|
||||
|
||||
virtual double STDMETHODCALLTYPE GetVolume(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetVolume(
|
||||
/* [annotation][in] */
|
||||
_In_ double Volume) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE HasVideo(void) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE HasAudio(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetNativeVideoSize(
|
||||
/* [annotation][out] */
|
||||
_Out_opt_ DWORD * cx,
|
||||
/* [annotation][out] */
|
||||
_Out_opt_ DWORD * cy) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetVideoAspectRatio(
|
||||
/* [annotation][out] */
|
||||
_Out_opt_ DWORD * cx,
|
||||
/* [annotation][out] */
|
||||
_Out_opt_ DWORD * cy) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE Shutdown(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE TransferVideoFrame(
|
||||
/* [annotation][in] */
|
||||
_In_ IUnknown * pDstSurf,
|
||||
/* [annotation][in] */
|
||||
_In_opt_ const MFVideoNormalizedRect* pSrc,
|
||||
/* [annotation][in] */
|
||||
_In_ const RECT* pDst,
|
||||
/* [annotation][in] */
|
||||
_In_opt_ const MFARGB* pBorderClr) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE OnVideoStreamTick(
|
||||
/* [annotation][out] */
|
||||
_Out_ LONGLONG * pPts) = 0;
|
||||
};
|
||||
# endif /* __IMFMediaEngine_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFMediaEngineEx_INTERFACE_DEFINED__
|
||||
# define __IMFMediaEngineEx_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFMediaEngineEx */
|
||||
/* [local][unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFMediaEngineEx;
|
||||
MIDL_INTERFACE("83015ead-b1e6-40d0-a98a-37145ffe1ad1")
|
||||
IMFMediaEngineEx : public IMFMediaEngine {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE SetSourceFromByteStream(
|
||||
/* [annotation][in] */
|
||||
_In_ IMFByteStream * pByteStream,
|
||||
/* [annotation][in] */
|
||||
_In_ BSTR pURL) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetStatistics(
|
||||
/* [annotation][in] */
|
||||
_In_ MF_MEDIA_ENGINE_STATISTIC StatisticID,
|
||||
/* [annotation][out] */
|
||||
_Out_ PROPVARIANT * pStatistic) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE UpdateVideoStream(
|
||||
/* [annotation][in] */
|
||||
_In_opt_ const MFVideoNormalizedRect* pSrc,
|
||||
/* [annotation][in] */
|
||||
_In_opt_ const RECT* pDst,
|
||||
/* [annotation][in] */
|
||||
_In_opt_ const MFARGB* pBorderClr) = 0;
|
||||
|
||||
virtual double STDMETHODCALLTYPE GetBalance(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetBalance(
|
||||
/* [annotation][in] */
|
||||
_In_ double balance) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE IsPlaybackRateSupported(
|
||||
/* [annotation][in] */
|
||||
_In_ double rate) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE FrameStep(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL Forward) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetResourceCharacteristics(
|
||||
/* [annotation][out] */
|
||||
_Out_ DWORD * pCharacteristics) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetPresentationAttribute(
|
||||
/* [annotation][in] */
|
||||
_In_ REFGUID guidMFAttribute,
|
||||
/* [annotation][out] */
|
||||
_Out_ PROPVARIANT * pvValue) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetNumberOfStreams(
|
||||
/* [annotation][out] */
|
||||
_Out_ DWORD * pdwStreamCount) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetStreamAttribute(
|
||||
/* [annotation][in] */
|
||||
_In_ DWORD dwStreamIndex,
|
||||
/* [annotation][in] */
|
||||
_In_ REFGUID guidMFAttribute,
|
||||
/* [annotation][out] */
|
||||
_Out_ PROPVARIANT * pvValue) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetStreamSelection(
|
||||
/* [annotation][in] */
|
||||
_In_ DWORD dwStreamIndex,
|
||||
/* [annotation][out] */
|
||||
_Out_ BOOL * pEnabled) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetStreamSelection(
|
||||
/* [annotation][in] */
|
||||
_In_ DWORD dwStreamIndex,
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL Enabled) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE ApplyStreamSelections(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE IsProtected(
|
||||
/* [annotation][out] */
|
||||
_Out_ BOOL * pProtected) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE InsertVideoEffect(
|
||||
/* [annotation][in] */
|
||||
_In_ IUnknown * pEffect,
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL fOptional) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE InsertAudioEffect(
|
||||
/* [annotation][in] */
|
||||
_In_ IUnknown * pEffect,
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL fOptional) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE RemoveAllEffects(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetTimelineMarkerTimer(
|
||||
/* [annotation][in] */
|
||||
_In_ double timeToFire) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetTimelineMarkerTimer(
|
||||
/* [annotation][out] */
|
||||
_Out_ double* pTimeToFire) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE CancelTimelineMarkerTimer(void) = 0;
|
||||
|
||||
virtual BOOL STDMETHODCALLTYPE IsStereo3D(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetStereo3DFramePackingMode(
|
||||
/* [annotation][out] */
|
||||
_Out_ MF_MEDIA_ENGINE_S3D_PACKING_MODE * packMode) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetStereo3DFramePackingMode(
|
||||
/* [annotation][in] */
|
||||
_In_ MF_MEDIA_ENGINE_S3D_PACKING_MODE packMode) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetStereo3DRenderMode(
|
||||
/* [annotation][out] */
|
||||
_Out_ MF3DVideoOutputType * outputType) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetStereo3DRenderMode(
|
||||
/* [annotation][in] */
|
||||
_In_ MF3DVideoOutputType outputType) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE EnableWindowlessSwapchainMode(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL fEnable) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetVideoSwapchainHandle(
|
||||
/* [annotation][out] */
|
||||
_Out_ HANDLE * phSwapchain) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE EnableHorizontalMirrorMode(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL fEnable) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetAudioStreamCategory(
|
||||
/* [annotation][out] */
|
||||
_Out_ UINT32 * pCategory) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetAudioStreamCategory(
|
||||
/* [annotation][in] */
|
||||
_In_ UINT32 category) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetAudioEndpointRole(
|
||||
/* [annotation][out] */
|
||||
_Out_ UINT32 * pRole) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetAudioEndpointRole(
|
||||
/* [annotation][in] */
|
||||
_In_ UINT32 role) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetRealTimeMode(
|
||||
/* [annotation][out] */
|
||||
_Out_ BOOL * pfEnabled) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetRealTimeMode(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL fEnable) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetCurrentTimeEx(
|
||||
/* [annotation][in] */
|
||||
_In_ double seekTime,
|
||||
/* [annotation][in] */
|
||||
_In_ MF_MEDIA_ENGINE_SEEK_MODE seekMode) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE EnableTimeUpdateTimer(
|
||||
/* [annotation][in] */
|
||||
_In_ BOOL fEnableTimer) = 0;
|
||||
};
|
||||
# endif /* __IMFMediaEngineEx_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFCdmSuspendNotify_INTERFACE_DEFINED__
|
||||
# define __IMFCdmSuspendNotify_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFCdmSuspendNotify */
|
||||
/* [unique][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFCdmSuspendNotify;
|
||||
|
||||
MIDL_INTERFACE("7a5645d2-43bd-47fd-87b7-dcd24cc7d692")
|
||||
IMFCdmSuspendNotify : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE Begin(void) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE End(void) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFCdmSuspendNotify_INTERFACE_DEFINED__ */
|
||||
|
||||
# ifndef __IMFMediaEngineProtectedContent_INTERFACE_DEFINED__
|
||||
# define __IMFMediaEngineProtectedContent_INTERFACE_DEFINED__
|
||||
|
||||
/* interface IMFMediaEngineProtectedContent */
|
||||
/* [local][uuid][object] */
|
||||
|
||||
EXTERN_C const IID IID_IMFMediaEngineProtectedContent;
|
||||
|
||||
MIDL_INTERFACE("9f8021e8-9c8c-487e-bb5c-79aa4779938c")
|
||||
IMFMediaEngineProtectedContent : public IUnknown {
|
||||
public:
|
||||
virtual HRESULT STDMETHODCALLTYPE ShareResources(
|
||||
/* [annotation] */
|
||||
_In_ IUnknown * pUnkDeviceContext) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE GetRequiredProtections(
|
||||
/* [annotation][out] */
|
||||
_Out_ DWORD * pFrameProtectionFlags) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetOPMWindow(
|
||||
/* [annotation][in] */
|
||||
_In_ HWND hwnd) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE TransferVideoFrame(
|
||||
/* [annotation][in] */
|
||||
_In_ IUnknown * pDstSurf,
|
||||
/* [annotation][in] */
|
||||
_In_opt_ const MFVideoNormalizedRect* pSrc,
|
||||
/* [annotation][in] */
|
||||
_In_ const RECT* pDst,
|
||||
/* [annotation][in] */
|
||||
_In_opt_ const MFARGB* pBorderClr,
|
||||
/* [annotation][out] */
|
||||
_Out_ DWORD* pFrameProtectionFlags) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetContentProtectionManager(
|
||||
/* [annotation][in] */
|
||||
_In_opt_ IMFContentProtectionManager * pCPM) = 0;
|
||||
|
||||
virtual HRESULT STDMETHODCALLTYPE SetApplicationCertificate(
|
||||
/* [annotation][in] */
|
||||
_In_reads_bytes_(cbBlob) const BYTE* pbBlob,
|
||||
/* [annotation][in] */
|
||||
_In_ DWORD cbBlob) = 0;
|
||||
};
|
||||
|
||||
# endif /* __IMFMediaEngineProtectedContent_INTERFACE_DEFINED__ */
|
||||
|
||||
#endif // extra class copy from mfmediaengine.h
|
||||
#endif // DOM_MEDIA_PLATFORM_WMF_MFMEDIAENGINENOTIFY_H
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include "WMFVideoMFTManager.h"
|
||||
|
||||
#include <psapi.h>
|
||||
#include <winsdkver.h>
|
||||
#include <algorithm>
|
||||
#include "DXVA2Manager.h"
|
||||
#include "GMPUtils.h" // For SplitAt. TODO: Move SplitAt to a central place.
|
||||
|
@ -43,44 +42,6 @@ using mozilla::layers::LayerManager;
|
|||
using mozilla::layers::LayersBackend;
|
||||
using mozilla::media::TimeUnit;
|
||||
|
||||
#if WINVER_MAXVER < 0x0A00
|
||||
// Windows 10+ SDK has VP80 and VP90 defines
|
||||
const GUID MFVideoFormat_VP80 = {
|
||||
0x30385056,
|
||||
0x0000,
|
||||
0x0010,
|
||||
{0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
|
||||
|
||||
const GUID MFVideoFormat_VP90 = {
|
||||
0x30395056,
|
||||
0x0000,
|
||||
0x0010,
|
||||
{0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};
|
||||
#endif
|
||||
|
||||
#if !defined(__MINGW32__) && _WIN32_WINNT < _WIN32_WINNT_WIN8
|
||||
const GUID MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT = {
|
||||
0x851745d5,
|
||||
0xc3d6,
|
||||
0x476d,
|
||||
{0x95, 0x27, 0x49, 0x8e, 0xf2, 0xd1, 0xd, 0x18}};
|
||||
const GUID MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT_PROGRESSIVE = {
|
||||
0xf5523a5,
|
||||
0x1cb2,
|
||||
0x47c5,
|
||||
{0xa5, 0x50, 0x2e, 0xeb, 0x84, 0xb4, 0xd1, 0x4a}};
|
||||
const GUID MF_SA_D3D11_BINDFLAGS = {
|
||||
0xeacf97ad,
|
||||
0x065c,
|
||||
0x4408,
|
||||
{0xbe, 0xe3, 0xfd, 0xcb, 0xfd, 0x12, 0x8b, 0xe2}};
|
||||
const GUID MF_SA_D3D11_SHARED_WITHOUT_MUTEX = {
|
||||
0x39dbd44d,
|
||||
0x2e44,
|
||||
0x4931,
|
||||
{0xa4, 0xc8, 0x35, 0x2d, 0x3d, 0xc4, 0x21, 0x15}};
|
||||
#endif
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
LayersBackend GetCompositorBackendType(
|
||||
|
|
Загрузка…
Ссылка в новой задаче