[wdmaudiodev] Re: VAD processing and re-routing streams

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 8 May 2020 00:16:03 -0700

On May 7, 2020, at 1:22 PM, Giacomo Costantini <giacomo.costantini3@xxxxxxxxx> 
wrote:


I have seen that normally IOCTL is used with WaveCyclic and WavePCI, but I 
also know that theoretically WaveRT is the best choice to guarantee realtime 
performances.

WavwRT provides better performance for WaveRT-compliant hardware, because the 
Audio Engine can manipulate the hardware’s buffer pointers directly and totally 
avoid a trip into kernel mode..  However, yours is a virtual device.   There is 
no hardware.  The processing is going to be exactly the same no matter what 
model you use.  I tried to start from SYSVAD for my virtual devices; I just 
don’t think it’s a good fit.  I’ve done two VAD solutions now based on MSVAD.  
However, that’s only my opinion.


Does it work with WaveRT as well? 

The initialization is the same.


In the SYSVAD sample, the content of the buffer is saved in an audio file by 
default (through CMiniportWaveRTStream::ReadBytes ), that makes me think it 
should be relatively easy to get that stream from an application, but I still 
do not see how to do that in practice and I have no specific code nor 
documentation references.

Right, that’s basically the same purpose that the CopyTo and CopyFrom functions 
served in MSVAD.  Well, not ReadBytes, but WriteBytes, if you want to capture a 
stream.  You’ll write the data into a circular buffer, and write an ioctl 
handler to return that to the managing application.
— 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

******************

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: