[wdmaudiodev] Re: sysvad SwapAPO

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 15 Mar 2019 00:05:53 -0700

On Mar 14, 2019, at 10:48 AM, amd 22102018 <amd22102018@xxxxxxxxx> wrote:


Questions:-
1. List the API's that are used by the application to communicate with the 
Virtaul Audio Driver.

I sent you this previously.  There's nothing special about sysvad or the APOs.  
Applications just use the usual audio APIs, and Windows has several to choose 
from.  Any Windows app using audio can show you this.


2. What are APO entry Functions kindly please list them and explain me about 
them clearly.

You said you have the APO running, right?  Then you can see the APO functions 
right there.  The IAudioProcessingObject and IAudioProcessingObjectRT 
interfaces are the key interfaces.  IAudioProcessingObjectRT::APOProcess does 
the work.

https://docs.microsoft.com/en-us/windows/desktop/api/audioenginebaseapo/nn-audioenginebaseapo-iaudioprocessingobject
 
<https://docs.microsoft.com/en-us/windows/desktop/api/audioenginebaseapo/nn-audioenginebaseapo-iaudioprocessingobject>
https://docs.microsoft.com/en-us/windows/desktop/api/audioenginebaseapo/nn-audioenginebaseapo-iaudioprocessingobjectrt
 
<https://docs.microsoft.com/en-us/windows/desktop/api/audioenginebaseapo/nn-audioenginebaseapo-iaudioprocessingobjectrt>


3. I want to use a new Algorithm written in MATLAB.  I've converted it in to 
"C Code" If i want to use it as an APO how can I be done. What will be the 
Entry Point Functions in that algorithm & how to call this from sysvad 
virtual audio driver.

You don't call it.  You register your APO in the INF when you install the 
driver, and the Audio Engine will call your APO during its normal processing.  
The audio driver never interfaces with APOs.  The only relationship between the 
two is that they are installed together.


*** How can a APO be hooked in Render graph & Capture graph(I know render 
means from application to endpoint i.e speakers & Capture via Microphone to 
Application)

In your INF, you'll add the APO interface(s) to whichever endpoints you need to 
support.


5. How can I learn the Driver Flow starting from "DriverEntry". If possible 
provide me the Logs of Syvad Virtual Audio Drivers i.e Slate Audio Sample and 
kindly let me know the place where the APO's are hooked(i think it is at the 
Entry into the Audio Engine) 

The APOs are not called by sysvad.  They are called by the Audio Engine before 
it shoves the data into the simulated device's circular buffer.


Tell me how the Hardware DSP effects can be implemented as a sAPO how can it 
be hooked to the Driver and Audio Engine as a APO. I want to hook it in 
Capture Graph of sysvad. 

https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/implementing-hardware-offloaded-apo-effects


I know that audio engine knows about the existence of APO by the entries in 
.INF

Of course, because the Audio Engine is the only consumer of APOs.


6. Is there any tool to see the Driver calls and API's.

You can monitor the debug messages with DebugView, or by using the kernel 
debugger.
— 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

Other related posts: