Sagar Mittal : quartz: DSoundRender: Do not overwrite a full buffer.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Aug 18 14:20:56 CDT 2006
Module: wine
Branch: master
Commit: cb4889d940a40fc4a6fbac5a80c4468b0b7bcb29
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=cb4889d940a40fc4a6fbac5a80c4468b0b7bcb29
Author: Sagar Mittal <sagar.mittal at 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) {
More information about the wine-cvs
mailing list