From 693bdc63d40321dcb8ddd5a1fdedd717e7fcbb1a Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Wed, 22 Apr 2020 16:32:12 +0300 Subject: [PATCH] mf: Shutdown SAR sink on ShutdownObject(). Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/mf/sar.c | 8 +++++++- dlls/mf/tests/mf.c | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/dlls/mf/sar.c b/dlls/mf/sar.c index 86a0c2f36ec..bb3eba7eee9 100644 --- a/dlls/mf/sar.c +++ b/dlls/mf/sar.c @@ -1569,7 +1569,13 @@ failed: static void sar_shutdown_object(void *user_context, IUnknown *obj) { - /* FIXME: shut down sink */ + IMFMediaSink *sink; + + if (SUCCEEDED(IUnknown_QueryInterface(obj, &IID_IMFMediaSink, (void **)&sink))) + { + IMFMediaSink_Shutdown(sink); + IMFMediaSink_Release(sink); + } } static void sar_free_private(void *user_context) diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index 62e70954f00..bf62f62f725 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -3079,7 +3079,6 @@ todo_wine ok(hr == S_OK, "Failed to shut down, hr %#x.\n", hr); hr = IMFMediaSink_GetCharacteristics(sink, &flags); -todo_wine ok(hr == MF_E_SHUTDOWN, "Unexpected hr %#x.\n", hr); IMFMediaSink_Release(sink);