From 78c2f08225bf1e8a3e3342fe4d36f597af51451f Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Tue, 20 Oct 2020 16:42:57 -0500 Subject: [PATCH] quartz: Return the paused timestamp from IMediaSeeking::GetCurrentPosition() if the graph is running asynchronously. In this case "graph->stream_start" has not yet been set. This fixes a regression with Blazblue Centralfiction, which incorrectly skipped a video. The application called IMediaControl::Run() and IMediaSeeking::GetCurrentPosition() in quick succession, received an incorrect value for the latter, and consequently believed that the video had already finished. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- dlls/quartz/filtergraph.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c index 4cef1004bdd..e5ae12d9452 100644 --- a/dlls/quartz/filtergraph.c +++ b/dlls/quartz/filtergraph.c @@ -2331,7 +2331,7 @@ static HRESULT WINAPI MediaSeeking_GetCurrentPosition(IMediaSeeking *iface, LONG { ret = graph->stream_stop; } - else if (graph->state == State_Running && graph->refClock) + else if (graph->state == State_Running && !graph->needs_async_run && graph->refClock) { REFERENCE_TIME time; IReferenceClock_GetTime(graph->refClock, &time);