[PATCH 3/4] quartz/vmr9: Call IVMRSurfaceAllocator9::TerminateDevice() when destroying the filter.
Zebediah Figura
z.figura12 at gmail.com
Mon May 4 18:05:23 CDT 2020
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/quartz/tests/vmr9.c | 2 +-
dlls/quartz/vmr9.c | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c
index c0fb6a6f34a..5c08868fc09 100644
--- a/dlls/quartz/tests/vmr9.c
+++ b/dlls/quartz/tests/vmr9.c
@@ -3272,7 +3272,7 @@ static void test_surface_allocator_notify_refcount(void)
ref = IBaseFilter_Release(filter);
ok(!ref, "Got outstanding refcount %d.\n", ref);
- todo_wine ok(allocator_got_TerminateDevice == 1, "Got %u calls to TerminateDevice().\n",
+ ok(allocator_got_TerminateDevice == 1, "Got %u calls to TerminateDevice().\n",
allocator_got_TerminateDevice);
ok(allocator_refcount == 1, "Got outstanding refcount %d.\n", allocator_refcount);
diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c
index a8f88e3d04b..4fd3e70b96d 100644
--- a/dlls/quartz/vmr9.c
+++ b/dlls/quartz/vmr9.c
@@ -595,7 +595,10 @@ static void vmr_destroy(struct strmbase_renderer *iface)
InterlockedIncrement(&filter->renderer.filter.refcount);
if (filter->allocator)
+ {
+ IVMRSurfaceAllocatorEx9_TerminateDevice(filter->allocator, filter->cookie);
IVMRSurfaceAllocatorEx9_Release(filter->allocator);
+ }
if (filter->presenter)
IVMRImagePresenter9_Release(filter->presenter);
--
2.26.2
More information about the wine-devel
mailing list