[wdmaudiodev] Getting WAVE_FORMAT_IEEE_FLOAT to work under Vista

  • From: "Jeff Pages" <jeff@xxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 18 Jan 2007 16:28:29 +1100

My audio capture device produces 32-bit floating point data as its native format, and I understand the Vista audio engine also uses the same as its native format, so it seemed sensible to avoid converting everything to fixed point and back again.


I tried setting my wave filter and topology pin data ranges to:

static KSDATARANGE_AUDIO PinDataRangesDigitalBridge[] =
{
   {
       {
           sizeof(KSDATARANGE_AUDIO),
           0,
           0,
           0,
           STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
           STATICGUIDOF(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT),
           STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
       },
       2, // maximum channels
       32, // minimum bits per sample
       32, // maximum bits per sample
       48000, // minimum sample rate
       48000 // maximum sample rate
   }
};

but it didn't like this, reporting there were no capture devices present. My DataIntersectionHandler was never called, and it never tried to create any streams.

Although the WDK documentation mentions in several places that WAVE_FORMAT_IEEE_FLOAT is supported for all WDM audio drivers, I can't find any examples of where this is actually done.

Any suggestions?

Jeff Pages
Innes Corporation Pty Ltd
******************

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

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: