[wdmaudiodev] Re: AVStream virtual audio driver: different sound quality dependently on the number of CPU cores.

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Sun, 24 Jul 2016 20:26:39 -0700

On Jul 24, 2016, at 7:30 AM, alexander ivash <elderorb@xxxxxxxxx> wrote:


Well, it seems to be working fine so far. But if it wouldn't work, I'm not  
sure what is the best approach then... If it is not possible to force  
custom framing, let say 4 times bigger frame than standard one then do I  
understand correctly that it might be required to calls  
KsAttemptProcessing from slower-than-10ms DPC several times (for example,  
for 40ms DPC and 10ms frame there should be 4 calls of  
KsAttemptProcessing?).

In my view, KsAttemptProcessing isn't all that useful.  Once you get rolling, 
you should get a new empty buffer (and hence a call to your Process callback) 
just as often as you send off a filled buffer.  It's a closed loop -- you fill 
a buffer, the renderer empties it, and the graph returns it back to you, which 
triggers Process.  Remember that it doesn't do any good to call 
KsAttemptProcessing unless you know there are unfilled buffers in your stream.


Probably this can be solved more correctly in pin-centric approach, but I  
just want to ensure I fully understand how can it be workarounded for  
filter-centric. Based on what I read KsAttemptProcessing is filter-centric  
way, and stream pointer manipulations is pin-centric way.

For a filter with one pin, there isn't any philosophical difference between 
filter-cetric and pin-centric.  The difference comes when you are trying to 
coordinate two pins.
— 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

Other related posts: