[PATCH] include: Add IMFSequencerSource interface

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Tue Nov 20 17:42:06 CST 2018


Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 include/mfidl.idl | 55 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/include/mfidl.idl b/include/mfidl.idl
index 84be055d09b..45d52fc7293 100644
--- a/include/mfidl.idl
+++ b/include/mfidl.idl
@@ -21,6 +21,7 @@ import "mftransform.idl";
 
 typedef unsigned __int64 TOPOID;
 typedef LONGLONG  MFTIME;
+typedef DWORD MFSequencerElementId;
 
 typedef enum MF_TOPOLOGY_TYPE
 {
@@ -250,6 +251,60 @@ interface IMFGetService : IUnknown
     );
 }
 
+[
+    object,
+    uuid(03cb2711-24d7-4db6-a17f-f3a7a479a536),
+]
+interface IMFPresentationDescriptor : IMFAttributes
+{
+    HRESULT GetStreamDescriptorCount(
+        [out] DWORD *count );
+
+    HRESULT GetStreamDescriptorByIndex(
+        [in] DWORD index,
+        [out] BOOL *selected,
+        [out] IMFStreamDescriptor **descriptor );
+
+    HRESULT SelectStream(
+        [in] DWORD index );
+
+    HRESULT DeselectStream(
+        [in] DWORD index );
+
+    HRESULT Clone(
+        [out] IMFPresentationDescriptor **descriptor );
+}
+
+[
+    object,
+    uuid(197cd219-19cb-4de1-a64c-acf2edcbe59e),
+    local
+]
+interface IMFSequencerSource : IUnknown
+{
+    HRESULT AppendTopology(
+        [in] IMFTopology *topology,
+        [in] DWORD flags,
+        [out] MFSequencerElementId *element );
+
+    HRESULT DeleteTopology(
+        [in] MFSequencerElementId element);
+
+    HRESULT GetPresentationContext(
+        [in] IMFPresentationDescriptor *pd,
+        [out, optional] MFSequencerElementId *id,
+        [out, optional] IMFTopology **topology );
+
+    HRESULT UpdateTopology(
+        [in] MFSequencerElementId od,
+        [in] IMFTopology *topology);
+
+    HRESULT UpdateTopologyFlags(
+        [in] MFSequencerElementId id,
+        [in] DWORD flags );
+
+};
+
 cpp_quote("HRESULT WINAPI MFCreateMediaSession(IMFAttributes *config, IMFMediaSession **session);")
 cpp_quote("HRESULT WINAPI MFCreateMFByteStreamOnStream(IStream *stream, IMFByteStream **bytestream);" )
 cpp_quote("HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **resolver);")
-- 
2.19.1




More information about the wine-devel mailing list