[PATCH 1/4] evr/tests: Fix Vista failures when checking the IMFQualityAdvise* interfaces.

Francois Gouget fgouget at codeweavers.com
Thu Nov 26 10:40:33 CST 2020


Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---

I propose the following where I moved the interface tests out of the 
generic check_*_interface() methods.

I also split the parts dealing with the crashes in 
test_MFCreateVideoSampleAllocator() and then in 
test_presenter_quality_control() in parts 2 and 3.

Finally I added one more patch to deal with the remaining 
GetNativeVideoSize() failures.

 dlls/evr/tests/evr.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/dlls/evr/tests/evr.c b/dlls/evr/tests/evr.c
index 31434bde43a..cfab5e73070 100644
--- a/dlls/evr/tests/evr.c
+++ b/dlls/evr/tests/evr.c
@@ -1152,9 +1152,18 @@ static void test_default_presenter(void)
     check_interface(presenter, &IID_IMFClockStateSink, TRUE);
     check_interface(presenter, &IID_IMFVideoPresenter, TRUE);
     check_interface(presenter, &IID_IMFVideoDeviceID, TRUE);
-    check_interface(presenter, &IID_IMFQualityAdvise, TRUE);
+
+    hr = IUnknown_QueryInterface(presenter, &IID_IMFQualityAdvise, (void **)&unk);
+    ok(hr == S_OK || broken(hr == E_NOINTERFACE) /* Vista */, "Got hr %#x\n", hr);
+    if (SUCCEEDED(hr))
+        IUnknown_Release(unk);
+
     check_interface(presenter, &IID_IDirect3DDeviceManager9, TRUE);
-    todo_wine check_interface(presenter, &IID_IMFQualityAdviseLimits, TRUE);
+    hr = IUnknown_QueryInterface(presenter, &IID_IMFQualityAdviseLimits, (void **)&unk);
+    todo_wine ok(hr == S_OK || broken(hr == E_NOINTERFACE) /* Vista */, "Got hr %#x\n", hr);
+    if (SUCCEEDED(hr))
+        IUnknown_Release(unk);
+
     check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoPositionMapper, TRUE);
     check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoDisplayControl, TRUE);
     check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoPresenter, TRUE);
@@ -1164,8 +1173,17 @@ static void test_default_presenter(void)
     check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFRateSupport, TRUE);
     check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFGetService, TRUE);
     check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoDeviceID, TRUE);
-    check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFQualityAdvise, TRUE);
-    todo_wine check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFQualityAdviseLimits, TRUE);
+
+    hr = MFGetService((IUnknown*)presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFQualityAdvise, (void **)&unk);
+    ok(hr == S_OK || broken(hr == E_NOINTERFACE) /* Vista */, "Got hr %#x\n", hr);
+    if (SUCCEEDED(hr))
+        IUnknown_Release(unk);
+
+    hr = MFGetService((IUnknown*)presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFQualityAdviseLimits, (void **)&unk);
+    todo_wine ok(hr == S_OK || broken(hr == E_NOINTERFACE) /* Vista */, "Got hr %#x\n", hr);
+    if (SUCCEEDED(hr))
+        IUnknown_Release(unk);
+
     check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IMFTransform, FALSE);
     check_service_interface(presenter, &MR_VIDEO_RENDER_SERVICE, &IID_IDirect3DDeviceManager9, TRUE);
     check_service_interface(presenter, &MR_VIDEO_ACCELERATION_SERVICE, &IID_IDirect3DDeviceManager9, TRUE);
-- 
2.20.1




More information about the wine-devel mailing list