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