winealsa.drv patch to enum all software devices from .asoundrc

Chris Robinson chris.kcat at gmail.com
Wed Feb 22 12:54:10 CST 2012


On Wednesday, February 22, 2012 11:42:13 AM Joerg-Cyril.Hoehle at t-systems.com 
wrote:
> That's why I'll repeat once more and say that DSound's resampler should
> become that one.
> 
> My little knowledge about DSound's 3 initialisation modes (WRITE_PRIMARY
> etc.) tells me it's compatible with such a scheme: there are restriction on
> when you're allowed to invoke SetFormat on the Primary buffer.

DSound needs to resample itself anyway, to mix all the secondary buffers to 
the output stream. If winmm streams are implemented using secondary buffers on 
dsound, then there's no issue with making resampling as dsound will do it.

I'd also wager that DSound's primary buffer is largely faked. It's telling 
that the primary buffer is (in tests Maarten and I have done) always 32768 
bytes, even for output modes where that isn't a multiple, or where it can only 
hold 20ms of audio.

I would say IDirectSoundBuffer::SetFormat accepts reasonable any rate, 
although it outputs using the mmdevapi device rate, and WRITE_PRIMARY emulates 
primary access by using a secondary buffer, which can be set to the specified 
rate.



More information about the wine-devel mailing list