"Maarten Lankhorst" m.b.lankhorst@gmail.com writes:
diff --git a/dlls/quartz/acmwrapper.c b/dlls/quartz/acmwrapper.c index d877930..22bfb87 100644 --- a/dlls/quartz/acmwrapper.c +++ b/dlls/quartz/acmwrapper.c @@ -186,7 +186,9 @@ static HRESULT ACMWrapper_ProcessSampleData(TransformFilterImpl* pTransformFilte } TRACE("Sample stop time: %u.%03u\n", (DWORD)(tStart/10000000), (DWORD)((tStart/10000)%1000));
LeaveCriticalSection(&This->tf.csFilter); hr = OutputPin_SendSample((OutputPin*)This->tf.ppPins[1], pOutSample);
EnterCriticalSection(&This->tf.csFilter);
This looks very wrong this the lock wasn't grabbed by this function, it will violate expectations of the caller. It looks like the locking strategy needs some more thought.