[wdmaudiodev] Re: vista/win7 APO questions

  • From: Alex Green <alexgreen4834@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Mon, 28 Dec 2009 06:07:26 -0800 (PST)

Thanks for your response Tim.

Please consider the following examples:

Assume that there will be some information exchange between the input LFX and 
output GFX through a memory mapped file. 

Or assume that there are multiple applications using the same input device 
(multiple instance LFXs) and there will be some information exchange among LFX 
instances.

For those cases, can I assume if APOProcess calls of GFXs and LFXs are 
serialized by AudioDG?  If preemption is possible then I need to protect and 
synchronize the exchanged information somehow agains the multithreading. 

Thanks,

Alex


 



________________________________
From: Tim Roberts <timr@xxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx
Sent: Wed, December 23, 2009 7:40:51 PM
Subject: [wdmaudiodev] Re: vista/win7 APO questions

Alex Green wrote: 

>
>I wonder if someone can answer the following question. Thanks in advance.
>
>Can APOs preempt each other in their APOProcess calls? If not, is it safe to 
>assume that they are serialized?  
>
>Related to that question, how's the thread policy for each APO on AudioDG 
>process? A common thread for all APOs? Seperate threads for each APO?  One 
>thread for LFXs and one thread for GFXs?  Or any other?
The overriding philosophy is that there is only one APO of each type: one LFX 
on input, one LFX and one GFX on output.  If you install an APO where one 
already exists, it is your responsibility to wrap and call any APO that might 
already have been installed, much like superclassing a window.  Theoretically, 
the only case that can occur here is if you want to add a vendor-specific APO 
where the Microsoft effects APO is already installed.

Because of that philosophy, I don't think the question is meaningful.  On 
output, the LFX is called first, then the GFX.

-- 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.



      

Other related posts: