From: Conor McCarthy cmccarthy@codeweavers.com
--- dlls/mf/session.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c index abc77d9f143..062f415364e 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -2198,8 +2198,8 @@ static ULONG WINAPI mfsession_Release(IMFMediaSession *iface)
if (!refcount) { - session_clear_queued_topologies(session); - session_clear_presentation(session); + if (SUCCEEDED(session_is_shut_down(session))) + IMFMediaSession_Shutdown(iface); session_clear_command_list(session); if (session->presentation.current_topology) IMFTopology_Release(session->presentation.current_topology); @@ -2477,8 +2477,6 @@ static HRESULT WINAPI mfsession_Shutdown(IMFMediaSession *iface) if (session->quality_manager) IMFQualityManager_Shutdown(session->quality_manager); MFShutdownObject((IUnknown *)session->clock); - IMFPresentationClock_Release(session->clock); - session->clock = NULL; session_clear_presentation(session); session_clear_queued_topologies(session); session_submit_simple_command(session, SESSION_CMD_SHUTDOWN);