[wdmaudiodev] Record Buffer Issue

  • From: "David A. Hoatson" <dhoatson@xxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 16 Sep 2004 07:30:39 -0700


I have noticed some specific behaviour for recording that is causing major grief for my audio driver (IMiniportWavePci/IMiniportWavePciStream).

For playback, the buffers are chopped up into 10ms increments and it seems that a maximum of about 3 buffers are sent down to my driver from the WDM port class driver. If the sample rate scales up, so does the buffer size so each buffer is still 10ms in length. Playback at any sample rate works as expected.

For recording, eight 64-byte buffers are passed in regardless of sample rate. At 48kHz stereo, this means each buffer represents ~0.66ms, which is just at the limit of what gives acceptable performance from faster machines. At 192kHz, the port driver still only gives eight 64-byte buffers, so now that same buffer only represents 0.166ms for stereo, or only 1 sample period for 16 channel interleaved 32-bit (which my device can do)! This means the PC is not able to respond to each interrupt fast enough and audio breakup will occur in only 1.3ms (192kHz/Stereo). This essentially means that recording through the port class driver is not possible at higher sample rates/higher channel counts. I should mention that I am using Windows XP SP2.

So far I have found nothing that allows my driver to control the size or number of buffers that are passed in from the upper level driver. Does anyone have a solution to this problem? I'm sure there is something very basic that I am missing...

Thank you,



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: