Nikolay Sivov : evr/tests: Add some more presenter tests for shutdown state.

Alexandre Julliard julliard at winehq.org
Wed Oct 27 16:26:03 CDT 2021


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Oct 27 17:23:05 2021 +0300

evr/tests: Add some more presenter tests for shutdown state.

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

---

 dlls/evr/tests/evr.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/dlls/evr/tests/evr.c b/dlls/evr/tests/evr.c
index 8e3288afaec..b7e3ad174df 100644
--- a/dlls/evr/tests/evr.c
+++ b/dlls/evr/tests/evr.c
@@ -2323,8 +2323,19 @@ done:
 static void test_presenter_shutdown(void)
 {
     IMFTopologyServiceLookupClient *lookup_client;
+    IMFVideoDisplayControl *display_control;
+    IMFVideoMediaType *media_type;
     IMFVideoPresenter *presenter;
+    IMFVideoDeviceID *deviceid;
+    HWND window, window2;
     HRESULT hr;
+    DWORD mode;
+    RECT rect;
+    SIZE size;
+    IID iid;
+
+    window = create_window();
+    ok(!!window, "Failed to create test window.\n");
 
     hr = MFCreateVideoPresenter(NULL, &IID_IDirect3DDevice9, &IID_IMFVideoPresenter, (void **)&presenter);
     ok(hr == S_OK, "Failed to create default presenter, hr %#x.\n", hr);
@@ -2332,6 +2343,12 @@ static void test_presenter_shutdown(void)
     hr = IMFVideoPresenter_QueryInterface(presenter, &IID_IMFTopologyServiceLookupClient, (void **)&lookup_client);
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
 
+    hr = IMFVideoPresenter_QueryInterface(presenter, &IID_IMFVideoDeviceID, (void **)&deviceid);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoPresenter_QueryInterface(presenter, &IID_IMFVideoDisplayControl, (void **)&display_control);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
     hr = IMFTopologyServiceLookupClient_ReleaseServicePointers(lookup_client);
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
 
@@ -2350,12 +2367,56 @@ todo_wine
 todo_wine
     ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#x.\n", hr);
 
+    hr = IMFVideoPresenter_GetCurrentMediaType(presenter, &media_type);
+    ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDeviceID_GetDeviceID(deviceid, &iid);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_GetNativeVideoSize(display_control, &size, &size);
+todo_wine
+    ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_GetIdealVideoSize(display_control, &size, &size);
+todo_wine
+    ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#x.\n", hr);
+
+    SetRect(&rect, 0, 0, 10, 10);
+    hr = IMFVideoDisplayControl_SetVideoPosition(display_control, NULL, &rect);
+    ok(hr == E_POINTER, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_GetVideoPosition(display_control, NULL, &rect);
+    ok(hr == E_POINTER, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_SetAspectRatioMode(display_control, MFVideoARMode_None);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_GetAspectRatioMode(display_control, &mode);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_SetVideoWindow(display_control, window);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_SetVideoPosition(display_control, NULL, &rect);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_GetVideoWindow(display_control, &window2);
+    ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+    hr = IMFVideoDisplayControl_RepaintVideo(display_control);
+todo_wine
+    ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#x.\n", hr);
+
     hr = IMFTopologyServiceLookupClient_ReleaseServicePointers(lookup_client);
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
 
+    IMFVideoDeviceID_Release(deviceid);
+    IMFVideoDisplayControl_Release(display_control);
     IMFTopologyServiceLookupClient_Release(lookup_client);
 
     IMFVideoPresenter_Release(presenter);
+
+    DestroyWindow(window);
 }
 
 static void test_mixer_output_rectangle(void)




More information about the wine-cvs mailing list