From: Conor McCarthy cmccarthy@codeweavers.com
--- dlls/mf/session.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c index 67af5ade4ae..076188b3e23 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -4304,8 +4304,15 @@ failed:
if (FAILED(hr = IMFMediaEventGenerator_BeginGetEvent(event_source, iface, (IUnknown *)event_source))) { - WARN("Failed to re-subscribe, hr %#lx.\n", hr); - IMFMediaEventQueue_QueueEvent(session->event_queue, event); + if (hr == MF_E_SHUTDOWN) + { + session_handle_source_shutdown(session); + } + else + { + WARN("Failed to re-subscribe, hr %#lx.\n", hr); + IMFMediaEventQueue_QueueEvent(session->event_queue, event); + } }
if (event)