[PATCH 1/6] strmbase: Don't hold the filter lock while calling IPin::NewSegment().

Zebediah Figura z.figura12 at gmail.com
Sat Nov 30 19:48:31 CST 2019

It's not safe to hold the filter lock from a streaming thread, and anyway we aren't protecting anything that needs locking.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
 dlls/strmbase/transform.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/dlls/strmbase/transform.c b/dlls/strmbase/transform.c
index d39dbbd3ab..7650232c44 100644
--- a/dlls/strmbase/transform.c
+++ b/dlls/strmbase/transform.c
@@ -495,12 +495,10 @@ static HRESULT WINAPI TransformFilter_InputPin_NewSegment(IPin * iface, REFERENC
     TRACE("iface %p, start %s, stop %s, rate %.16e.\n",
             iface, debugstr_time(tStart), debugstr_time(tStop), dRate);
-    EnterCriticalSection(&pTransform->filter.csFilter);
     if (pTransform->pFuncsTable->pfnNewSegment)
         hr = pTransform->pFuncsTable->pfnNewSegment(pTransform, tStart, tStop, dRate);
     if (SUCCEEDED(hr))
         hr = BaseInputPinImpl_NewSegment(iface, tStart, tStop, dRate);
-    LeaveCriticalSection(&pTransform->filter.csFilter);
     return hr;

More information about the wine-devel mailing list