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

Alexandre Julliard julliard at winehq.org
Wed Oct 23 15:31:31 CDT 2019


Module: wine
Branch: master
Commit: 132ce049e6febf01b0231b5db2fb44263617c170
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=132ce049e6febf01b0231b5db2fb44263617c170

Author: Zebediah Figura <z.figura12 at 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 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at 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)




More information about the wine-cvs mailing list