Maarten Lankhorst : quartz: Handle seeking while running better.

Alexandre Julliard julliard at winehq.org
Tue Dec 14 10:55:42 CST 2010


Module: wine
Branch: master
Commit: b353f32453da4bfe6aaccbb9effef48e7ae679ff
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b353f32453da4bfe6aaccbb9effef48e7ae679ff

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Fri Dec 10 16:06:55 2010 +0100

quartz: Handle seeking while running better.

---

 dlls/quartz/filtergraph.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c
index 50a045e..05b6e47 100644
--- a/dlls/quartz/filtergraph.c
+++ b/dlls/quartz/filtergraph.c
@@ -2471,17 +2471,18 @@ static HRESULT WINAPI MediaSeeking_SetPositions(IMediaSeeking *iface,
     else if ((dwStopFlags & 0x7) != AM_SEEKING_NoPositioning)
         FIXME("Stop position not handled yet!\n");
 
+    if (state == State_Running && !(dwCurrentFlags & AM_SEEKING_NoFlush))
+        IMediaControl_Pause((IMediaControl*)&This->IMediaControl_vtbl);
     args.current = pCurrent;
     args.stop = pStop;
     args.curflags = dwCurrentFlags;
     args.stopflags = dwStopFlags;
     hr = all_renderers_seek(This, found_setposition, (DWORD_PTR)&args);
 
-    if ((dwCurrentFlags & 0x7) != AM_SEEKING_NoPositioning) {
-        if (This->state == State_Running)
-            FIXME("Seeking while graph is running is not properly supported!\n");
+    if ((dwCurrentFlags & 0x7) != AM_SEEKING_NoPositioning)
         This->pause_time = This->start_time = -1;
-    }
+    if (state == State_Running && !(dwCurrentFlags & AM_SEEKING_NoFlush))
+        IMediaControl_Run((IMediaControl*)&This->IMediaControl_vtbl);
     LeaveCriticalSection(&This->cs);
 
     return hr;




More information about the wine-cvs mailing list