dsound: change mix rate of primary buffer

Andrew Eikum aeikum at codeweavers.com
Tue Dec 18 07:59:29 CST 2012


On Sun, Dec 16, 2012 at 11:56:46AM +0100, sebastien chev wrote:
> It seems that no matter what the Windows side program choose for
> DirectSoundCreate, the DSound subsystem initialize itself with the higher
> spec sound available (for example 48Khz Float32, or 48kHz Int16 if no
> Float32 available).
> 

Maarten very recently updated dsound's behavior. It will either choose
the default format for the backend or the nearest supported format to
the format the application requests. See DSOUND_WaveFormat in
<dsound/primary.c>.

> While not a big deal on current linux PC, using this on ARM device kill
> performance.
> 
> A DirectSound subsystem for ARM, with Integer only for the mixbuffer (as
> most ARM still use softfloat) and 22kHz should be less taxing for
> performances.
> 

It seems like the best solution is for the backend to prefer a format
that the CPU supports efficiently. This requires some more
intelligence in AudioClient_GetMixFormat in <winealsa.drv/mmdevdrv.c>,
which currently probes for capabilities and chooses the best available
format.

Andrew



More information about the wine-devel mailing list