Tweaks to improve playback performance and reduce sound glitches:
commit9fd3538b45ac21e9ab579e689c3c2e6ec3c5c7c7
authorOve Kaaven <ovek@transgaming.com>
Mon, 26 Aug 2002 21:49:42 +0000 (26 21:49 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 26 Aug 2002 21:49:42 +0000 (26 21:49 +0000)
treea4c936224794f40de4a7d590478184c6c8dffda2
parentaf246b59b4a36c5efb710752d4ca2d5d90369ecd
Tweaks to improve playback performance and reduce sound glitches:
- wodGetPosition does not send an update message to the player thread;
this reduces the accuracy of the readout from byte-accuracy to near
fragment-accuracy, but we save 2-4 context switches and kernel
scheduling penalties.
- if FeedDSP runs out of data, do not flush output buffers before
notifications are sent and given the chance to provide more sound data.
Do not flush before we're down to the last fragment.
- messages to the player thread are signaled using Unix pipes instead
of Win32 synchronization primitives, to avoid having the player thread
wait for the wineserver (and context switches from/to it) before the
it can feed more data to the sound card.
- ring buffer size is increased from 30 to 192 to support some games
that fires 128 messages at once to determine DMA buffer size.
dlls/winmm/wineoss/audio.c