[Bug 14717] resampled sound is horrible

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Jan 3 10:27:33 CST 2012


--- Comment #259 from Jörg Höhle <hoehle at users.sourceforge.net> 2012-01-03 10:27:33 CST ---
In bug #9358, comment #21, Maarten Lankhorst explained that
primary.c:DSOUND_fraglen is a hack to second-guess the period size as "the
current driver model doesn't" tell.  This is no more the case.  The hack should
be removed.  The period size is IAudioClient_GetDevicePeriod.  With mmdevapi,
DSound receives one event every such default period and that's the quantity
that it should mix (currently winealsa/oss: 10ms, winecoreaudio: 20ms).
IOW, it should act like the XAudio2 in bug #28723 -- ouch!  I don't know when
DSound is allowed to send more data in advance.

BTW, in bug #1631, comment #129 Maarten Lankhorst talks about trouble with
<100ms buffers.  4 years later, I've doubts we won't face trouble with 10ms
periods and 40ms buffers.  We can't expect machines that much faster and
reliable, see bug #28723, comment #51 and 61.

I'm not familiar with DSound, but why another buffer?  Why not
GetCurrentPadding & GetBuffer, then mix into that one, eventually ReleaseBuffer
(may release a smaller number of frames)?  Sadly, DSound's primary buffer may
match HW well, but not mmdevapi's buffer model...

Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the wine-bugs mailing list