Chris Robinson : quartz: Tell filters to stop sending data when the chain is broken.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Apr 4 15:40:07 CDT 2007


Module: wine
Branch: master
Commit: 30abd4ed155730b534897e05cec9a44454e4e05a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=30abd4ed155730b534897e05cec9a44454e4e05a

Author: Chris Robinson <chris.kcat at gmail.com>
Date:   Tue Apr  3 11:04:59 2007 -0700

quartz: Tell filters to stop sending data when the chain is broken.

---

 dlls/quartz/pin.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c
index 6791c2d..48cedfc 100644
--- a/dlls/quartz/pin.c
+++ b/dlls/quartz/pin.c
@@ -913,7 +913,10 @@ HRESULT OutputPin_SendSample(OutputPin * This, IMediaSample * pSample)
          * then it causes some problems (most notably with the native Video
          * Renderer) if we are re-entered for whatever reason */
         hr = IMemInputPin_Receive(pMemConnected, pSample);
-        IBaseFilter_Release(pinInfo.pFilter);
+
+        /* If the filter's destroyed, tell upstream to stop sending data */
+        if(IBaseFilter_Release(pinInfo.pFilter) == 0 && SUCCEEDED(hr))
+            hr = S_FALSE;
     }
     if (pMemConnected)
         IMemInputPin_Release(pMemConnected);




More information about the wine-cvs mailing list