quartz: Only call begin process functions in transform filter when stopped.
Fixes some graphical glitches that may occur otherwise.
This commit is contained in:
parent
11e2b1ab2b
commit
e58855e0e9
|
@ -349,7 +349,7 @@ static HRESULT WINAPI TransformFilter_Pause(IBaseFilter * iface)
|
||||||
EnterCriticalSection(&This->csFilter);
|
EnterCriticalSection(&This->csFilter);
|
||||||
{
|
{
|
||||||
if (This->state == State_Stopped)
|
if (This->state == State_Stopped)
|
||||||
IBaseFilter_Run(iface, -1);
|
((InputPin *)This->ppPins[0])->end_of_stream = 0;
|
||||||
|
|
||||||
This->state = State_Paused;
|
This->state = State_Paused;
|
||||||
}
|
}
|
||||||
|
@ -368,13 +368,15 @@ static HRESULT WINAPI TransformFilter_Run(IBaseFilter * iface, REFERENCE_TIME tS
|
||||||
EnterCriticalSection(&This->csFilter);
|
EnterCriticalSection(&This->csFilter);
|
||||||
{
|
{
|
||||||
if (This->state == State_Stopped)
|
if (This->state == State_Stopped)
|
||||||
|
{
|
||||||
((InputPin *)This->ppPins[0])->end_of_stream = 0;
|
((InputPin *)This->ppPins[0])->end_of_stream = 0;
|
||||||
|
if (This->pFuncsTable->pfnProcessBegin)
|
||||||
|
This->pFuncsTable->pfnProcessBegin(This);
|
||||||
|
OutputPin_CommitAllocator((OutputPin *)This->ppPins[1]);
|
||||||
|
}
|
||||||
|
|
||||||
This->rtStreamStart = tStart;
|
This->rtStreamStart = tStart;
|
||||||
This->state = State_Running;
|
This->state = State_Running;
|
||||||
OutputPin_CommitAllocator((OutputPin *)This->ppPins[1]);
|
|
||||||
if (This->pFuncsTable->pfnProcessBegin)
|
|
||||||
This->pFuncsTable->pfnProcessBegin(This);
|
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(&This->csFilter);
|
LeaveCriticalSection(&This->csFilter);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue