Module: wine Branch: master Commit: cb4889d940a40fc4a6fbac5a80c4468b0b7bcb29 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=cb4889d940a40fc4a6fbac5a...
Author: Sagar Mittal sagar.mittal@gmail.com Date: Fri Aug 18 12:38:38 2006 -0400
quartz: DSoundRender: Do not overwrite a full buffer.
---
dlls/quartz/dsoundrender.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/dlls/quartz/dsoundrender.c b/dlls/quartz/dsoundrender.c index c095f7e..dfc285f 100644 --- a/dlls/quartz/dsoundrender.c +++ b/dlls/quartz/dsoundrender.c @@ -179,6 +179,13 @@ static HRESULT DSoundRender_SendSampleDa else buf_free = DSBUFFERSIZE - This->write_pos + play_pos;
+ /* This situation is ambiguous; Assume full when playing */ + if(buf_free == DSBUFFERSIZE && This->started) + { + Sleep(10); + continue; + } + size2 = min(buf_free, size); hr = IDirectSoundBuffer_Lock(This->dsbuffer, This->write_pos, size2, &lpbuf1, &dwsize1, &lpbuf2, &dwsize2, 0); if (hr != DS_OK) {