[wdmaudiodev] Re: USB Audio/WASAPI channel limits?

  • From: Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 5 Feb 2014 19:11:20 +0000

Well, let's see...

You can use KS Studio to validate directly that instantiating a pin with a 
(say) 40-channel WAVEFORMATEX works.

If your data ranges advertise only a (say) 40-channel format, then I would 
expect shared-mode capture not to work at all, since Windows has no idea how to 
downmix 40 channels without a channel mask to, e.g., mono. Whether 
exclusive-mode capture should work in this situation is less clear.

If you advertise both a (say) 2-channel format and a 40-channel format, then I 
would expect shared-mode capture to work (in 2-channel mode) and I would also 
expect exclusive-mode capture to work in both 2-channel mode and 40-channel 
mode (with a zero channel mask.) If that is not the case I would open a support 
ticket on http://support.microsoft.com/ since there's likely a bug in the 
capture stack.

It would be helpful to know what function was failing (e.g., 
IAudioClient::IsFormatSupported(AUDCLNT_SHAREMODE_EXCLUSIVE, ...)) as well as 
the specific HRESULT that was being returned.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Jerry Evans
Sent: Wednesday, February 5, 2014 10:55 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: USB Audio/WASAPI channel limits?

Yes. It is odd. The descriptors all appear valid.

Can I infer there are no explicit limitations in the stack? This is possibly 
not a show stopper as 32+ channels is a large number in most practical 
contexts. However, and annoyingly, the audio system for another well-known 
proprietary OS seems happy to allow us to stream 80 channels ...

Thanks and any other suggestions welcomed.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
Sent: 05 February 2014 18:36
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: USB Audio/WASAPI channel limits?

The "channel mask" section of a WAVEFORMATEXTENSIBLE is a 32-bit number. 
Perhaps you're tripping some wave format validation that assumes a valid 
WAVEFORMATEX only ever has fewer than 32 channels. (This sounds like a bug to 
me, since a channel mask of zero is always valid.)

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Jerry Evans
Sent: Wednesday, February 5, 2014 10:27 AM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] USB Audio/WASAPI channel limits?

Greetings.

I'm developing a USB2 input only audio device that exposes a large (N >= 24) 
number of channels.

The device is recognized and streams correctly on W7x64 at up to 32 channels, 
48K sample rate and both 16 and 24 bit sample sizes. Data is recorded 
accurately using various commercial WASAPI hosts (Sonar/Tracktion)

Windows, however, appears to baulk at any larger channel count. The various USB 
tracers (both stack and wire) show Windows sending a QUERY_CAPABILITIES every 
second or so when device is configured with 32 channels. Anything above that 
and zero action.

Is there some hard limit or have I missed something?

Cheers.

Jerry

Other related posts: