From db080b0c7fd19944e7474a18ca7bad64af859cc4 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Thu, 17 Oct 2019 08:40:40 +0300 Subject: [PATCH] include: Add some more MF reader/writer API definitions. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- include/mfreadwrite.idl | 93 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/include/mfreadwrite.idl b/include/mfreadwrite.idl index cbfeef812cb..93920a2d385 100644 --- a/include/mfreadwrite.idl +++ b/include/mfreadwrite.idl @@ -46,6 +46,13 @@ typedef [v1_enum] enum MF_SOURCE_READER_FLAG MF_SOURCE_READERF_ALLEFFECTSREMOVED = 0x00000200, } MF_SOURCE_READER_FLAG; +enum +{ + MF_SINK_WRITER_INVALID_STREAM_INDEX = 0xffffffff, + MF_SINK_WRITER_ALL_STREAMS = 0xfffffffe, + MF_SINK_WRITER_MEDIASINK = 0xffffffff, +}; + typedef struct _MF_SINK_WRITER_STATISTICS { DWORD cb; @@ -116,6 +123,20 @@ interface IMFSourceReaderCallback : IUnknown [in] IMFMediaEvent *event); } +[ + object, + uuid(cf839fe6-8c2a-4dd2-b6ea-c22d6961af05), + local +] +interface IMFSourceReaderCallback2 : IMFSourceReaderCallback +{ + HRESULT OnTransformChange(); + + HRESULT OnStreamError( + [in] DWORD stream_index, + [in] HRESULT status); +} + interface IMFMediaSource; [ @@ -138,6 +159,32 @@ interface IMFSourceReader : IUnknown HRESULT GetPresentationAttribute([in] DWORD index, [in] REFGUID guid, [out] PROPVARIANT *attr); } +[ + object, + uuid(7b981cf0-560e-4116-9875-b099895f23d7), + local +] +interface IMFSourceReaderEx : IMFSourceReader +{ + HRESULT SetNativeMediaType( + [in] DWORD stream_index, + [in] IMFMediaType *media_type, + [out] DWORD *stream_flags); + + HRESULT AddTransformForStream( + [in] DWORD stream_index, + [in] IUnknown *transform); + + HRESULT RemoveAllTransformsForStream( + [in] DWORD stream_index); + + HRESULT GetTransformForStream( + [in] DWORD stream_index, + [in] DWORD transform_index, + [out] GUID *category, + [out] IMFTransform **transform); +} + [ object, uuid(3137f1cd-fe5e-4805-a5d8-fb477448cb3d), @@ -169,6 +216,52 @@ interface IMFSinkWriterEx : IMFSinkWriter [out] IMFTransform **transform); } +[ + object, + uuid(17c3779e-3cde-4ede-8c60-3899f5f53ad6), + local +] +interface IMFSinkWriterEncoderConfig : IUnknown +{ + HRESULT SetTargetMediaType( + [in] DWORD stream_index, + [in] IMFMediaType *media_type, + [in] IMFAttributes *encoding_parameters); + + HRESULT PlaceEncodingParameters( + [in] DWORD stream_index, + [in] IMFAttributes *encoding_parameters); +} + +[ + object, + uuid(666f76de-33d2-41b9-a458-29ed0a972c58), + local +] +interface IMFSinkWriterCallback : IUnknown +{ + HRESULT OnFinalize( + [in] HRESULT status); + + HRESULT OnMarker( + [in] DWORD stream_index, + [in] void *context); +} + +[ + object, + uuid(2456bd58-c067-4513-84fe-8d0c88ffdc61), + local +] +interface IMFSinkWriterCallback2 : IMFSinkWriterCallback +{ + HRESULT OnTransformChange(); + + HRESULT OnStreamError( + [in] DWORD stream_index, + [in] HRESULT status); +} + [ object, uuid(e7fe2e12-661c-40da-92f9-4f002ab67627),