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

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2019-10-22 18:30:03 -05:00 committed by Alexandre Julliard
parent d82f06c075
commit 132ce049e6
1 changed files with 5 additions and 1 deletions

View File

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