Maarten Lankhorst : quartz: Only call begin process functions in transform filter when stopped.
Alexandre Julliard
julliard at winehq.org
Mon Jul 7 09:19:06 CDT 2008
Module: wine
Branch: master
Commit: e58855e0e913adc55df56d31020f027d55afe522
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e58855e0e913adc55df56d31020f027d55afe522
Author: Maarten Lankhorst <m.b.lankhorst at 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);
More information about the wine-cvs
mailing list