From: Brendan McGrath bmcgrath@codeweavers.com
Fixes the missing MESessionClosed event in this scenario. --- dlls/mf/session.c | 1 + dlls/mf/tests/mf.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c index 865399488ae..99e7b0872fb 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -1274,6 +1274,7 @@ static void session_close(struct media_session *session) switch (session->state) { case SESSION_STATE_STOPPED: + case SESSION_STATE_RESTARTING_SOURCES: hr = session_finalize_sinks(session); break; case SESSION_STATE_STARTED: diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index 5d0833e155c..231b26e36af 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -6332,7 +6332,6 @@ static void test_media_session_Start(void) hr = IMFMediaSession_Close(session); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); hr = wait_media_event(session, callback, MESessionClosed, 1000, &propvar); - todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); hr = IMFMediaSession_Shutdown(session); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);