From: Shaun Ren sren@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)
From: Shaun Ren sren@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;
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.
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.