Commit e58855e0 authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Alexandre Julliard

quartz: Only call begin process functions in transform filter when stopped.

Fixes some graphical glitches that may occur otherwise.
parent 11e2b1ab
...@@ -349,7 +349,7 @@ static HRESULT WINAPI TransformFilter_Pause(IBaseFilter * iface) ...@@ -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 ...@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment