Zebediah Figura : strmbase: Don't send EC_COMPLETE in IBaseFilter::Run().

Alexandre Julliard julliard at winehq.org
Wed Oct 2 17:47:37 CDT 2019


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue Oct  1 22:43:11 2019 -0500

strmbase: Don't send EC_COMPLETE in IBaseFilter::Run().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/strmbase/renderer.c | 31 +++++++++----------------------
 1 file changed, 9 insertions(+), 22 deletions(-)

diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c
index 038cb48b57..1de974a909 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -420,7 +420,6 @@ HRESULT WINAPI BaseRendererImpl_Stop(IBaseFilter * iface)
 
 HRESULT WINAPI BaseRendererImpl_Run(IBaseFilter * iface, REFERENCE_TIME tStart)
 {
-    HRESULT hr = S_OK;
     BaseRenderer *This = impl_from_IBaseFilter(iface);
     TRACE("(%p)->(%s)\n", This, wine_dbgstr_longlong(tStart));
 
@@ -435,30 +434,18 @@ HRESULT WINAPI BaseRendererImpl_Run(IBaseFilter * iface, REFERENCE_TIME tStart)
     {
         This->sink.end_of_stream = FALSE;
     }
-    else if (This->filter.filterInfo.pGraph)
-    {
-        IMediaEventSink *pEventSink;
-        hr = IFilterGraph_QueryInterface(This->filter.filterInfo.pGraph, &IID_IMediaEventSink, (LPVOID*)&pEventSink);
-        if (SUCCEEDED(hr))
-        {
-            hr = IMediaEventSink_Notify(pEventSink, EC_COMPLETE, S_OK, (LONG_PTR)This);
-            IMediaEventSink_Release(pEventSink);
-        }
-        hr = S_OK;
-    }
-    if (SUCCEEDED(hr))
-    {
-        QualityControlRender_Start(This->qcimpl, This->filter.rtStreamStart);
-        if (This->sink.pin.peer && This->pFuncsTable->renderer_start_stream)
-            This->pFuncsTable->renderer_start_stream(This);
-        if (This->filter.state == State_Stopped)
-            BaseRendererImpl_ClearPendingSample(This);
-        This->filter.state = State_Running;
-    }
+
+    QualityControlRender_Start(This->qcimpl, This->filter.rtStreamStart);
+    if (This->sink.pin.peer && This->pFuncsTable->renderer_start_stream)
+        This->pFuncsTable->renderer_start_stream(This);
+    if (This->filter.state == State_Stopped)
+        BaseRendererImpl_ClearPendingSample(This);
+    This->filter.state = State_Running;
+
 out:
     LeaveCriticalSection(&This->csRenderLock);
 
-    return hr;
+    return S_OK;
 }
 
 HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface)




More information about the wine-cvs mailing list