[PATCH 1/5] strmbase: Return S_FALSE from IBaseFilter::Pause() when performing asynchronous state change.
Zebediah Figura
z.figura12 at gmail.com
Tue Oct 22 18:30:03 CDT 2019
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
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)
--
2.20.1
More information about the wine-devel
mailing list