Commit 44a17d27 authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Alexandre Julliard

quartz: Handle state changes in direct sound renderer correctly.

Based on a patch from Vladimir Panteleev
parent 5c3cddf3
...@@ -620,6 +620,7 @@ static HRESULT WINAPI DSoundRender_Pause(IBaseFilter * iface) ...@@ -620,6 +620,7 @@ static HRESULT WINAPI DSoundRender_Pause(IBaseFilter * iface)
if (This->filter.state == State_Stopped) if (This->filter.state == State_Stopped)
{ {
This->pInputPin->end_of_stream = 0; This->pInputPin->end_of_stream = 0;
ResetEvent(This->state_change);
} }
hr = IDirectSoundBuffer_Stop(This->dsbuffer); hr = IDirectSoundBuffer_Stop(This->dsbuffer);
...@@ -627,7 +628,6 @@ static HRESULT WINAPI DSoundRender_Pause(IBaseFilter * iface) ...@@ -627,7 +628,6 @@ static HRESULT WINAPI DSoundRender_Pause(IBaseFilter * iface)
This->filter.state = State_Paused; This->filter.state = State_Paused;
ResetEvent(This->blocked); ResetEvent(This->blocked);
ResetEvent(This->state_change);
} }
LeaveCriticalSection(&This->filter.csFilter); LeaveCriticalSection(&This->filter.csFilter);
...@@ -856,6 +856,7 @@ static HRESULT WINAPI DSoundRender_InputPin_EndOfStream(IPin * iface) ...@@ -856,6 +856,7 @@ static HRESULT WINAPI DSoundRender_InputPin_EndOfStream(IPin * iface)
} }
} }
MediaSeekingPassThru_EOS(me->seekthru_unk); MediaSeekingPassThru_EOS(me->seekthru_unk);
SetEvent(me->state_change);
LeaveCriticalSection(This->pin.pCritSec); LeaveCriticalSection(This->pin.pCritSec);
return hr; return hr;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment