Nikolay Sivov : mf/tests: Add a test for SAR time source.

Alexandre Julliard julliard at winehq.org
Tue Oct 8 16:05:57 CDT 2019


Module: wine
Branch: master
Commit: 5a919ad67c0d7864e0f147792bcd5d1e9f1d72a8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5a919ad67c0d7864e0f147792bcd5d1e9f1d72a8

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Oct  8 15:58:57 2019 +0300

mf/tests: Add a test for SAR time source.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mf/tests/mf.c | 33 +++++++++++++++++++++++++++++++++
 include/mferror.h  | 12 ++++++++++++
 include/mfidl.idl  |  2 ++
 3 files changed, 47 insertions(+)

diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c
index 830bb38259..0428c22ed3 100644
--- a/dlls/mf/tests/mf.c
+++ b/dlls/mf/tests/mf.c
@@ -2552,6 +2552,38 @@ static void test_quality_manager(void)
     IMFQualityManager_Release(manager);
 }
 
+static void test_sar(void)
+{
+    IMFPresentationTimeSource *time_source;
+    IMFMediaSink *sink;
+    HRESULT hr;
+
+    hr = CoInitialize(NULL);
+    ok(hr == S_OK, "Failed to initialize, hr %#x.\n", hr);
+
+    hr = MFCreateAudioRenderer(NULL, &sink);
+    if (hr == MF_E_NO_AUDIO_PLAYBACK_DEVICE)
+    {
+        skip("No audio playback device available.\n");
+        CoUninitialize();
+        return;
+    }
+
+todo_wine
+    ok(hr == S_OK, "Failed to create renderer, hr %#x.\n", hr);
+
+if (SUCCEEDED(hr))
+{
+    hr = IMFMediaSink_QueryInterface(sink, &IID_IMFPresentationTimeSource, (void **)&time_source);
+    ok(hr == S_OK, "Failed to get time source interface, hr %#x.\n", hr);
+    IMFPresentationTimeSource_Release(time_source);
+
+    IMFMediaSink_Release(sink);
+}
+
+    CoUninitialize();
+}
+
 START_TEST(mf)
 {
     test_topology();
@@ -2564,4 +2596,5 @@ START_TEST(mf)
     test_sample_grabber();
     test_video_processor();
     test_quality_manager();
+    test_sar();
 }
diff --git a/include/mferror.h b/include/mferror.h
index ba4d365a79..6d7031ecc8 100644
--- a/include/mferror.h
+++ b/include/mferror.h
@@ -108,6 +108,18 @@
 #define MF_E_SINK_NO_SAMPLES_PROCESSED                _HRESULT_TYPEDEF_(0xc00d4a44)
 #define MF_E_SINK_HEADERS_NOT_FOUND                   _HRESULT_TYPEDEF_(0xc00d4a45)
 
+#define MF_E_VIDEO_REN_NO_PROCAMP_HW                  _HRESULT_TYPEDEF_(0xc00d4e20)
+#define MF_E_VIDEO_REN_NO_DEINTERLACE_HW              _HRESULT_TYPEDEF_(0xc00d4e21)
+#define MF_E_VIDEO_REN_COPYPROT_FAILED                _HRESULT_TYPEDEF_(0xc00d4e22)
+#define MF_E_VIDEO_REN_SURFACE_NOT_SHARED             _HRESULT_TYPEDEF_(0xc00d4e23)
+#define MF_E_VIDEO_DEVICE_LOCKED                      _HRESULT_TYPEDEF_(0xc00d4e24)
+#define MF_E_NEW_VIDEO_DEVICE                         _HRESULT_TYPEDEF_(0xc00d4e25)
+#define MF_E_NO_VIDEO_SAMPLE_AVAILABLE                _HRESULT_TYPEDEF_(0xc00d4e26)
+#define MF_E_NO_AUDIO_PLAYBACK_DEVICE                 _HRESULT_TYPEDEF_(0xc00d4e84)
+#define MF_E_AUDIO_PLAYBACK_DEVICE_IN_USE             _HRESULT_TYPEDEF_(0xc00d4e85)
+#define MF_E_AUDIO_PLAYBACK_DEVICE_INVALIDATED        _HRESULT_TYPEDEF_(0xc00d4e86)
+#define MF_E_AUDIO_SERVICE_NOT_RUNNING                _HRESULT_TYPEDEF_(0xc00d4e87)
+
 #define MF_E_TOPO_INVALID_OPTIONAL_NODE               _HRESULT_TYPEDEF_(0xc00d520e)
 #define MF_E_TOPO_CANNOT_FIND_DECRYPTOR               _HRESULT_TYPEDEF_(0xc00d5211)
 #define MF_E_TOPO_CODEC_NOT_FOUND                     _HRESULT_TYPEDEF_(0xc00d5212)
diff --git a/include/mfidl.idl b/include/mfidl.idl
index df48cb3ab9..9c14c5604b 100644
--- a/include/mfidl.idl
+++ b/include/mfidl.idl
@@ -567,6 +567,8 @@ interface IMFSampleGrabberSinkCallback2 : IMFSampleGrabberSinkCallback
 }
 
 cpp_quote("HRESULT WINAPI CreatePropertyStore(IPropertyStore **store);")
+cpp_quote("HRESULT WINAPI MFCreateAudioRenderer(IMFAttributes *config, IMFMediaSink **sink);")
+cpp_quote("HRESULT WINAPI MFCreateAudioRendererActivate(IMFActivate **activate);")
 cpp_quote("HRESULT WINAPI MFCreateMediaSession(IMFAttributes *config, IMFMediaSession **session);")
 cpp_quote("HRESULT WINAPI MFCreateMFByteStreamOnStream(IStream *stream, IMFByteStream **bytestream);" )
 cpp_quote("HRESULT WINAPI MFCreateMFByteStreamOnStreamEx(IUnknown *stream, IMFByteStream **bytestream);")




More information about the wine-cvs mailing list