strmbase: Don't execute OnStartStreaming() or OnStopStreaming() callbacks if the sink is unconnected.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
31d522ea53
commit
802ebaf9db
|
@ -407,7 +407,7 @@ HRESULT WINAPI BaseRendererImpl_Stop(IBaseFilter * iface)
|
||||||
EnterCriticalSection(&This->csRenderLock);
|
EnterCriticalSection(&This->csRenderLock);
|
||||||
{
|
{
|
||||||
RendererPosPassThru_ResetMediaTime(This->pPosition);
|
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->pFuncsTable->renderer_stop_stream(This);
|
||||||
This->filter.state = State_Stopped;
|
This->filter.state = State_Stopped;
|
||||||
SetEvent(This->state_event);
|
SetEvent(This->state_event);
|
||||||
|
@ -449,7 +449,7 @@ HRESULT WINAPI BaseRendererImpl_Run(IBaseFilter * iface, REFERENCE_TIME tStart)
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
{
|
{
|
||||||
QualityControlRender_Start(This->qcimpl, This->filter.rtStreamStart);
|
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);
|
This->pFuncsTable->renderer_start_stream(This);
|
||||||
if (This->filter.state == State_Stopped)
|
if (This->filter.state == State_Stopped)
|
||||||
BaseRendererImpl_ClearPendingSample(This);
|
BaseRendererImpl_ClearPendingSample(This);
|
||||||
|
@ -477,7 +477,7 @@ HRESULT WINAPI BaseRendererImpl_Pause(IBaseFilter * iface)
|
||||||
ResetEvent(This->state_event);
|
ResetEvent(This->state_event);
|
||||||
This->sink.end_of_stream = FALSE;
|
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);
|
This->pFuncsTable->renderer_stop_stream(This);
|
||||||
|
|
||||||
if (This->filter.state == State_Stopped)
|
if (This->filter.state == State_Stopped)
|
||||||
|
|
Loading…
Reference in New Issue