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