[wdmaudiodev] help on starting driver project for usbaudio

  • From: Cornelius Ihssen <cornelius.ihssen@xxxxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 07 Mar 2007 18:03:14 +0100


I'm new to this list and unfortunately new to windows driver development, too. I'm trying to write some sort of driver for an existing usb-audio-class compliant headset. Target platform is WinXP. The behaviour of the headset should be altered for playback in 2 ways: The (in fact) stereo output device should appear to the system as 5.1 multichannel device and in a second step I want to access the multichannel PCM-data, do a downmix with some additional binaural processing and send it out as stereo again.

After reading in Oney's book and some web research I see several possibilities to do that, not willing to write my own AVStream/portcls driver for usb from scratch:

- GFX Filter: I could do the processing easily there, but it's not possible to mask the headphone as virtual 5.1 device and receive multichannel streams -- same problem with a DirectShow filter. In addition, GFX filters seem to be some sort of half baked (once installed, you can't get rid of it...)

- Upper filter for usbaudio.sys: Currently I'm playing around with the filter sample of oney's wdm book. I can trap all IOCTL_KS_PROPERTY and hopefully dispatch them with KsDispatchSpecificProperty, but I don't know yet which IRPs exactly ask for the KS topology of the device object. Is it possible to overwrite them in a upper filter at all? Which Requests describe the channel configuration, is it for example KSAUDIO_SPEAKER_5POINT1?

- Lower filter for usbaudio.sys: I think it would also be possible to attach a lower filter driver and intercept the URBs concerning the device descriptors. But do I have access on the audio data in the isochronous transfer at this point?

- Virtual 5.1 audio driver: My first approach was to start with one of the MSVAD samples, do the processing there and create a handle on the usb audio device for output.

There are probably even more solutions for my purpose. At the moment, I'm sort of lost in it and don't know which way to go. What do you think what's the most practicable approach? I'm glad for every hint and suggestion...

Thanks in advance,

Cornelius Ihssen
sonic emotion ag


WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx


Other related posts:

  • » [wdmaudiodev] help on starting driver project for usbaudio