From 5ef7a45bc9bbb21c1892ce939670302f15214601 Mon Sep 17 00:00:00 2001 From: Shaun Ren Date: Sat, 17 Dec 2022 00:30:26 -0500 Subject: [PATCH] mfmediaengine: Pause the session in media_engine_Pause. --- dlls/mfmediaengine/main.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/mfmediaengine/main.c b/dlls/mfmediaengine/main.c index 27dafd616a2..63e9a8f07d5 100644 --- a/dlls/mfmediaengine/main.c +++ b/dlls/mfmediaengine/main.c @@ -1952,11 +1952,14 @@ static HRESULT WINAPI media_engine_Pause(IMFMediaEngineEx *iface) { if (!(engine->flags & FLAGS_ENGINE_PAUSED)) { - media_engine_set_flag(engine, FLAGS_ENGINE_WAITING | FLAGS_ENGINE_IS_ENDED, FALSE); - media_engine_set_flag(engine, FLAGS_ENGINE_PAUSED, TRUE); + if (SUCCEEDED(hr = IMFMediaSession_Pause(engine->session))) + { + media_engine_set_flag(engine, FLAGS_ENGINE_WAITING | FLAGS_ENGINE_IS_ENDED, FALSE); + media_engine_set_flag(engine, FLAGS_ENGINE_PAUSED, TRUE); - IMFMediaEngineNotify_EventNotify(engine->callback, MF_MEDIA_ENGINE_EVENT_TIMEUPDATE, 0, 0); - IMFMediaEngineNotify_EventNotify(engine->callback, MF_MEDIA_ENGINE_EVENT_PAUSE, 0, 0); + IMFMediaEngineNotify_EventNotify(engine->callback, MF_MEDIA_ENGINE_EVENT_TIMEUPDATE, 0, 0); + IMFMediaEngineNotify_EventNotify(engine->callback, MF_MEDIA_ENGINE_EVENT_PAUSE, 0, 0); + } } IMFMediaEngineNotify_EventNotify(engine->callback, MF_MEDIA_ENGINE_EVENT_PURGEQUEUEDEVENTS, 0, 0);