Jacek Caban : wmsdkidl.idl: Added IWMWriterAdvanced* interfaces declarations.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Mar 16 10:34:23 CDT 2015
Module: wine
Branch: master
Commit: d6e2b5b1ffc79adf46eb3f196298ed5ca6416caa
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d6e2b5b1ffc79adf46eb3f196298ed5ca6416caa
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Mar 13 13:56:52 2015 +0100
wmsdkidl.idl: Added IWMWriterAdvanced* interfaces declarations.
---
include/wmsdkidl.idl | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 136 insertions(+)
diff --git a/include/wmsdkidl.idl b/include/wmsdkidl.idl
index da228e7..1618f86 100644
--- a/include/wmsdkidl.idl
+++ b/include/wmsdkidl.idl
@@ -35,6 +35,31 @@ typedef struct _WMMediaType
[size_is(cbFormat)] BYTE *pbFormat;
} WM_MEDIA_TYPE;
+typedef struct _WMWriterStatistics
+{
+ QWORD qwSampleCount;
+ QWORD qwByteCount;
+ QWORD qwDroppedSampleCount;
+ QWORD qwDroppedByteCount;
+ DWORD dwCurrentBitrate;
+ DWORD dwAverageBitrate;
+ DWORD dwExpectedBitrate;
+ DWORD dwCurrentSampleRate;
+ DWORD dwAverageSampleRate;
+ DWORD dwExpectedSampleRate;
+} WM_WRITER_STATISTICS;
+
+typedef struct _WMWriterStatisticsEx
+{
+ DWORD dwBitratePlusOverhead;
+ DWORD dwCurrentSampleDropRateInQueue;
+ DWORD dwCurrentSampleDropRateInCodec;
+ DWORD dwCurrentSampleDropRateInMultiplexer;
+ DWORD dwTotalSampleDropsInQueue;
+ DWORD dwTotalSampleDropsInCodec;
+ DWORD dwTotalSampleDropsInMultiplexer;
+} WM_WRITER_STATISTICS_EX;
+
typedef enum WMT_ATTR_DATATYPE
{
WMT_TYPE_DWORD = 0,
@@ -535,6 +560,30 @@ interface IWMInputMediaProps : IWMMediaProps
[
object,
+ uuid(96406be4-2b2b-11d3-b36b-00c04f6108ff),
+ pointer_default(unique),
+ local
+]
+interface IWMWriterSink : IUnknown
+{
+ HRESULT OnHeader(
+ [in] INSSBuffer *pHeader);
+
+ HRESULT IsRealTime(
+ [out] BOOL *pfRealTime);
+
+ HRESULT AllocateDataUnit(
+ [in] DWORD cbDataUnit,
+ [out] INSSBuffer **ppDataUnit);
+
+ HRESULT OnDataUnit(
+ [in] INSSBuffer *pDataUnit);
+
+ HRESULT OnEndWriting();
+}
+
+[
+ object,
uuid(96406bd4-2b2b-11d3-b36b-00c04f6108ff),
pointer_default(unique),
local
@@ -587,6 +636,93 @@ interface IWMWriter : IUnknown
HRESULT Flush();
}
+[
+ object,
+ uuid(96406be3-2b2b-11d3-b36b-00C04f6108ff),
+ pointer_default(unique),
+ local
+]
+interface IWMWriterAdvanced : IUnknown
+{
+ HRESULT GetSinkCount(
+ [out] DWORD *pcSinks);
+
+ HRESULT GetSink(
+ [in] DWORD dwSinkNum,
+ [out] IWMWriterSink **ppSink);
+
+ HRESULT AddSink(
+ [in] IWMWriterSink *pSink);
+
+ HRESULT RemoveSink(
+ [in] IWMWriterSink *pSink);
+
+ HRESULT WriteStreamSample(
+ [in] WORD wStreamNum,
+ [in] QWORD cnsSampleTime,
+ [in] DWORD msSampleSendTime,
+ [in] QWORD cnsSampleDuration,
+ [in] DWORD dwFlags,
+ [in] INSSBuffer *pSample);
+
+ HRESULT SetLiveSource(
+ BOOL fIsLiveSource);
+
+ HRESULT IsRealTime(
+ [out] BOOL *pfRealTime);
+
+ HRESULT GetWriterTime(
+ [out] QWORD *pCurrentTime);
+
+ HRESULT GetStatistics(
+ [in] WORD wStreamNum,
+ [out] WM_WRITER_STATISTICS *pStats);
+
+ HRESULT SetSyncTolerance(
+ [in] DWORD msWindow);
+
+ HRESULT GetSyncTolerance(
+ [out] DWORD *pmsWindow);
+}
+
+[
+ object,
+ uuid(962dc1ec-c046-4db8-9cc7-26ceae500817),
+ pointer_default(unique),
+ local
+]
+interface IWMWriterAdvanced2 : IWMWriterAdvanced
+{
+ HRESULT GetInputSetting(
+ [in] DWORD dwInputNum,
+ [in] LPCWSTR pszName,
+ [out] WMT_ATTR_DATATYPE *pType,
+ [out, size_is(*pcbLength)] BYTE *pValue,
+ [in, out] WORD *pcbLength);
+
+ HRESULT SetInputSetting(
+ [in] DWORD dwInputNum,
+ [in] LPCWSTR pszName,
+ [in] WMT_ATTR_DATATYPE Type,
+ [in, size_is(cbLength)] const BYTE *pValue,
+ [in] WORD cbLength);
+}
+
+[
+ object,
+ uuid(2cd6492d-7c37-4e76-9d3b-59261183a22e),
+ pointer_default(unique),
+ local
+]
+interface IWMWriterAdvanced3 : IWMWriterAdvanced2
+{
+ HRESULT GetStatisticsEx(
+ [in] WORD wStreamNum,
+ [out] WM_WRITER_STATISTICS_EX *pStats);
+
+ HRESULT SetNonBlocking();
+}
+
cpp_quote("HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);")
cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
More information about the wine-cvs
mailing list