quartz: Remove the source filter on failure in IGraphBuilder::RenderFile().
Signed-off-by: Tim Clem <tclem@codeweavers.com> Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d9b95ac0df
commit
83ae1ff59a
|
@ -1431,11 +1431,19 @@ 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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue