From: Brendan McGrath <bmcgrath@codeweavers.com> --- dlls/mf/tests/mf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index 48ec89a39c8..98c5550b014 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -1702,12 +1702,17 @@ static ULONG WINAPI test_media_stream_Release(IMFMediaStream *iface) { struct test_media_stream *stream = impl_from_IMFMediaStream(iface); ULONG refcount = InterlockedDecrement(&stream->refcount); + HRESULT hr; if (!refcount) { if (stream->delayed_sample) IMFSample_Release(stream->delayed_sample); + hr = IMFMediaEventQueue_Shutdown(stream->event_queue); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); IMFMediaEventQueue_Release(stream->event_queue); + IMFMediaSource_Release(stream->source); + IMFStreamDescriptor_Release(stream->sd); free(stream); } @@ -1932,7 +1937,10 @@ static ULONG WINAPI test_source_Release(IMFMediaSource *iface) if (!refcount) { + IMFMediaEventQueue_Shutdown(source->event_queue); IMFMediaEventQueue_Release(source->event_queue); + if (source->pd) + IMFPresentationDescriptor_Release(source->pd); free(source); } @@ -2171,12 +2179,16 @@ static HRESULT WINAPI test_source_Shutdown(IMFMediaSource *iface) { struct test_source *source = impl_test_source_from_IMFMediaSource(iface); HRESULT hr; + int i; add_object_state(&actual_object_state_record, SOURCE_SHUTDOWN); hr = IMFMediaEventQueue_Shutdown(source->event_queue); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + for (i = 0; i < source->stream_count; ++i) + IMFMediaStream_Release(&source->streams[i]->IMFMediaStream_iface); + return S_OK; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9646