Nikolay Sivov : mf: Add async command for stopping the session.

Alexandre Julliard julliard at winehq.org
Fri Oct 4 16:34:05 CDT 2019


Module: wine
Branch: master
Commit: 3471b779a5aa33fee991cb7e2c8eb3005592a966
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=3471b779a5aa33fee991cb7e2c8eb3005592a966

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Oct  4 14:42:44 2019 +0300

mf: Add async command for stopping the session.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mf/session.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/dlls/mf/session.c b/dlls/mf/session.c
index 6b993b1d60..5ac8bd97ae 100644
--- a/dlls/mf/session.c
+++ b/dlls/mf/session.c
@@ -39,6 +39,7 @@ enum session_command
     SESSION_CMD_SET_TOPOLOGY,
     SESSION_CMD_START,
     SESSION_CMD_PAUSE,
+    SESSION_CMD_STOP,
 };
 
 struct session_op
@@ -736,9 +737,19 @@ static HRESULT WINAPI mfsession_Pause(IMFMediaSession *iface)
 
 static HRESULT WINAPI mfsession_Stop(IMFMediaSession *iface)
 {
-    FIXME("(%p)\n", iface);
+    struct media_session *session = impl_from_IMFMediaSession(iface);
+    struct session_op *op;
+    HRESULT hr;
 
-    return E_NOTIMPL;
+    TRACE("%p.\n", iface);
+
+    if (FAILED(hr = create_session_op(SESSION_CMD_STOP, &op)))
+        return hr;
+
+    hr = session_submit_command(session, op);
+    IUnknown_Release(&op->IUnknown_iface);
+
+    return hr;
 }
 
 static HRESULT WINAPI mfsession_Close(IMFMediaSession *iface)




More information about the wine-cvs mailing list