Maarten Lankhorst : winealsa: Always commit at least 3 periods in
dsoutput.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jul 30 08:55:42 CDT 2007
Module: wine
Branch: master
Commit: ecfafa37c7f4626cb71af3a79fcf551653cc4c3e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ecfafa37c7f4626cb71af3a79fcf551653cc4c3e
Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date: Sun Jul 29 12:39:49 2007 +0200
winealsa: Always commit at least 3 periods in dsoutput.
---
dlls/winealsa.drv/dsoutput.c | 27 +++++----------------------
1 files changed, 5 insertions(+), 22 deletions(-)
diff --git a/dlls/winealsa.drv/dsoutput.c b/dlls/winealsa.drv/dsoutput.c
index dbac200..bfe10a6 100644
--- a/dlls/winealsa.drv/dsoutput.c
+++ b/dlls/winealsa.drv/dsoutput.c
@@ -296,8 +296,6 @@ static HRESULT WINAPI IDsDriverBufferImpl_Unlock(PIDSDRIVERBUFFER iface,
return DSERR_UNSUPPORTED;
}
-static int warnonce;
-
static HRESULT SetFormat(IDsDriverBufferImpl *This, LPWAVEFORMATEX pwfx, BOOL forced)
{
snd_pcm_t *pcm = NULL;
@@ -382,26 +380,11 @@ static HRESULT SetFormat(IDsDriverBufferImpl *This, LPWAVEFORMATEX pwfx, BOOL fo
err = snd_pcm_hw_params_get_period_size(hw_params, &psize, NULL);
TRACE("Period size is: %lu\n", psize);
- /* If period size is 'high', try to commit less
- * dmix needs at least 2 buffers to work successfully but prefers 3
- * however it seems to work ok if I just commit 2 1/2 buffers
- */
- if (psize >= 512)
- {
- if (psize == 1024 && ++warnonce == 1)
- FIXME("Your alsa dmix period size is 1024, try decreasing it to 512 if possible\n");
- else if (psize > 512)
- WARN("Your alsa period size is excessively high (%lu)\n", psize);
- This->mmap_commitahead = 2 * psize + psize/2;
- This->mmap_writeahead = 2 * psize;
- }
- else
- {
- This->mmap_commitahead = 3 * psize;
- while (This->mmap_commitahead <= 512)
- This->mmap_commitahead += psize;
- This->mmap_writeahead = This->mmap_commitahead;
- }
+ /* ALSA needs at least 3 buffers to work succesfully */
+ This->mmap_commitahead = 3 * psize;
+ while (This->mmap_commitahead <= 512)
+ This->mmap_commitahead += psize;
+ This->mmap_writeahead = This->mmap_commitahead;
if (This->pcm)
{
More information about the wine-cvs
mailing list