From 802ebaf9dbe781db73ac1b9373b659aad687fd45 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Thu, 26 Sep 2019 21:40:48 -0500 Subject: [PATCH] strmbase: Don't execute OnStartStreaming() or OnStopStreaming() callbacks if the sink is unconnected. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- dlls/strmbase/renderer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c index 5634ab1905b..051230186d2 100644 --- a/dlls/strmbase/renderer.c +++ b/dlls/strmbase/renderer.c @@ -407,7 +407,7 @@ HRESULT WINAPI BaseRendererImpl_Stop(IBaseFilter * iface) EnterCriticalSection(&This->csRenderLock); { RendererPosPassThru_ResetMediaTime(This->pPosition); - if (This->pFuncsTable->renderer_stop_stream) + if (This->sink.pin.pConnectedTo && This->pFuncsTable->renderer_stop_stream) This->pFuncsTable->renderer_stop_stream(This); This->filter.state = State_Stopped; SetEvent(This->state_event); @@ -449,7 +449,7 @@ HRESULT WINAPI BaseRendererImpl_Run(IBaseFilter * iface, REFERENCE_TIME tStart) if (SUCCEEDED(hr)) { QualityControlRender_Start(This->qcimpl, This->filter.rtStreamStart); - if (This->pFuncsTable->renderer_start_stream) + if (This->sink.pin.pConnectedTo && This->pFuncsTable->renderer_start_stream) This->pFuncsTable->renderer_start_stream(This); if (This->filter.state == State_Stopped) BaseRendererImpl_ClearPendingSample(This); @@ -477,7 +477,7 @@ HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface) ResetEvent(This->state_event); This->sink.end_of_stream = FALSE; } - else if (This->pFuncsTable->renderer_stop_stream) + else if (This->sink.pin.pConnectedTo && This->pFuncsTable->renderer_stop_stream) This->pFuncsTable->renderer_stop_stream(This); if (This->filter.state == State_Stopped)