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:
parent
d82f06c075
commit
132ce049e6
|
@ -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)
|
||||||
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)
|
||||||
}
|
}
|
||||||
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)
|
||||||
|
|
Loading…
Reference in New Issue