http://bugs.winehq.org/show_bug.cgi?id=30071
--- Comment #1 from Jörg Höhle hoehle@users.sourceforge.net 2012-03-04 01:17:59 CST --- Created attachment 39178 --> http://bugs.winehq.org/attachment.cgi?id=39178 Stabilize CreateTimerQueue
With the patch in place, mmdevapi:render:test_worst_case is right on time and produces no audio glitch: render.c:2152: Released 48000=100x480 -480 frames at 48000 worth 990ms in 1001ms render.c:2098: Should play 1000ms continuous tone with fragment size 480. render.c:2152: Released 48000=100x480 -480 frames at 48000 worth 990ms in 1000ms render.c:2098: Should play 1000ms continuous tone with fragment size 480.
Note that this happens despite this particular system's inability to trigger on 10ms boundaries. It seems to know only multiples of 4ms: 9.309:alsa_write_data pad: 1132 9.317:alsa_write_data pad: 1229 9.329:alsa_write_data pad: 1133 9.337:alsa_write_data pad: 1229 9.349:alsa_write_data pad: 1133 9.357:alsa_write_data pad: 1228 The winealsa feeder algorithm was designed to accommodate such variation by hiding a few periods from GetCurrentPadding's sight.