From c736af74dc5d5d845822cb1527b28fa4f4ee511b Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Fri, 11 May 2012 13:19:38 -0500 Subject: [PATCH] strmbase: do not lock in BaseOutputPinImpl_GetDeliveryBuffer the MemInputPin will lock in the required places. --- dlls/strmbase/pin.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c index 50a90c4ac3a..936ae0c9bcb 100644 --- a/dlls/strmbase/pin.c +++ b/dlls/strmbase/pin.c @@ -580,27 +580,23 @@ HRESULT WINAPI BaseOutputPinImpl_GetDeliveryBuffer(BaseOutputPin *This, IMediaSa TRACE("(%p, %p, %p, %x)\n", ppSample, tStart, tStop, dwFlags); - EnterCriticalSection(This->pin.pCritSec); + if (!This->pin.pConnectedTo) + hr = VFW_E_NOT_CONNECTED; + else { - if (!This->pin.pConnectedTo) - hr = VFW_E_NOT_CONNECTED; - else - { - IMemAllocator * pAlloc = NULL; + IMemAllocator * pAlloc = NULL; - hr = IMemInputPin_GetAllocator(This->pMemInputPin, &pAlloc); + hr = IMemInputPin_GetAllocator(This->pMemInputPin, &pAlloc); - if (SUCCEEDED(hr)) - hr = IMemAllocator_GetBuffer(pAlloc, ppSample, tStart, tStop, dwFlags); + if (SUCCEEDED(hr)) + hr = IMemAllocator_GetBuffer(pAlloc, ppSample, tStart, tStop, dwFlags); - if (SUCCEEDED(hr)) - hr = IMediaSample_SetTime(*ppSample, tStart, tStop); + if (SUCCEEDED(hr)) + hr = IMediaSample_SetTime(*ppSample, tStart, tStop); - if (pAlloc) - IMemAllocator_Release(pAlloc); - } + if (pAlloc) + IMemAllocator_Release(pAlloc); } - LeaveCriticalSection(This->pin.pCritSec); return hr; }