Module: wine Branch: master Commit: b353f32453da4bfe6aaccbb9effef48e7ae679ff URL: http://source.winehq.org/git/wine.git/?a=commit;h=b353f32453da4bfe6aaccbb9ef...
Author: Maarten Lankhorst m.b.lankhorst@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;