[PATCH 0/1] MR4828: mf: Only preroll when starting from stopped state.
Stream sink such as evr can't be prerolled a second time, and when we are restarting from a paused state, those stream sink will already be prerolled so don't preroll them again. Otherwise we will be waiting for Prerolled events that will never come. Split from !4545, splitting the fix from the tests because turns out the tests are contentious. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4828
From: Yuxuan Shui <yshui(a)codeweavers.com> Stream sink such as evr can't be prerolled a second time, and when we are restarting from a paused state, those stream sink will already be prerolled so don't preroll them again. Otherwise we will be waiting for Prerolled events that will never come. --- dlls/mf/session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/mf/session.c b/dlls/mf/session.c index db742350161..3a7133b28ba 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -2927,7 +2927,7 @@ static void session_set_source_object_state(struct media_session *session, IUnkn session_set_presentation_clock(session); - if (session->presentation.flags & SESSION_FLAG_NEEDS_PREROLL) + if ((session->presentation.flags & SESSION_FLAG_NEEDS_PREROLL) && session_is_output_nodes_state(session, OBJ_STATE_STOPPED)) { MFTIME preroll_time = 0; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4828
participants (2)
-
Yuxuan Shui -
Yuxuan Shui (@yshui)