Zebediah Figura : qedit/tests: Test (dis)connecting while not stopped.

Alexandre Julliard julliard at winehq.org
Thu Nov 19 16:10:23 CST 2020


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Thu Nov 19 11:19:35 2020 -0600

qedit/tests: Test (dis)connecting while not stopped.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/qedit/tests/nullrenderer.c  | 17 +++++++++++++++++
 dlls/qedit/tests/samplegrabber.c | 31 +++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)

diff --git a/dlls/qedit/tests/nullrenderer.c b/dlls/qedit/tests/nullrenderer.c
index 754228d770b..1800f4dad4c 100644
--- a/dlls/qedit/tests/nullrenderer.c
+++ b/dlls/qedit/tests/nullrenderer.c
@@ -803,6 +803,7 @@ static void test_connect_pin(void)
     IBaseFilter *filter = create_null_renderer();
     struct testfilter source;
     IMemAllocator *allocator;
+    IMediaControl *control;
     IFilterGraph2 *graph;
     IMemInputPin *input;
     AM_MEDIA_TYPE mt;
@@ -816,6 +817,7 @@ static void test_connect_pin(void)
             &IID_IFilterGraph2, (void **)&graph);
     IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, L"source");
     IFilterGraph2_AddFilter(graph, filter, L"sink");
+    IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control);
 
     IBaseFilter_FindPin(filter, L"In", &pin);
 
@@ -827,6 +829,13 @@ static void test_connect_pin(void)
     hr = IPin_ConnectionMediaType(pin, &mt);
     ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#x.\n", hr);
 
+    hr = IMediaControl_Pause(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IFilterGraph2_ConnectDirect(graph, &source.source.pin.IPin_iface, pin, &req_mt);
+    ok(hr == VFW_E_NOT_STOPPED, "Got hr %#x.\n", hr);
+    hr = IMediaControl_Stop(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
     hr = IFilterGraph2_ConnectDirect(graph, &source.source.pin.IPin_iface, pin, &req_mt);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
 
@@ -839,6 +848,13 @@ static void test_connect_pin(void)
     ok(hr == S_OK, "Got hr %#x.\n", hr);
     ok(!memcmp(&mt, &req_mt, sizeof(AM_MEDIA_TYPE)), "Media types didn't match.\n");
 
+    hr = IMediaControl_Pause(control);
+    ok(hr == S_FALSE, "Got hr %#x.\n", hr);
+    hr = IFilterGraph2_Disconnect(graph, pin);
+    ok(hr == VFW_E_NOT_STOPPED, "Got hr %#x.\n", hr);
+    hr = IMediaControl_Stop(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
     IPin_QueryInterface(pin, &IID_IMemInputPin, (void **)&input);
 
     test_allocator(input);
@@ -875,6 +891,7 @@ static void test_connect_pin(void)
 
     IMemInputPin_Release(input);
     IPin_Release(pin);
+    IMediaControl_Release(control);
     ref = IFilterGraph2_Release(graph);
     ok(!ref, "Got outstanding refcount %d.\n", ref);
     ref = IBaseFilter_Release(filter);
diff --git a/dlls/qedit/tests/samplegrabber.c b/dlls/qedit/tests/samplegrabber.c
index 8e68e3efae1..3a1d1a16ce6 100644
--- a/dlls/qedit/tests/samplegrabber.c
+++ b/dlls/qedit/tests/samplegrabber.c
@@ -769,6 +769,7 @@ static void test_connect_pin(void)
     IPin *sink, *source, *peer;
     IEnumMediaTypes *enummt;
     ISampleGrabber *grabber;
+    IMediaControl *control;
     AM_MEDIA_TYPE mt, *pmt;
     IFilterGraph2 *graph;
     HRESULT hr;
@@ -781,6 +782,7 @@ static void test_connect_pin(void)
     IFilterGraph2_AddFilter(graph, &testsource.filter.IBaseFilter_iface, L"source");
     IFilterGraph2_AddFilter(graph, &testsink.filter.IBaseFilter_iface, L"sink");
     IFilterGraph2_AddFilter(graph, filter, L"sample grabber");
+    IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control);
     IBaseFilter_FindPin(filter, L"In", &sink);
     IBaseFilter_FindPin(filter, L"Out", &source);
     IBaseFilter_QueryInterface(filter, &IID_ISampleGrabber, (void **)&grabber);
@@ -802,6 +804,13 @@ static void test_connect_pin(void)
     hr = IPin_ConnectionMediaType(sink, &mt);
     ok(hr == VFW_E_NOT_CONNECTED, "Got hr %#x.\n", hr);
 
+    hr = IMediaControl_Pause(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IFilterGraph2_ConnectDirect(graph, &testsource.source.pin.IPin_iface, sink, &req_mt);
+    ok(hr == VFW_E_NOT_STOPPED, "Got hr %#x.\n", hr);
+    hr = IMediaControl_Stop(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
     hr = IFilterGraph2_ConnectDirect(graph, &testsource.source.pin.IPin_iface, sink, &req_mt);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
 
@@ -814,6 +823,13 @@ static void test_connect_pin(void)
     ok(hr == S_OK, "Got hr %#x.\n", hr);
     ok(compare_media_types(&mt, &req_mt), "Media types didn't match.\n");
 
+    hr = IMediaControl_Pause(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IFilterGraph2_Disconnect(graph, sink);
+    ok(hr == VFW_E_NOT_STOPPED, "Got hr %#x.\n", hr);
+    hr = IMediaControl_Stop(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
     hr = ISampleGrabber_GetConnectedMediaType(grabber, NULL);
     ok(hr == E_POINTER, "Got hr %#x.\n", hr);
 
@@ -874,6 +890,13 @@ static void test_connect_pin(void)
 
     /* Exact connection. */
 
+    hr = IMediaControl_Pause(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IFilterGraph2_ConnectDirect(graph, source, &testsink.sink.pin.IPin_iface, &req_mt);
+    ok(hr == VFW_E_NOT_STOPPED, "Got hr %#x.\n", hr);
+    hr = IMediaControl_Stop(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
     req_mt.bTemporalCompression = FALSE;
     hr = IFilterGraph2_ConnectDirect(graph, source, &testsink.sink.pin.IPin_iface, &req_mt);
     ok(hr == VFW_E_TYPE_NOT_ACCEPTED, "Got hr %#x.\n", hr);
@@ -893,6 +916,13 @@ static void test_connect_pin(void)
     ok(compare_media_types(&testsink.sink.pin.mt, &req_mt), "Media types didn't match.\n");
     ok(compare_media_types(&testsource.source.pin.mt, &testsink.sink.pin.mt), "Media types didn't match.\n");
 
+    hr = IMediaControl_Pause(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IFilterGraph2_Disconnect(graph, source);
+    ok(hr == VFW_E_NOT_STOPPED, "Got hr %#x.\n", hr);
+    hr = IMediaControl_Stop(control);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
     hr = IFilterGraph2_Disconnect(graph, source);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
     hr = IFilterGraph2_Disconnect(graph, source);
@@ -1025,6 +1055,7 @@ static void test_connect_pin(void)
 
     IPin_Release(sink);
     IPin_Release(source);
+    IMediaControl_Release(control);
     ref = IFilterGraph2_Release(graph);
     ok(!ref, "Got outstanding refcount %d.\n", ref);
     ISampleGrabber_Release(grabber);




More information about the wine-cvs mailing list