-
- 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;
- IFilterGraph2 *pF = NULL;
-
- hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
- &IID_IFilterGraph2, (LPVOID*)&pF);
- ok(hr == S_OK, "CoCreateInstance failed with %x\n", hr);
- ok(pF != NULL, "pF is NULL\n");
-
- hr = IFilterGraph2_Release(pF);
- ok(hr == 0, "IFilterGraph2_Release returned: %x\n", hr);