Zebediah Figura : strmbase: Return S_FALSE from IBaseFilter::Pause() when performing asynchronous state change.
Module: wine Branch: master Commit: 132ce049e6febf01b0231b5db2fb44263617c170 URL: https://source.winehq.org/git/wine.git/?a=commit;h=132ce049e6febf01b0231b5db... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Tue Oct 22 18:30:03 2019 -0500 strmbase: Return S_FALSE from IBaseFilter::Pause() when performing asynchronous state change. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/strmbase/renderer.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c index 3a5fa19ace..9908e693e7 100644 --- a/dlls/strmbase/renderer.c +++ b/dlls/strmbase/renderer.c @@ -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)
participants (1)
-
Alexandre Julliard