From: Yuxuan Shui yshui@codeweavers.com
Co-authored-by: Rémi Bernon rbernon@codeweavers.com --- dlls/mf/session.c | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c index ef956298a0a..975431672b4 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -876,15 +876,8 @@ static void session_clear_command_list(struct media_session *session) /* Checking this flag is unnecessary if this function is only called * from the callback or upon release, but do it for consistency and * in case a call from elsewhere is added. */ - BOOL submitted = session->command_state == COMMAND_STATE_SUBMITTED; - LIST_FOR_EACH_ENTRY_SAFE(op, op2, &session->commands, struct session_op, entry) { - if (submitted) - { - submitted = FALSE; - continue; - } list_remove(&op->entry); IUnknown_Release(&op->IUnknown_iface); } @@ -2789,21 +2782,7 @@ static HRESULT WINAPI session_commands_callback_Invoke(IMFAsyncCallback *iface,
EnterCriticalSection(&session->cs);
- if (session->command_state != COMMAND_STATE_COMPLETE && - session->command_state != COMMAND_STATE_SUBMITTED) - { - WARN("session %p command is in progress, waiting for it to complete.\n", session); - LeaveCriticalSection(&session->cs); - return S_OK; - } - - if (&op->entry == list_head(&session->commands) && session->command_state == COMMAND_STATE_SUBMITTED) - session->command_state = COMMAND_STATE_COMPLETE; - else if (session->command_state == COMMAND_STATE_SUBMITTED) - WARN("invoked command is not the one submitted.\n"); - else - WARN("no command was submitted.\n"); - + assert( session->command_state == COMMAND_STATE_SUBMITTED ); list_remove(&op->entry);
switch (op->command) @@ -2969,11 +2948,12 @@ static void session_handle_source_shutdown(struct media_session *session) session->state = SESSION_STATE_CLOSED; session_command_complete_with_event(session, MESessionClosed, MF_E_SHUTDOWN, NULL); break; - case COMMAND_STATE_SUBMITTED: case COMMAND_STATE_COMPLETE: if (session->state == SESSION_STATE_STARTED || session->state == SESSION_STATE_PAUSED) session_set_stopped(session, MESessionStopped, MF_E_SHUTDOWN); break; + case COMMAND_STATE_SUBMITTED: + break; }
session->presentation.flags |= SESSION_FLAG_SOURCE_SHUTDOWN;