wine/dlls/winmm/wineoss audio.c

Alexandre Julliard julliard at
Mon Aug 26 16:49:42 CDT 2002

ChangeSet ID:	1030398582622759821432741
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at	02/08/26 16:49:42

Modified files:
	dlls/winmm/wineoss: audio.c 

Log message:
	Ove Kaaven <ovek at>
	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.


Revision  Changes    Path
 1.61     +79 -11    wine/dlls/winmm/wineoss/audio.c

More information about the wine-cvs mailing list