Aric Stewart : wineqtdecoder: Lock the Transform filter csReceive around the decommpression callback.
Alexandre Julliard
julliard at winehq.org
Tue Jan 17 13:45:24 CST 2012
Module: wine
Branch: master
Commit: ab735065288c808eb904133fdc51680b6296c1c6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab735065288c808eb904133fdc51680b6296c1c6
Author: Aric Stewart <aric at codeweavers.com>
Date: Mon Jan 16 14:14:29 2012 -0600
wineqtdecoder: Lock the Transform filter csReceive around the decommpression callback.
---
dlls/wineqtdecoder/qtvdecoder.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/dlls/wineqtdecoder/qtvdecoder.c b/dlls/wineqtdecoder/qtvdecoder.c
index ceab21e..79e06a5 100644
--- a/dlls/wineqtdecoder/qtvdecoder.c
+++ b/dlls/wineqtdecoder/qtvdecoder.c
@@ -179,7 +179,7 @@ static void trackingCallback(
return;
}
- EnterCriticalSection(&This->tf.filter.csFilter);
+ EnterCriticalSection(&This->tf.csReceive);
hr = BaseOutputPinImpl_GetDeliveryBuffer((BaseOutputPin*)This->tf.ppPins[1], &pOutSample, NULL, NULL, 0);
if (FAILED(hr)) {
ERR("Unable to get delivery buffer (%x)\n", hr);
@@ -230,12 +230,12 @@ static void trackingCallback(
IMediaSample_SetTime(pOutSample, &tStart, &tStop);
}
- LeaveCriticalSection(&This->tf.filter.csFilter);
hr = BaseOutputPinImpl_Deliver((BaseOutputPin*)This->tf.ppPins[1], pOutSample);
if (hr != S_OK && hr != VFW_E_NOT_CONNECTED)
ERR("Error sending sample (%x)\n", hr);
error:
+ LeaveCriticalSection(&This->tf.csReceive);
if (pOutSample)
IMediaSample_Release(pOutSample);
@@ -278,7 +278,6 @@ static HRESULT WINAPI QTVDecoder_Receive(TransformFilter *tf, IMediaSample *pSam
OSStatus err = noErr;
LONGLONG tStart, tStop;
- EnterCriticalSection(&This->tf.filter.csFilter);
hr = IMediaSample_GetPointer(pSample, &pbSrcStream);
if (FAILED(hr))
{
@@ -316,7 +315,6 @@ static HRESULT WINAPI QTVDecoder_Receive(TransformFilter *tf, IMediaSample *pSam
hr = This->decodeHR;
error:
- LeaveCriticalSection(&This->tf.filter.csFilter);
return hr;
}
More information about the wine-cvs
mailing list