http://bugs.winehq.org/show_bug.cgi?id=28622
--- Comment #3 from Andrew Eikum aeikum@codeweavers.com 2011-10-12 13:02:16 CDT --- Created attachment 36857 --> http://bugs.winehq.org/attachment.cgi?id=36857 dsound: Request a more exact buffer size from MMDevAPI
(In reply to comment #2)
reduce the period time from 200 *10000 to 2321930 (23.2ms) in dlls/dsound/primary.c seem fix the choppy sound
200ms @44100Hz is too large (> half buffer size when your sound card only have 64K Bytes buffer 371ms)
/* buffer size = 200 * 100000 (100 ns) = 2.0 secods */ hres = IAudioClient_Initialize(device->client, AUDCLNT_SHAREMODE_SHARED, AUDCLNT_STREAMFLAGS_NOPERSIST,
200 * 100000, 50000, device->pwfx, NULL);
2321930, 50000, device->pwfx, NULL);
That's the buffer size, not the period size. In any case, I have this patch in my queue which does the same thing a little more intelligently. It requests the buffer size to be exactly as large as the maximum data that dsound will send to mmdevapi. I've attached it here, and it fixes VLC for me as well.