Commit 132ce049 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

strmbase: Return S_FALSE from IBaseFilter::Pause() when performing asynchronous state change.

parent d82f06c0
...@@ -461,6 +461,7 @@ out: ...@@ -461,6 +461,7 @@ out:
HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface) HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface)
{ {
BaseRenderer *This = impl_from_IBaseFilter(iface); BaseRenderer *This = impl_from_IBaseFilter(iface);
HRESULT hr = S_OK;
TRACE("(%p)->()\n", This); TRACE("(%p)->()\n", This);
...@@ -471,7 +472,10 @@ HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface) ...@@ -471,7 +472,10 @@ HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface)
if (This->filter.state == State_Stopped) if (This->filter.state == State_Stopped)
{ {
if (This->sink.pin.peer) if (This->sink.pin.peer)
{
ResetEvent(This->state_event); ResetEvent(This->state_event);
hr = S_FALSE;
}
This->sink.end_of_stream = FALSE; This->sink.end_of_stream = FALSE;
} }
else if (This->sink.pin.peer && This->pFuncsTable->renderer_stop_stream) else if (This->sink.pin.peer && This->pFuncsTable->renderer_stop_stream)
...@@ -485,7 +489,7 @@ HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface) ...@@ -485,7 +489,7 @@ HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface)
} }
LeaveCriticalSection(&This->csRenderLock); LeaveCriticalSection(&This->csRenderLock);
return S_OK; return hr;
} }
HRESULT WINAPI BaseRendererImpl_SetSyncSource(IBaseFilter *iface, IReferenceClock *clock) HRESULT WINAPI BaseRendererImpl_SetSyncSource(IBaseFilter *iface, IReferenceClock *clock)
......
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