[PATCH 1/4] quartz/tests: Test IMediaControl on a fully connected graph.

Zebediah Figura z.figura12 at gmail.com
Tue Feb 27 00:01:25 CST 2018


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/quartz/tests/filtergraph.c | 168 +++++++++++++++-------------------------
 1 file changed, 63 insertions(+), 105 deletions(-)

diff --git a/dlls/quartz/tests/filtergraph.c b/dlls/quartz/tests/filtergraph.c
index 5fd3107..1f2fe20 100644
--- a/dlls/quartz/tests/filtergraph.c
+++ b/dlls/quartz/tests/filtergraph.c
@@ -283,6 +283,68 @@ static void test_basic_video(void)
     IBasicVideo_Release(pbv);
 }
 
+static void test_mediacontrol(void)
+{
+    IMediaSeeking *seeking;
+    IMediaFilter *filter;
+    IMediaControl *control;
+    LONGLONG pos;
+    GUID format;
+    HRESULT hr;
+
+    IGraphBuilder_SetDefaultSyncSource(pgraph);
+    hr = IGraphBuilder_QueryInterface(pgraph, &IID_IMediaSeeking, (void**) &seeking);
+    ok(hr == S_OK, "QueryInterface(IMediaControl) failed: %08x\n", hr);
+
+    hr = IGraphBuilder_QueryInterface(pgraph, &IID_IMediaFilter, (void**) &filter);
+    ok(hr == S_OK, "QueryInterface(IMediaFilter) failed: %08x\n", hr);
+
+    hr = IGraphBuilder_QueryInterface(pgraph, &IID_IMediaControl, (void**) &control);
+    ok(hr == S_OK, "QueryInterface(IMediaControl) failed: %08x\n", hr);
+
+    format = GUID_NULL;
+    hr = IMediaSeeking_GetTimeFormat(seeking, &format);
+    ok(hr == S_OK, "GetTimeFormat failed: %#x\n", hr);
+    ok(IsEqualGUID(&format, &TIME_FORMAT_MEDIA_TIME), "got %s\n", wine_dbgstr_guid(&format));
+
+    pos = 0xdeadbeef;
+    hr = IMediaSeeking_ConvertTimeFormat(seeking, &pos, NULL, 0x123456789a, NULL);
+    ok(hr == S_OK, "ConvertTimeFormat failed: %#x\n", hr);
+    ok(pos == 0x123456789a, "got %s\n", wine_dbgstr_longlong(pos));
+
+    pos = 0xdeadbeef;
+    hr = IMediaSeeking_ConvertTimeFormat(seeking, &pos, &TIME_FORMAT_MEDIA_TIME, 0x123456789a, NULL);
+    ok(hr == S_OK, "ConvertTimeFormat failed: %#x\n", hr);
+    ok(pos == 0x123456789a, "got %s\n", wine_dbgstr_longlong(pos));
+
+    pos = 0xdeadbeef;
+    hr = IMediaSeeking_ConvertTimeFormat(seeking, &pos, NULL, 0x123456789a, &TIME_FORMAT_MEDIA_TIME);
+    ok(hr == S_OK, "ConvertTimeFormat failed: %#x\n", hr);
+    ok(pos == 0x123456789a, "got %s\n", wine_dbgstr_longlong(pos));
+
+    hr = IMediaSeeking_GetCurrentPosition(seeking, &pos);
+    ok(hr == S_OK, "GetCurrentPosition failed: %#x\n", hr);
+    ok(pos == 0, "got %s\n", wine_dbgstr_longlong(pos));
+
+    hr = IMediaSeeking_SetPositions(seeking, NULL, AM_SEEKING_ReturnTime, NULL, AM_SEEKING_NoPositioning);
+    ok(hr == S_OK, "SetPositions failed: %#x\n", hr);
+    hr = IMediaSeeking_SetPositions(seeking, NULL, AM_SEEKING_NoPositioning, NULL, AM_SEEKING_ReturnTime);
+    ok(hr == S_OK, "SetPositions failed: %#x\n", hr);
+
+    IMediaFilter_SetSyncSource(filter, NULL);
+    pos = 0xdeadbeef;
+    hr = IMediaSeeking_GetCurrentPosition(seeking, &pos);
+    ok(hr == S_OK, "GetCurrentPosition failed: %#x\n", hr);
+    ok(pos == 0, "got %s\n", wine_dbgstr_longlong(pos));
+
+    hr = IMediaControl_GetState(control, 1000, NULL);
+    ok(hr == E_POINTER, "expected E_POINTER, got %#x\n", hr);
+
+    IMediaControl_Release(control);
+    IMediaSeeking_Release(seeking);
+    IMediaFilter_Release(filter);
+}
+
 static void rungraph(void)
 {
     HRESULT hr;
@@ -304,6 +366,7 @@ static void rungraph(void)
     IMediaFilter_Release(pmf);
 
     test_basic_video();
+    test_mediacontrol();
 
     hr = IMediaControl_Run(pmc);
     ok(hr==S_FALSE, "Cannot run the graph returned: %x\n", hr);
@@ -555,109 +618,6 @@ static void test_graph_builder(void)
     releasefiltergraph();
 }
 
-static void test_graph_builder_addfilter(void)
-{
-    HRESULT hr;
-    IBaseFilter *pF = NULL;
-    static const WCHAR testFilterW[] = {'t','e','s','t','F','i','l','t','e','r',0};
-
-    if (!createfiltergraph())
-        return;
-
-    hr = IGraphBuilder_AddFilter(pgraph, NULL, testFilterW);
-    ok(hr == E_POINTER, "IGraphBuilder_AddFilter returned: %x\n", hr);
-
-    /* create video filter */
-    hr = CoCreateInstance(&CLSID_VideoRenderer, NULL, CLSCTX_INPROC_SERVER,
-            &IID_IBaseFilter, (LPVOID*)&pF);
-    ok(hr == S_OK, "CoCreateInstance failed with %x\n", hr);
-    ok(pF != NULL, "pF is NULL\n");
-    if (!pF) {
-        skip("failed to created filter, skipping\n");
-        return;
-    }
-
-    hr = IGraphBuilder_AddFilter(pgraph, pF, NULL);
-    ok(hr == S_OK, "IGraphBuilder_AddFilter returned: %x\n", hr);
-    IBaseFilter_Release(pF);
-}
-
-static void test_mediacontrol(void)
-{
-    HRESULT hr;
-    LONGLONG pos = 0xdeadbeef;
-    GUID format = GUID_NULL;
-    IMediaSeeking *seeking = NULL;
-    IMediaFilter *filter = NULL;
-    IMediaControl *control = NULL;
-
-    IGraphBuilder_SetDefaultSyncSource(pgraph);
-    hr = IGraphBuilder_QueryInterface(pgraph, &IID_IMediaSeeking, (void**) &seeking);
-    ok(hr == S_OK, "QueryInterface IMediaControl failed: %08x\n", hr);
-    if (FAILED(hr))
-        return;
-
-    hr = IGraphBuilder_QueryInterface(pgraph, &IID_IMediaFilter, (void**) &filter);
-    ok(hr == S_OK, "QueryInterface IMediaFilter failed: %08x\n", hr);
-    if (FAILED(hr))
-    {
-        IMediaSeeking_Release(seeking);
-        return;
-    }
-
-    hr = IGraphBuilder_QueryInterface(pgraph, &IID_IMediaControl, (void**) &control);
-    ok(hr == S_OK, "QueryInterface IMediaControl failed: %08x\n", hr);
-    if (FAILED(hr))
-    {
-        IMediaSeeking_Release(seeking);
-        IMediaFilter_Release(filter);
-        return;
-    }
-
-    format = GUID_NULL;
-    hr = IMediaSeeking_GetTimeFormat(seeking, &format);
-    ok(hr == S_OK, "GetTimeFormat failed: %08x\n", hr);
-    ok(IsEqualGUID(&format, &TIME_FORMAT_MEDIA_TIME), "GetTimeFormat: unexpected format %s\n", wine_dbgstr_guid(&format));
-
-    pos = 0xdeadbeef;
-    hr = IMediaSeeking_ConvertTimeFormat(seeking, &pos, NULL, 0x123456789a, NULL);
-    ok(hr == S_OK, "ConvertTimeFormat failed: %08x\n", hr);
-    ok(pos == 0x123456789a, "ConvertTimeFormat: expected 123456789a, got (%s)\n", wine_dbgstr_longlong(pos));
-
-    pos = 0xdeadbeef;
-    hr = IMediaSeeking_ConvertTimeFormat(seeking, &pos, &TIME_FORMAT_MEDIA_TIME, 0x123456789a, NULL);
-    ok(hr == S_OK, "ConvertTimeFormat failed: %08x\n", hr);
-    ok(pos == 0x123456789a, "ConvertTimeFormat: expected 123456789a, got (%s)\n", wine_dbgstr_longlong(pos));
-
-    pos = 0xdeadbeef;
-    hr = IMediaSeeking_ConvertTimeFormat(seeking, &pos, NULL, 0x123456789a, &TIME_FORMAT_MEDIA_TIME);
-    ok(hr == S_OK, "ConvertTimeFormat failed: %08x\n", hr);
-    ok(pos == 0x123456789a, "ConvertTimeFormat: expected 123456789a, got (%s)\n", wine_dbgstr_longlong(pos));
-
-    hr = IMediaSeeking_GetCurrentPosition(seeking, &pos);
-    ok(hr == S_OK, "GetCurrentPosition failed: %08x\n", hr);
-    ok(pos == 0, "Position != 0 (%s)\n", wine_dbgstr_longlong(pos));
-
-    hr = IMediaSeeking_SetPositions(seeking, NULL, AM_SEEKING_ReturnTime, NULL, AM_SEEKING_NoPositioning);
-    ok(hr == S_OK, "SetPositions failed: %08x\n", hr);
-    hr = IMediaSeeking_SetPositions(seeking, NULL, AM_SEEKING_NoPositioning, NULL, AM_SEEKING_ReturnTime);
-    ok(hr == S_OK, "SetPositions failed: %08x\n", hr);
-
-    IMediaFilter_SetSyncSource(filter, NULL);
-    pos = 0xdeadbeef;
-    hr = IMediaSeeking_GetCurrentPosition(seeking, &pos);
-    ok(hr == S_OK, "GetCurrentPosition failed: %08x\n", hr);
-    ok(pos == 0, "Position != 0 (%s)\n", wine_dbgstr_longlong(pos));
-
-    hr = IMediaControl_GetState(control, 1000, NULL);
-    ok(hr == E_POINTER, "GetState expected %08x, got %08x\n", E_POINTER, hr);
-
-    IMediaControl_Release(control);
-    IMediaSeeking_Release(seeking);
-    IMediaFilter_Release(filter);
-    releasefiltergraph();
-}
-
 static void test_filter_graph2(void)
 {
     HRESULT hr;
@@ -2344,8 +2304,6 @@ START_TEST(filtergraph)
     test_render_run(avifile);
     test_render_run(mpegfile);
     test_graph_builder();
-    test_graph_builder_addfilter();
-    test_mediacontrol();
     test_filter_graph2();
     test_render_filter_priority();
     test_aggregate_filter_graph();
-- 
2.7.4




More information about the wine-devel mailing list