Nikolay Sivov : include: Add some types used for MF pipeline objects.
Alexandre Julliard
julliard at winehq.org
Wed Mar 4 16:50:07 CST 2020
Module: wine
Branch: master
Commit: 43f608851f0991dea07f3e3756e74b095fe4616d
URL: https://source.winehq.org/git/wine.git/?a=commit;h=43f608851f0991dea07f3e3756e74b095fe4616d
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Wed Mar 4 12:16:56 2020 +0300
include: Add some types used for MF pipeline objects.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
include/mfidl.idl | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 109 insertions(+)
diff --git a/include/mfidl.idl b/include/mfidl.idl
index e27294d488..82f69518df 100644
--- a/include/mfidl.idl
+++ b/include/mfidl.idl
@@ -82,6 +82,16 @@ typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS
MFSESSION_GETFULLTOPOLOGY_CURRENT = 0x00000001,
} MFSESSION_GETFULLTOPOLOGY_FLAGS;
+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_TOPOLOGY_RESOLUTION_STATUS_FLAGS
{
MF_TOPOLOGY_RESOLUTION_SUCCEEDED = 0x00000000,
@@ -640,6 +650,19 @@ interface IMFMediaSource : IMFMediaEventGenerator
HRESULT Shutdown();
}
+[
+ object,
+ uuid(3c9b2eb9-86d5-4514-a394-f56664f9f0d8)
+]
+interface IMFMediaSourceEx : IMFMediaSource
+{
+ HRESULT GetSourceAttributes([out] IMFAttributes **attributes);
+ HRESULT GetStreamAttributes(
+ [in] DWORD streamid,
+ [out] IMFAttributes **attributes);
+ HRESULT SetD3DManager([in] IUnknown *manager);
+}
+
[
object,
uuid(d182108f-4ec6-443f-aa42-a71106ec825f),
@@ -689,6 +712,16 @@ interface IMFPresentationClock : IMFClock
HRESULT Pause();
}
+[
+ object,
+ uuid(6ef2a662-47c0-4666-b13d-cbb717f2fa2c)
+]
+interface IMFClockConsumer : IUnknown
+{
+ HRESULT SetPresentationClock([in] IMFPresentationClock *clock);
+ HRESULT GetPresentationClock([out] IMFPresentationClock **clock);
+}
+
cpp_quote("#define MEDIASINK_FIXED_STREAMS 0x00000001")
cpp_quote("#define MEDIASINK_CANNOT_MATCH_CLOCK 0x00000002")
cpp_quote("#define MEDIASINK_RATELESS 0x00000004")
@@ -730,6 +763,26 @@ interface IMFFinalizableMediaSink : IMFMediaSink
HRESULT EndFinalize([in] IMFAsyncResult *result);
}
+[
+ object,
+ uuid(5dfd4b2a-7674-4110-a4e6-8a68fd5f3688)
+]
+interface IMFMediaSinkPreroll : IUnknown
+{
+ HRESULT NotifyPreroll([in] MFTIME start_time);
+}
+
+[
+ object,
+ uuid(9db7aa41-3cc5-40d4-8509-555804ad34cc)
+]
+interface IMFStreamingSinkConfig : IUnknown
+{
+ HRESULT StartStreaming(
+ [in] BOOL is_byte_offset,
+ [in] QWORD seek_offset);
+}
+
[
object,
uuid(0a97b3cf-8e7c-4a3d-8f8c-0c843dc247fb),
@@ -786,6 +839,62 @@ interface IMFQualityManager : IUnknown
HRESULT Shutdown();
}
+typedef enum _MF_QUALITY_DROP_MODE
+{
+ MF_DROP_MODE_NONE,
+ MF_DROP_MODE_1,
+ MF_DROP_MODE_2,
+ MF_DROP_MODE_3,
+ MF_DROP_MODE_4,
+ MF_DROP_MODE_5,
+ MF_NUM_DROP_MODES
+} MF_QUALITY_DROP_MODE;
+
+typedef enum _MF_QUALITY_LEVEL
+{
+ MF_QUALITY_NORMAL,
+ MF_QUALITY_NORMAL_MINUS_1,
+ MF_QUALITY_NORMAL_MINUS_2,
+ MF_QUALITY_NORMAL_MINUS_3,
+ MF_QUALITY_NORMAL_MINUS_4,
+ MF_QUALITY_NORMAL_MINUS_5,
+ MF_NUM_QUALITY_LEVELS
+} MF_QUALITY_LEVEL;
+
+[
+ object,
+ uuid(ec15e2e9-e36b-4f7c-8758-77d452ef4ce7)
+]
+interface IMFQualityAdvise : IUnknown
+{
+ HRESULT SetDropMode([in] MF_QUALITY_DROP_MODE mode);
+ HRESULT SetQualityLevel([in] MF_QUALITY_LEVEL level);
+ HRESULT GetDropMode([out] MF_QUALITY_DROP_MODE *mode);
+ HRESULT GetQualityLevel([out] MF_QUALITY_LEVEL *level);
+ HRESULT DropTime([in] LONGLONG interval);
+}
+
+[
+ object,
+ uuid(f3706f0d-8ea2-4886-8000-7155e9ec2eae)
+]
+interface IMFQualityAdvise2 : IMFQualityAdvise
+{
+ HRESULT NotifyQualityEvent(
+ [in] IMFMediaEvent *event,
+ [out] DWORD *flags);
+}
+
+[
+ object,
+ uuid(dfcd8e4d-30b5-4567-acaa-8eb5b7853dc9)
+]
+interface IMFQualityAdviseLimits : IUnknown
+{
+ HRESULT GetMaximumDropMode([out] MF_QUALITY_DROP_MODE *mode);
+ HRESULT GetMinimumQualityLevel([out] MF_QUALITY_LEVEL *level);
+}
+
typedef struct _MFT_REGISTRATION_INFO
{
CLSID clsid;
More information about the wine-cvs
mailing list