[PATCH 2/4] mf/session: Reset END_OF_PRESENTATION flags when stopped.
Nikolay Sivov
nsivov at codeweavers.com
Tue Jun 15 04:00:12 CDT 2021
From: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/mf/session.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c
index a7f81e694c2..a7f58e0fb29 100644
--- a/dlls/mf/session.c
+++ b/dlls/mf/session.c
@@ -943,6 +943,17 @@ static void session_pause(struct media_session *session)
session_set_paused(session, hr);
}
+static void session_clear_end_of_presentation(struct media_session *session)
+{
+ struct media_source *source;
+
+ session->presentation.flags &= ~SESSION_FLAG_END_OF_PRESENTATION;
+ LIST_FOR_EACH_ENTRY(source, &session->presentation.sources, struct media_source, entry)
+ {
+ source->flags &= ~SOURCE_FLAG_END_OF_PRESENTATION;
+ }
+}
+
static void session_set_stopped(struct media_session *session, HRESULT status)
{
MediaEventType event_type;
@@ -957,6 +968,7 @@ static void session_set_stopped(struct media_session *session, HRESULT status)
IMFMediaEventQueue_QueueEvent(session->event_queue, event);
IMFMediaEvent_Release(event);
}
+ session_clear_end_of_presentation(session);
session_command_complete(session);
}
--
2.30.2
More information about the wine-devel
mailing list