[PATCH 0/2] MR1832: mfmediaengine: Pause the session in media_engine_Pause.
From: Shaun Ren <sren(a)codeweavers.com> --- dlls/mfmediaengine/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/mfmediaengine/main.c b/dlls/mfmediaengine/main.c index f2fae1cac3e..27dafd616a2 100644 --- a/dlls/mfmediaengine/main.c +++ b/dlls/mfmediaengine/main.c @@ -2123,7 +2123,7 @@ static HRESULT WINAPI media_engine_Shutdown(IMFMediaEngineEx *iface) struct media_engine *engine = impl_from_IMFMediaEngineEx(iface); HRESULT hr = S_OK; - FIXME("(%p): stub.\n", iface); + TRACE("%p.\n", iface); EnterCriticalSection(&engine->cs); if (engine->flags & FLAGS_ENGINE_SHUT_DOWN) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1832
From: Shaun Ren <sren(a)codeweavers.com> --- dlls/mfmediaengine/main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dlls/mfmediaengine/main.c b/dlls/mfmediaengine/main.c index 27dafd616a2..a58edb245fc 100644 --- a/dlls/mfmediaengine/main.c +++ b/dlls/mfmediaengine/main.c @@ -1952,6 +1952,9 @@ static HRESULT WINAPI media_engine_Pause(IMFMediaEngineEx *iface) { if (!(engine->flags & FLAGS_ENGINE_PAUSED)) { + if (FAILED(hr = IMFMediaSession_Pause(engine->session))) + goto done; + media_engine_set_flag(engine, FLAGS_ENGINE_WAITING | FLAGS_ENGINE_IS_ENDED, FALSE); media_engine_set_flag(engine, FLAGS_ENGINE_PAUSED, TRUE); @@ -1962,6 +1965,7 @@ static HRESULT WINAPI media_engine_Pause(IMFMediaEngineEx *iface) IMFMediaEngineNotify_EventNotify(engine->callback, MF_MEDIA_ENGINE_EVENT_PURGEQUEUEDEVENTS, 0, 0); } +done: LeaveCriticalSection(&engine->cs); return hr; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1832
Nikolay Sivov (@nsivov) commented about dlls/mfmediaengine/main.c:
{ if (!(engine->flags & FLAGS_ENGINE_PAUSED)) { + if (FAILED(hr = IMFMediaSession_Pause(engine->session))) + goto done; +
Please rework this without a goto. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1832#note_19935
Nikolay Sivov (@nsivov) commented about dlls/mfmediaengine/main.c:
struct media_engine *engine = impl_from_IMFMediaEngineEx(iface); HRESULT hr = S_OK;
- FIXME("(%p): stub.\n", iface); + TRACE("%p.\n", iface);
Yes, this is fine. I don't remember what I thought was missing to justify a fixme. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1832#note_19936
participants (3)
-
Nikolay Sivov (@nsivov) -
Shaun Ren -
Shaun Ren (@shaunren)