Commit 83ae1ff5 authored by Tim Clem's avatar Tim Clem Committed by Alexandre Julliard

quartz: Remove the source filter on failure in IGraphBuilder::RenderFile().

parent d9b95ac0
......@@ -1431,12 +1431,20 @@ static HRESULT WINAPI FilterGraph2_RenderFile(IFilterGraph2 *iface, LPCWSTR lpcw
IEnumPins_Release(penumpins);
if (!any)
{
if (FAILED(hr = IFilterGraph2_RemoveFilter(iface, preader)))
ERR("Failed to remove source filter, hr %#x.\n", hr);
hr = VFW_E_CANNOT_RENDER;
}
else if (partial)
{
hr = VFW_S_PARTIAL_RENDER;
}
else
{
hr = S_OK;
}
}
IBaseFilter_Release(preader);
TRACE("--> %08x\n", hr);
......
......@@ -4216,17 +4216,17 @@ static void test_renderfile_failure(void)
hr = IEnumFilters_Next(filterenum, 1, &filter, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
todo_wine ok(filter == &testfilter.IBaseFilter_iface, "Got unexpected filter %p.\n", filter);
ok(filter == &testfilter.IBaseFilter_iface, "Got unexpected filter %p.\n", filter);
hr = IEnumFilters_Next(filterenum, 1, &filter, NULL);
todo_wine ok(hr == S_FALSE, "Got hr %#x.\n", hr);
ok(hr == S_FALSE, "Got hr %#x.\n", hr);
IEnumFilters_Release(filterenum);
ref = IFilterGraph2_Release(graph);
ok(!ref, "Got outstanding refcount %d.\n", ref);
ret = DeleteFileW(filename);
todo_wine ok(ret, "Failed to delete %s, error %u.\n", debugstr_w(filename), GetLastError());
ok(ret, "Failed to delete %s, error %u.\n", debugstr_w(filename), GetLastError());
}
/* Remove and re-add the filter, to flush the graph's internal
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment