Maarten Lankhorst : quartz: Handle state changes in direct sound renderer correctly.

Alexandre Julliard julliard at winehq.org
Thu Nov 11 12:05:51 CST 2010


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

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Thu Nov 11 16:01:36 2010 +0100

quartz: Handle state changes in direct sound renderer correctly.

Based on a patch from Vladimir Panteleev

---

 dlls/quartz/dsoundrender.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/dlls/quartz/dsoundrender.c b/dlls/quartz/dsoundrender.c
index ca58b98..759ba07 100644
--- a/dlls/quartz/dsoundrender.c
+++ b/dlls/quartz/dsoundrender.c
@@ -620,6 +620,7 @@ static HRESULT WINAPI DSoundRender_Pause(IBaseFilter * iface)
         if (This->filter.state == State_Stopped)
         {
             This->pInputPin->end_of_stream = 0;
+            ResetEvent(This->state_change);
         }
 
         hr = IDirectSoundBuffer_Stop(This->dsbuffer);
@@ -627,7 +628,6 @@ static HRESULT WINAPI DSoundRender_Pause(IBaseFilter * iface)
             This->filter.state = State_Paused;
 
         ResetEvent(This->blocked);
-        ResetEvent(This->state_change);
     }
     LeaveCriticalSection(&This->filter.csFilter);
 
@@ -856,6 +856,7 @@ static HRESULT WINAPI DSoundRender_InputPin_EndOfStream(IPin * iface)
         }
     }
     MediaSeekingPassThru_EOS(me->seekthru_unk);
+    SetEvent(me->state_change);
     LeaveCriticalSection(This->pin.pCritSec);
 
     return hr;




More information about the wine-cvs mailing list