blob: 45a74b6b58bd432adb368e777d10592362252c53 [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
import "mfobjects.idl";
cpp_quote("#include <mftransform.h>") // FIXME: import "mftransform.idl";
cpp_quote("#include <windef.h>")
typedef enum MFSESSION_SETTOPOLOGY_FLAGS {
MFSESSION_SETTOPOLOGY_IMMEDIATE = 0x1,
MFSESSION_SETTOPOLOGY_NORESOLUTION = 0x2,
MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4
} MFSESSION_SETTOPOLOGY_FLAGS;
typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS {
MFSESSION_GETFULLTOPOLOGY_CURRENT
} MFSESSION_GETFULLTOPOLOGY_FLAGS;
typedef enum MFPMPSESSION_CREATION_FLAGS {
MFPMPSESSION_UNPROTECTED_PROCESS = 0x1
} MFPMPSESSION_CREATION_FLAGS;
typedef unsigned __int64 TOPOID;
typedef enum MF_TOPOLOGY_TYPE {
MF_TOPOLOGY_OUTPUT_NODE,
MF_TOPOLOGY_SOURCESTREAM_NODE,
MF_TOPOLOGY_TRANSFORM_NODE,
MF_TOPOLOGY_TEE_NODE,
MF_TOPOLOGY_MAX = 0xffffffff
} MF_TOPOLOGY_TYPE;
[
object,
uuid(83cf873a-f6da-4bc8-823f-bacfd55dc430),
]
interface IMFTopologyNode : IMFAttributes
{
HRESULT SetObject([in] IUnknown *pObject);
HRESULT GetObject([out] IUnknown **ppObject);
HRESULT GetNodeType([out] MF_TOPOLOGY_TYPE *pType);
HRESULT GetTopoNodeID([out] TOPOID *pID);
HRESULT SetTopoNodeID([in] TOPOID ullTopoID);
HRESULT GetInputCount([out] DWORD *pcInputs);
HRESULT GetOutputCount([out] DWORD *pcOutputs);
[local]
HRESULT ConnectOutput([in] DWORD dwOutputIndex, [in] IMFTopologyNode* pDownstreamNode,
[in] DWORD dwInputIndexOnDownstreamNode);
[local] HRESULT DisconnectOutput([in] DWORD dwOutputIndex);
HRESULT GetInput([in] DWORD dwInputIndex, [out] IMFTopologyNode** ppUpstreamNode,
[out] DWORD *pdwOutputIndexOnUpstreamNode);
HRESULT GetOutput([in] DWORD dwOutputIndex, [out] IMFTopologyNode** ppDownstreamNode,
[out] DWORD* pdwInputIndexOnDownstreamNode);
[local] HRESULT SetOutputPrefType([in] DWORD dwOutputIndex, [in] IMFMediaType *pType);
[local] HRESULT GetOutputPrefType([in] DWORD dwOutputIndex, [out] IMFMediaType **ppType);
[call_as(GetOutputPrefType)] HRESULT RemoteGetOutputPrefType([in] DWORD dwOutputIndex,
[out] DWORD *pcbData, [out, size_is(,*pcbData)] BYTE **ppbData);
[local] HRESULT SetInputPrefType([in] DWORD dwInputIndex, [in] IMFMediaType *pType);
[local] HRESULT GetInputPrefType([in] DWORD dwInputIndex, [out] IMFMediaType **ppType);
[call_as(GetInputPrefType)] HRESULT RemoteGetInputPrefType( [in] DWORD dwInputIndex,
[out] DWORD *pcbData, [out, size_is(,*pcbData)] BYTE **ppbData);
HRESULT CloneFrom([in] IMFTopologyNode *pNode);
}
[
object,
uuid(83cf873a-f6da-4bc8-823f-bacfd55dc433),
]
interface IMFTopology : IMFAttributes
{
HRESULT GetTopologyID([out] TOPOID *pID);
[local] HRESULT AddNode([in] IMFTopologyNode *pNode);
[local] HRESULT RemoveNode([in] IMFTopologyNode *pNode);
HRESULT GetNodeCount([out] WORD *pwNodes);
HRESULT GetNode([in] WORD wIndex, [out] IMFTopologyNode **ppNode);
[local] HRESULT Clear();
HRESULT CloneFrom([in] IMFTopology *pTopology);
HRESULT GetNodeByID([in] TOPOID qwTopoNodeID, [out] IMFTopologyNode **ppNode);
HRESULT GetSourceNodeCollection([out] IMFCollection **ppCollection);
HRESULT GetOutputNodeCollection([out] IMFCollection **ppCollection);
}
typedef LONGLONG MFTIME;
typedef enum _MF_CLOCK_STATE {
MFCLOCK_STATE_INVALID,
MFCLOCK_STATE_RUNNING,
MFCLOCK_STATE_STOPPED,
MFCLOCK_STATE_PAUSED
} MF_CLOCK_STATE, MFCLOCK_STATE;
typedef struct _MFCLOCK_PROPERTIES {
unsigned __int64 qwCorrelationRate;
GUID guidClockId;
DWORD dwClockFlags;
unsigned __int64 qwClockFrequency;
DWORD dwClockTolerance;
DWORD dwClockJitter;
} MFCLOCK_PROPERTIES;
[
object,
uuid(2eb1e945-18b8-4139-9b1a-d5d584818530),
]
interface IMFClock : IUnknown
{
HRESULT GetClockCharacteristics([out] DWORD *pdwCharacteristics);
HRESULT GetCorrelatedTime([in] DWORD dwReserved, [out] LONGLONG *pllClockTime, [out] MFTIME *phnsSystemTime);
HRESULT GetContinuityKey([out] DWORD *pdwContinuityKey);
HRESULT GetState([in] DWORD dwReserved, [out] MFCLOCK_STATE *peClockState);
HRESULT GetProperties([out] MFCLOCK_PROPERTIES *pClockProperties);
}
cpp_quote("#define SHA_HASH_LEN 20")
cpp_quote("#define STR_HASH_LEN (SHA_HASH_LEN*2+3)")
cpp_quote("typedef struct _MFRR_COMPONENT_HASH_INFO {")
cpp_quote(" DWORD ulReason;")
cpp_quote(" WCHAR rgHeaderHash[STR_HASH_LEN];")
cpp_quote(" WCHAR rgPublicKeyHash[STR_HASH_LEN];")
cpp_quote(" WCHAR wszName[MAX_PATH];")
cpp_quote("} MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO;")
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),
]
interface IMFMediaSession : IMFMediaEventGenerator
{
HRESULT SetTopology([in] DWORD dwSetTopologyFlags, [in] IMFTopology *pTopology);
HRESULT ClearTopologies();
HRESULT Start([in, unique] const GUID *pguidTimeFormat, [in, unique] const PROPVARIANT *pvarStartPosition);
HRESULT Pause();
HRESULT Stop();
HRESULT Close();
HRESULT Shutdown();
HRESULT GetClock([out] IMFClock **ppClock);
HRESULT GetSessionCapabilities([out] DWORD *pdwCaps);
HRESULT GetFullTopology([in] DWORD dwGetFullTopologyFlags, [in] TOPOID TopoId, [out] IMFTopology **ppFullTopology);
}
[
object,
uuid(e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5),
]
interface IMFMediaTypeHandler : IUnknown
{
[local] HRESULT IsMediaTypeSupported([in] IMFMediaType *pMediaType, [out] IMFMediaType **ppMediaType);
[local] HRESULT GetMediaTypeCount([out] DWORD *pdwTypeCount);
[local] HRESULT GetMediaTypeByIndex([in] DWORD dwIndex, [out] IMFMediaType **ppType);
[local] HRESULT SetCurrentMediaType([in] IMFMediaType *pMediaType);
[local]
HRESULT GetCurrentMediaType([out] IMFMediaType **ppMediaType);
[call_as(GetCurrentMediaType)]
HRESULT RemoteGetCurrentMediaType([out, size_is(,*pcbData)] BYTE **ppbData, [out] DWORD *pcbData);
HRESULT GetMajorType([out] GUID *pguidMajorType);
}
[
object,
uuid(56c03d9c-9dbb-45f5-ab4b-d80f47c05938),
]
interface IMFStreamDescriptor : IMFAttributes
{
HRESULT GetStreamIdentifier([out] DWORD *pdwStreamIdentifier);
HRESULT GetMediaTypeHandler([out] IMFMediaTypeHandler **ppMediaTypeHandler);
}
[
object,
uuid(03cb2711-24d7-4db6-a17f-f3a7a479a536),
]
interface IMFPresentationDescriptor : IMFAttributes
{
HRESULT GetStreamDescriptorCount([out] DWORD *pdwDescriptorCount);
HRESULT GetStreamDescriptorByIndex([in] DWORD dwIndex, [out] BOOL *pfSelected, [out] IMFStreamDescriptor **ppDescriptor);
HRESULT SelectStream([in] DWORD dwDescriptorIndex);
HRESULT DeselectStream([in] DWORD dwDescriptorIndex);
HRESULT Clone([out] IMFPresentationDescriptor **ppPresentationDescriptor);
}
[
object,
uuid(279a808d-aec7-40c8-9c6b-a6b492c78a66),
]
interface IMFMediaSource : IMFMediaEventGenerator
{
HRESULT GetCharacteristics([out] DWORD *pdwCharacteristics);
[local]
HRESULT CreatePresentationDescriptor([out] IMFPresentationDescriptor **ppPresentationDescriptor);
[call_as(CreatePresentationDescriptor)]
HRESULT RemoteCreatePresentationDescriptor(
[out] DWORD *pcbPD,
[out, size_is(,*pcbPD)] BYTE **pbPD,
[out] IMFPresentationDescriptor **ppRemotePD);
HRESULT Start(
[in] IMFPresentationDescriptor *pPresentationDescriptor,
[in, unique] const GUID *pguidTimeFormat,
[in, unique] const PROPVARIANT *pvarStartPosition);
HRESULT Stop();
HRESULT Pause();
HRESULT Shutdown();
}
typedef [public] struct _MF_LEAKY_BUCKET_PAIR {
DWORD dwBitrate;
DWORD msBufferWindow;
} MF_LEAKY_BUCKET_PAIR;
typedef [public] struct _MFBYTESTREAM_BUFFERING_PARAMS {
QWORD cbTotalFileSize;
QWORD cbPlayableDataSize;
MF_LEAKY_BUCKET_PAIR *prgBuckets;
DWORD cBuckets;
QWORD qwNetBufferingTime;
QWORD qwExtraBufferingTimeDuringSeek;
QWORD qwPlayDuration;
float dRate;
} MFBYTESTREAM_BUFFERING_PARAMS;
[
object,
uuid(6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e),
local
]
interface IMFByteStreamBuffering : IUnknown
{
HRESULT SetBufferingParams([in] MFBYTESTREAM_BUFFERING_PARAMS *pParams);
HRESULT EnableBuffering([in] BOOL fEnable);
HRESULT StopBuffering();
}
cpp_quote("HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor);")
cpp_quote("HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData);")
cpp_quote("typedef DWORD MFSequencerElementId; /*Unknown type*/")
cpp_quote("")
cpp_quote("typedef enum MFCLOCK_CHARACTERISTICS_FLAGS {")
cpp_quote(" MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ = 0x2,")
cpp_quote(" MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING = 0x4,")
cpp_quote(" MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK = 0x8")
cpp_quote("} MFCLOCK_CHARACTERISTICS_FLAGS;")
cpp_quote("")
cpp_quote("#if (WINVER >= 0x0601)")
cpp_quote("")
cpp_quote("typedef enum _MF_QUALITY_ADVISE_FLAGS {")
cpp_quote(" MF_QUALITY_CANNOT_KEEP_UP = 0x1")
cpp_quote("} MF_QUALITY_ADVISE_FLAGS;")
cpp_quote("")
cpp_quote("#endif /*(WINVER >= 0x0601)*/")
cpp_quote("")
cpp_quote("typedef enum _MF_QUALITY_DROP_MODE {")
cpp_quote(" MF_DROP_MODE_NONE = 0x0,")
cpp_quote(" MF_DROP_MODE_1 = 0x1,")
cpp_quote(" MF_DROP_MODE_2 = 0x2,")
cpp_quote(" MF_DROP_MODE_3 = 0x3,")
cpp_quote(" MF_DROP_MODE_4 = 0x4,")
cpp_quote(" MF_DROP_MODE_5 = 0x5,")
cpp_quote(" MF_NUM_DROP_MODES = 0x6")
cpp_quote("} MF_QUALITY_DROP_MODE;")
cpp_quote("")
cpp_quote("typedef enum _MF_QUALITY_LEVEL {")
cpp_quote(" MF_QUALITY_NORMAL = 0x0,")
cpp_quote(" MF_QUALITY_NORMAL_MINUS_1 = 0x1,")
cpp_quote(" MF_QUALITY_NORMAL_MINUS_2 = 0x2,")
cpp_quote(" MF_QUALITY_NORMAL_MINUS_3 = 0x3,")
cpp_quote(" MF_QUALITY_NORMAL_MINUS_4 = 0x4,")
cpp_quote(" MF_QUALITY_NORMAL_MINUS_5 = 0x5,")
cpp_quote(" MF_NUM_QUALITY_LEVELS = 0x6")
cpp_quote("} MF_QUALITY_LEVEL;")
cpp_quote("")
cpp_quote("typedef enum MF_SOURCE_READER_CONTROL_FLAG {")
cpp_quote(" MF_SOURCE_READER_CONTROLF_DRAIN = 0x00000001")
cpp_quote("} MF_SOURCE_READER_CONTROL_FLAG;")
cpp_quote("")
cpp_quote("typedef enum _MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS {")
cpp_quote(" MF_TOPOLOGY_RESOLUTION_SUCCEEDED = 0x00000000,")
cpp_quote(" MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE = 0x00000001,")
cpp_quote(" MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 0x00000002")
cpp_quote("} MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS;")
cpp_quote("")
cpp_quote("typedef enum _MF_TOPONODE_DRAIN_MODE {")
cpp_quote(" MF_TOPONODE_DRAIN_DEFAULT,")
cpp_quote(" MF_TOPONODE_DRAIN_ALWAYS,")
cpp_quote(" MF_TOPONODE_DRAIN_NEVER")
cpp_quote("} MF_TOPONODE_DRAIN_MODE;")
cpp_quote("")
cpp_quote("typedef enum _MF_TOPONODE_FLUSH_MODE {")
cpp_quote(" MF_TOPONODE_FLUSH_ALWAYS,")
cpp_quote(" MF_TOPONODE_FLUSH_SEEK,")
cpp_quote(" MF_TOPONODE_FLUSH_NEVER")
cpp_quote("} MF_TOPONODE_FLUSH_MODE;")
cpp_quote("")
cpp_quote("#if (WINVER >= 0x0601)")
cpp_quote("")
cpp_quote("typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS {")
cpp_quote(" MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY = 0,")
cpp_quote(" MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1")
cpp_quote("} MF_TRANSCODE_TOPOLOGYMODE_FLAGS;")
cpp_quote("")
cpp_quote("#endif")
cpp_quote("")
cpp_quote("typedef enum {")
cpp_quote(" MF_LICENSE_URL_UNTRUSTED,")
cpp_quote(" MF_LICENSE_URL_TRUSTED,")
cpp_quote(" MF_LICENSE_URL_TAMPERED")
cpp_quote("} MF_URL_TRUST_STATUS;")
cpp_quote("")
cpp_quote("typedef enum MFASF_INDEXERFLAGS {")
cpp_quote(" MFASF_INDEXER_WRITE_NEW_INDEX = 0x00000001,")
cpp_quote(" MFASF_INDEXER_READ_FOR_REVERSEPLAYBACK = 0x00000004,")
cpp_quote(" MFASF_INDEXER_WRITE_FOR_LIVEREAD = 0x00000008")
cpp_quote("} MFASF_INDEXERFLAGS;")
cpp_quote("")
cpp_quote("typedef enum _MFCLOCK_RELATIONAL_FLAGS {")
cpp_quote(" MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1")
cpp_quote("} MFCLOCK_RELATIONAL_FLAGS;")
cpp_quote("")
cpp_quote("typedef enum _MFMEDIASOURCE_CHARACTERISTICS {")
cpp_quote(" MFMEDIASOURCE_IS_LIVE = 0x1,")
cpp_quote(" MFMEDIASOURCE_CAN_SEEK = 0x2,")
cpp_quote(" MFMEDIASOURCE_CAN_PAUSE = 0x4,")
cpp_quote(" MFMEDIASOURCE_HAS_SLOW_SEEK = 0x8,")
cpp_quote(" MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = 0x10,")
cpp_quote(" MFMEDIASOURCE_CAN_SKIPFORWARD = 0x20,")
cpp_quote(" MFMEDIASOURCE_CAN_SKIPBACKWARD = 0x40")
cpp_quote("} MFMEDIASOURCE_CHARACTERISTICS;")
cpp_quote("")
cpp_quote("typedef enum _MFNET_PROXYSETTINGS {")
cpp_quote(" MFNET_PROXYSETTING_NONE = 0,")
cpp_quote(" MFNET_PROXYSETTING_MANUAL = 1,")
cpp_quote(" MFNET_PROXYSETTING_AUTO = 2,")
cpp_quote(" MFNET_PROXYSETTING_BROWSER = 3")
cpp_quote("} MFNET_PROXYSETTINGS;")
cpp_quote("")
cpp_quote("typedef enum _MFNetAuthenticationFlags {")
cpp_quote(" MFNET_AUTHENTICATION_PROXY = 0x00000001,")
cpp_quote(" MFNET_AUTHENTICATION_CLEAR_TEXT = 0x00000002,")
cpp_quote(" MFNET_AUTHENTICATION_LOGGED_ON_USER")
cpp_quote("} MFNetAuthenticationFlags;")
cpp_quote("")
cpp_quote("typedef enum _MFNetCredentialOptions {")
cpp_quote(" MFNET_CREDENTIAL_SAVE = 0x00000001,")
cpp_quote(" MFNET_CREDENTIAL_DONT_CACHE = 0x00000002,")
cpp_quote(" MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x00000004")
cpp_quote("} MFNetCredentialOptions;")
cpp_quote("")
cpp_quote("typedef enum _MFNetCredentialRequirements {")
cpp_quote(" REQUIRE_PROMPT = 0x00000001,")
cpp_quote(" REQUIRE_SAVE_SELECTED = 0x00000002")
cpp_quote("} MFNetCredentialRequirements;")
cpp_quote("")
cpp_quote("typedef enum _MFNETSOURCE_CACHE_STATE {")
cpp_quote(" MFNETSOURCE_CACHE_UNAVAILABLE,")
cpp_quote(" MFNETSOURCE_CACHE_ACTIVE_WRITING,")
cpp_quote(" MFNETSOURCE_CACHE_ACTIVE_COMPLETE")
cpp_quote("} MFNETSOURCE_CACHE_STATE;")
cpp_quote("")
cpp_quote("typedef enum _MFNETSOURCE_PROTOCOL_TYPE {")
cpp_quote(" MFNETSOURCE_UNDEFINED = 0x0,")
cpp_quote(" MFNETSOURCE_HTTP = 0x1,")
cpp_quote(" MFNETSOURCE_RTSP = 0x2,")
cpp_quote(" MFNETSOURCE_FILE = 0x3,")
cpp_quote(" MFNETSOURCE_MULTICAST = 0x4")
cpp_quote("} MFNETSOURCE_PROTOCOL_TYPE;")
cpp_quote("")
cpp_quote("typedef enum _MFNETSOURCE_STATISTICS_IDS {")
cpp_quote(" MFNETSOURCE_RECVPACKETS_ID = 0,")
cpp_quote(" MFNETSOURCE_LOSTPACKETS_ID,")
cpp_quote(" MFNETSOURCE_RESENDSREQUESTED_ID,")
cpp_quote(" MFNETSOURCE_RESENDSRECEIVED_ID,")
cpp_quote(" MFNETSOURCE_RECOVEREDBYECCPACKETS_ID,")
cpp_quote(" MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID,")
cpp_quote(" MFNETSOURCE_OUTPACKETS_ID,")
cpp_quote(" MFNETSOURCE_RECVRATE_ID,")
cpp_quote(" MFNETSOURCE_AVGBANDWIDTHBPS_ID,")
cpp_quote(" MFNETSOURCE_BYTESRECEIVED_ID,")
cpp_quote(" MFNETSOURCE_PROTOCOL_ID,")
cpp_quote(" MFNETSOURCE_TRANSPORT_ID,")
cpp_quote(" MFNETSOURCE_CACHE_STATE_ID,")
cpp_quote(" MFNETSOURCE_LINKBANDWIDTH_ID,")
cpp_quote(" MFNETSOURCE_CONTENTBITRATE_ID,")
cpp_quote(" MFNETSOURCE_SPEEDFACTOR_ID,")
cpp_quote(" MFNETSOURCE_BUFFERSIZE_ID,")
cpp_quote(" MFNETSOURCE_BUFFERPROGRESS_ID,")
cpp_quote(" MFNETSOURCE_LASTBWSWITCHTS_ID,")
cpp_quote(" MFNETSOURCE_SEEKRANGESTART_ID,")
cpp_quote(" MFNETSOURCE_SEEKRANGEEND_ID,")
cpp_quote(" MFNETSOURCE_BUFFERINGCOUNT_ID,")
cpp_quote(" MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID,")
cpp_quote(" MFNETSOURCE_SIGNEDSESSION_ID,")
cpp_quote(" MFNETSOURCE_MAXBITRATE_ID,")
cpp_quote(" MFNETSOURCE_RECEPTION_QUALITY_ID,")
cpp_quote(" MFNETSOURCE_RECOVEREDPACKETS_ID,")
cpp_quote(" MFNETSOURCE_VBR_ID,")
cpp_quote(" MFNETSOURCE_DOWNLOADPROGRESS_ID")
cpp_quote("} MFNETSOURCE_STATISTICS_IDS;")
cpp_quote("")
cpp_quote("typedef enum _MFNETSOURCE_TRANSPORT_TYPE {")
cpp_quote(" MFNETSOURCE_UDP,")
cpp_quote(" MFNETSOURCE_TCP")
cpp_quote("} MFNETSOURCE_TRANSPORT_TYPE;")
cpp_quote("")
cpp_quote("typedef enum MF_OBJECT_TYPE {")
cpp_quote(" MF_OBJECT_MEDIASOURCE,")
cpp_quote(" MF_OBJECT_BYTESTREAM,")
cpp_quote(" MF_OBJECT_INVALID")
cpp_quote("} MF_OBJECT_TYPE;")
cpp_quote("")
cpp_quote("typedef enum _MFPOLICYMANAGER_ACTION {")
cpp_quote(" PEACTION_NO = 0,")
cpp_quote(" PEACTION_PLAY = 1,")
cpp_quote(" PEACTION_COPY = 2,")
cpp_quote(" PEACTION_EXPORT = 3,")
cpp_quote(" PEACTION_EXTRACT = 4,")
cpp_quote(" PEACTION_RESERVED1 = 5,")
cpp_quote(" PEACTION_RESERVED2 = 6,")
cpp_quote(" PEACTION_RESERVED3 = 7,")
cpp_quote(" PEACTION_LAST = 7")
cpp_quote("} MFPOLICYMANAGER_ACTION;")
cpp_quote("")
cpp_quote("typedef enum _MFRATE_DIRECTION {")
cpp_quote(" MFRATE_FORWARD,")
cpp_quote(" MFRATE_REVERSE")
cpp_quote("} MFRATE_DIRECTION;")
cpp_quote("")
cpp_quote("typedef enum _MFSequencerTopologyFlags {")
cpp_quote(" SequencerTopologyFlags_Last = 0x00000001")
cpp_quote("} MFSequencerTopologyFlags;")
cpp_quote("")
cpp_quote("typedef enum _MFSHUTDOWN_STATUS {")
cpp_quote(" MFSHUTDOWN_INITIATED,")
cpp_quote(" MFSHUTDOWN_COMPLETED")
cpp_quote("} MFSHUTDOWN_STATUS;")
cpp_quote("")
cpp_quote("typedef enum _MFSINK_WMDRMACTION {")
cpp_quote(" MFSINK_WMDRMACTION_UNDEFINED = 0,")
cpp_quote(" MFSINK_WMDRMACTION_ENCODE = 1,")
cpp_quote(" MFSINK_WMDRMACTION_TRANSCODE = 2,")
cpp_quote(" MFSINK_WMDRMACTION_TRANSCRYPT = 3,")
cpp_quote(" MFSINK_WMDRMACTION_LAST = 3")
cpp_quote("} MFSINK_WMDRMACTION;")
cpp_quote("")
cpp_quote("typedef enum MFSTREAMSINK_MARKER_TYPE {")
cpp_quote(" MFSTREAMSINK_MARKER_DEFAULT,")
cpp_quote(" MFSTREAMSINK_MARKER_ENDOFSEGMENT,")
cpp_quote(" MFSTREAMSINK_MARKER_TICK,")
cpp_quote(" MFSTREAMSINK_MARKER_EVENT")
cpp_quote("} MFSTREAMSINK_MARKER_TYPE;")
cpp_quote("")
cpp_quote("typedef enum MFTIMER_FLAGS {")
cpp_quote(" MFTIMER_RELATIVE = 0x00000001")
cpp_quote("} MFTIMER_FLAGS;")
cpp_quote("")
cpp_quote("#if (WINVER >= 0x0601)")
cpp_quote("")
cpp_quote("typedef enum MFTOPLOGY_DXVA_MODE {")
cpp_quote(" MFTOPOLOGY_DXVA_DEFAULT = 0,")
cpp_quote(" MFTOPOLOGY_DXVA_NONE = 1,")
cpp_quote(" MFTOPOLOGY_DXVA_FULL = 2")
cpp_quote("} MFTOPOLOGY_DXVA_MODE;")
cpp_quote("")
cpp_quote("typedef enum MFTOPOLOGY_HARDWARE_MODE {")
cpp_quote(" MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0,")
cpp_quote(" MFTOPOLOGY_HWMODE_USE_HARDWARE = 1")
cpp_quote("} MFTOPOLOGY_HARDWARE_MODE;")
cpp_quote("")
cpp_quote("typedef struct _MFT_REGISTRATION_INFO {")
cpp_quote(" CLSID clsid;")
cpp_quote(" GUID guidCategory;")
cpp_quote(" UINT32 uiFlags;")
cpp_quote(" LPCWSTR pszName;")
cpp_quote(" DWORD cInTypes;")
cpp_quote(" MFT_REGISTER_TYPE_INFO *pInTypes;")
cpp_quote(" DWORD cOutTypes;")
cpp_quote(" MFT_REGISTER_TYPE_INFO *pOutTypes;")
cpp_quote("} MFT_REGISTRATION_INFO;")
cpp_quote("")
cpp_quote("#endif /*(WINVER >= 0x0601)*/")
cpp_quote("")
cpp_quote("typedef struct _ASFFlatPicture {")
cpp_quote(" BYTE bPictureType;")
cpp_quote(" DWORD dwDataLen;")
cpp_quote("} ASF_FLAT_PICTURE;")
cpp_quote("")
cpp_quote("typedef struct _ASFFlatSynchronisedLyrics {")
cpp_quote(" BYTE bTimeStampFormat;")
cpp_quote(" BYTE bContentType;")
cpp_quote(" DWORD dwLyricsLen;")
cpp_quote("} ASF_FLAT_SYNCHRONISED_LYRICS;")
cpp_quote("")
cpp_quote("typedef enum SAMPLE_PROTECTION_VERSION {")
cpp_quote(" SAMPLE_PROTECTION_VERSION_NO = 0,")
cpp_quote(" SAMPLE_PROTECTION_VERSION_BASIC_LOKI = 1,")
cpp_quote(" SAMPLE_PROTECTION_VERSION_SCATTER = 2,")
cpp_quote(" SAMPLE_PROTECTION_VERSION_RC4 = 3")
cpp_quote("} SAMPLE_PROTECTION_VERSION;")
cpp_quote("")
cpp_quote("typedef struct _MFINPUTTRUSTAUTHORITY_ACTION {")
cpp_quote(" MFPOLICYMANAGER_ACTION Action;")
cpp_quote(" BYTE *pbTicket;")
cpp_quote(" DWORD cbTicket;")
cpp_quote("} MFINPUTTRUSTAUTHORITY_ACCESS_ACTION;")
cpp_quote("")
cpp_quote("typedef struct _MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS {")
cpp_quote(" DWORD dwSize;")
cpp_quote(" DWORD dwVer;")
cpp_quote(" DWORD cbSignatureOffset;")
cpp_quote(" DWORD cbSignatureSize;")
cpp_quote(" DWORD cbExtensionOffset;")
cpp_quote(" DWORD cbExtensionSize;")
cpp_quote(" DWORD cActions;")
cpp_quote(" MFINPUTTRUSTAUTHORITY_ACCESS_ACTION rgOutputActions[1];")
cpp_quote("} MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS;")
cpp_quote("")
cpp_quote("typedef struct _MFNetCredentialManagerGetParam {")
cpp_quote(" HRESULT hrOp;")
cpp_quote(" WINBOOL fAllowLoggedOnUser;")
cpp_quote(" WINBOOL fClearTextPackage;")
cpp_quote(" LPCWSTR pszUrl;")
cpp_quote(" LPCWSTR pszSite;")
cpp_quote(" LPCWSTR pszRealm;")
cpp_quote(" LPCWSTR pszPackage;")
cpp_quote(" LONG nRetries;")
cpp_quote("} MFNetCredentialManagerGetParam;")
cpp_quote("")
cpp_quote("#define MF_1_BYTE_ALIGNMENT 0x00000000")
cpp_quote("#define MF_2_BYTE_ALIGNMENT 0x00000001")
cpp_quote("#define MF_4_BYTE_ALIGNMENT 0x00000003")
cpp_quote("#define MF_8_BYTE_ALIGNMENT 0x00000007")
cpp_quote("#define MF_16_BYTE_ALIGNMENT 0x0000000F")
cpp_quote("#define MF_32_BYTE_ALIGNMENT 0x0000001F")
cpp_quote("#define MF_64_BYTE_ALIGNMENT 0x0000003F")
cpp_quote("#define MF_128_BYTE_ALIGNMENT 0x0000007F")
cpp_quote("#define MF_256_BYTE_ALIGNMENT 0x000000FF")
cpp_quote("#define MF_512_BYTE_ALIGNMENT 0x000001FF")
cpp_quote("")
cpp_quote("#define MEDIASINK_FIXED_STREAMS 0x00000001")
cpp_quote("#define MEDIASINK_CANNOT_MATCH_CLOCK 0x00000002")
cpp_quote("#define MEDIASINK_RATELESS 0x00000004")
cpp_quote("#define MEDIASINK_CLOCK_REQUIRED 0x00000008")
cpp_quote("#define MEDIASINK_CAN_PREROLL 0x00000010")
cpp_quote("#define MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE 0x00000020")
cpp_quote("")
cpp_quote("#define MF_RESOLUTION_MEDIASOURCE 0x00000001")
cpp_quote("#define MF_RESOLUTION_BYTESTREAM 0x00000002")
cpp_quote("#define MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE 0x00000010")
cpp_quote("#define MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL 0x00000020")
cpp_quote("#define MF_RESOLUTION_READ 0x00010000")
cpp_quote("#define MF_RESOLUTION_WRITE 0x00020000")
/* FIXME: Properly declare followinf interfaces: */
interface IMFMediaSink;
interface IMFASFContentInfo;
interface IMFASFIndexer;
interface IMFASFMultiplexer;
interface IMFASFProfile;
interface IMFASFSplitter;
interface IMFPMPServer;
interface IMFPresentationClock;
interface IMFNetProxyLocator;
interface IMFRemoteDesktopPlugin;
interface IMFTransform;
interface IMFSampleGrabberSinkCallback;
interface IMFSequencerSource;
interface IMFQualityManager;
interface IMFSourceResolver;
interface IMFPresentationTimeSource;
interface IMFTopoLoader;
interface IMFTranscodeProfile;
cpp_quote("HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);")
cpp_quote("HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource);")
cpp_quote("")
cpp_quote("HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer);")
cpp_quote("HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);")
cpp_quote("HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);")
cpp_quote("HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream);")
cpp_quote("HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink);")
cpp_quote("HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate);")
cpp_quote("HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);")
cpp_quote("HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);")
cpp_quote("HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile);")
cpp_quote("HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);")
cpp_quote("HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS);")
cpp_quote("HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink);")
cpp_quote("HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);")
cpp_quote("HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler);")
cpp_quote("HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer);")
cpp_quote("HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate);")
cpp_quote("HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath);")
cpp_quote("HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock);")
cpp_quote("HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor);")
cpp_quote("HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD);")
cpp_quote("HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator);")
cpp_quote("HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin);")
cpp_quote("HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample);")
cpp_quote("HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT);")
cpp_quote("HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate);")
cpp_quote("HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource);")
cpp_quote("HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler);")
cpp_quote("HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager);")
cpp_quote("HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor);")
cpp_quote("HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver);")
cpp_quote("HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource);")
cpp_quote("HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj);")
cpp_quote("HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo);")
cpp_quote("HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode);")
cpp_quote("HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer);")
cpp_quote("HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate);")
cpp_quote("HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject);")
cpp_quote("HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray);")
cpp_quote("HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray);")
cpp_quote("MFTIME WINAPI MFGetSystemTime(void);")
cpp_quote("HRESULT WINAPI MFShutdownObject(IUnknown *pUnk);")
cpp_quote("HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore);")
cpp_quote("HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore);")
cpp_quote("#if (WINVER >= 0x0601)")
cpp_quote("")
cpp_quote("HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile);")
cpp_quote("HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate);")
cpp_quote("HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo);")
cpp_quote("HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate);")
cpp_quote("HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType);")
cpp_quote("HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes);")
cpp_quote("#endif")