[PATCH] quartz: Add missing EndFlush in pin and parser

Maarten Lankhorst maarten at codeweavers.com
Mon Sep 15 12:47:44 CDT 2008


---
 dlls/quartz/parser.c |    2 ++
 dlls/quartz/pin.c    |    4 ++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c
index 7f25300..628eab6 100644
--- a/dlls/quartz/parser.c
+++ b/dlls/quartz/parser.c
@@ -231,6 +231,7 @@ HRESULT WINAPI Parser_Stop(IBaseFilter * iface)
     if (This->state == State_Stopped)
     {
         LeaveCriticalSection(&This->csFilter);
+        IAsyncReader_EndFlush(This->pInputPin->pReader);
         LeaveCriticalSection(&pin->thread_lock);
         return S_OK;
     }
@@ -246,6 +247,7 @@ HRESULT WINAPI Parser_Stop(IBaseFilter * iface)
 
     PullPin_PauseProcessing(This->pInputPin);
     PullPin_WaitForStateChange(This->pInputPin, INFINITE);
+    IAsyncReader_EndFlush(This->pInputPin->pReader);
 
     LeaveCriticalSection(&pin->thread_lock);
     return S_OK;
diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c
index bcf09a5..8f78fc3 100644
--- a/dlls/quartz/pin.c
+++ b/dlls/quartz/pin.c
@@ -1790,6 +1790,10 @@ HRESULT WINAPI PullPin_EndFlush(IPin * iface)
     EnterCriticalSection(&This->thread_lock);
     {
         FILTER_STATE state;
+
+        if (This->pReader)
+            IAsyncReader_EndFlush(This->pReader);
+
         IBaseFilter_GetState(This->pin.pinInfo.pFilter, INFINITE, &state);
 
         if (state != State_Stopped)
-- 
1.5.6.5


--------------040508010202030902010008--



More information about the wine-patches mailing list