Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- 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 86a0c2f36e..bb3eba7eee 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 62e70954f0..bf62f62f72 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);