mfmediaengine: Pause the session in media_engine_Pause.

This commit is contained in:
Shaun Ren 2022-12-17 00:30:26 -05:00 committed by Alexandre Julliard
parent adbc4b666d
commit 5ef7a45bc9

View file

@ -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);