[PATCH RFC 4/5] dsound: Clean up channels

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Mon Jan 2 12:41:24 CST 2012


Alexander,

I'm not familiar with dsound
+	if (ichannels > 2)
+		FIXME("Conversion from %u to %u channels is not implemented, falling back to stereo", ichannels, ochannels);
+	dsb->mix_channels = 2;
Does you code support 8 channels?  Look through git history, and
you'll see some patches made specifically for 6 or even 8 channel
audio plus some 8->2 and 2->8 conversions.  Without having a 5:1
or 7:1 card, I think this gives hints as to what apps expect from
conversions.  Of course, there's always a risk that an old bug
analysis was biased by other bugs, leading to misconceptions and
misbeliefs about the actual needs and behaviour.

About
dsound: convert from fixed to floating point
Using floats for frequencies is not bad. After all, modern mmdevapi
does it too in IAudioClockAdjustment::SetSampleRate

Just avoid computing byte positions from floats...

BTW, AUDCLNT_STREAMFLAGS_RATEADJUST hints that the DSound mixer
implements stuff that mmdevapi's mixer needs...

Regards,
	Jörg Höhle


More information about the wine-devel mailing list