Maarten Lankhorst : quartz: Only call begin process functions in transform filter when stopped.
Module: wine Branch: master Commit: e58855e0e913adc55df56d31020f027d55afe522 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e58855e0e913adc55df56d3102... Author: Maarten Lankhorst <m.b.lankhorst(a)gmail.com> Date: Fri Jul 4 18:42:09 2008 -0700 quartz: Only call begin process functions in transform filter when stopped. Fixes some graphical glitches that may occur otherwise. --- dlls/quartz/transform.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dlls/quartz/transform.c b/dlls/quartz/transform.c index f37e9e3..d073970 100644 --- a/dlls/quartz/transform.c +++ b/dlls/quartz/transform.c @@ -349,7 +349,7 @@ static HRESULT WINAPI TransformFilter_Pause(IBaseFilter * iface) EnterCriticalSection(&This->csFilter); { if (This->state == State_Stopped) - IBaseFilter_Run(iface, -1); + ((InputPin *)This->ppPins[0])->end_of_stream = 0; This->state = State_Paused; } @@ -368,13 +368,15 @@ static HRESULT WINAPI TransformFilter_Run(IBaseFilter * iface, REFERENCE_TIME tS EnterCriticalSection(&This->csFilter); { if (This->state == State_Stopped) + { ((InputPin *)This->ppPins[0])->end_of_stream = 0; + if (This->pFuncsTable->pfnProcessBegin) + This->pFuncsTable->pfnProcessBegin(This); + OutputPin_CommitAllocator((OutputPin *)This->ppPins[1]); + } This->rtStreamStart = tStart; This->state = State_Running; - OutputPin_CommitAllocator((OutputPin *)This->ppPins[1]); - if (This->pFuncsTable->pfnProcessBegin) - This->pFuncsTable->pfnProcessBegin(This); } LeaveCriticalSection(&This->csFilter);
participants (1)
-
Alexandre Julliard