[PATCH 2/2] quartz: Remove source filter added by IGraphBuilder::RenderFile on failure
Tim Clem
tclem at codeweavers.com
Mon Jun 28 13:46:47 CDT 2021
Signed-off-by: Tim Clem <tclem at codeweavers.com>
---
dlls/quartz/filtergraph.c | 7 ++++++-
dlls/quartz/tests/filtergraph.c | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c
index f509bdad332..026b9cb8f72 100644
--- a/dlls/quartz/filtergraph.c
+++ b/dlls/quartz/filtergraph.c
@@ -1430,8 +1430,13 @@ static HRESULT WINAPI FilterGraph2_RenderFile(IFilterGraph2 *iface, LPCWSTR lpcw
}
IEnumPins_Release(penumpins);
- if (!any)
+ if (!any) {
+ hr = IFilterGraph2_RemoveFilter(iface, preader);
+ if (FAILED(hr)) {
+ WARN("Unable to remove reader for unplayable source, hr: %#x\n", hr);
+ }
hr = VFW_E_CANNOT_RENDER;
+ }
else if (partial)
hr = VFW_S_PARTIAL_RENDER;
else
diff --git a/dlls/quartz/tests/filtergraph.c b/dlls/quartz/tests/filtergraph.c
index a509a07872c..70ab490dbe3 100644
--- a/dlls/quartz/tests/filtergraph.c
+++ b/dlls/quartz/tests/filtergraph.c
@@ -4224,7 +4224,7 @@ static void test_renderfile_failure(void)
else {
hr = IBaseFilter_QueryFilterInfo(filter, &filter_info);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- todo_wine ok(0, "Unexpected filter %p (%s) left in graph.\n",
+ ok(0, "Unexpected filter %p (%s) left in graph.\n",
filter, wine_dbgstr_w(filter_info.achName));
}
--
2.32.0
More information about the wine-devel
mailing list