From da49807ea3d5720130364334d7ed17b5588796aa Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Wed, 28 Jan 2004 20:05:20 +0000 Subject: [PATCH] Fixed synchronization issue. --- dlls/winmm/mciavi/mmoutput.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/winmm/mciavi/mmoutput.c b/dlls/winmm/mciavi/mmoutput.c index 5b0a8e15198..1e2632758e7 100644 --- a/dlls/winmm/mciavi/mmoutput.c +++ b/dlls/winmm/mciavi/mmoutput.c @@ -563,7 +563,10 @@ void MCIAVI_PlayAudioBlocks(WINE_MCIAVI* wma, unsigned nHdr, LPWAVEHDR waveHdr) ResetEvent(wma->hEvent); if (InterlockedDecrement(&wma->dwEventCount) < 0 || !wma->lpAudioIndex[wma->dwCurrAudioBlock].dwOffset) + { + InterlockedIncrement(&wma->dwEventCount); break; + } mmioSeek(wma->hFile, wma->lpAudioIndex[wma->dwCurrAudioBlock].dwOffset, SEEK_SET); mmioRead(wma->hFile, waveHdr[whidx].lpData, wma->lpAudioIndex[wma->dwCurrAudioBlock].dwSize); @@ -573,7 +576,6 @@ void MCIAVI_PlayAudioBlocks(WINE_MCIAVI* wma, unsigned nHdr, LPWAVEHDR waveHdr) waveOutWrite(wma->hWave, &waveHdr[whidx], sizeof(WAVEHDR)); wma->dwCurrAudioBlock++; } - InterlockedIncrement(&wma->dwEventCount); } LRESULT MCIAVI_PaintFrame(WINE_MCIAVI* wma, HDC hDC) -- 2.11.4.GIT