[wdmaudiodev] Re: AERT_Allocate "size" parameter & how to use AERT_x with std::vector

  • From: "Matthew van Eerde" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "Matthew.van.Eerde" for DMARC)
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 25 Oct 2018 13:16:54 +0000

  1.  You have found a bug in the documentation. “size” is the number of bytes.
  2.  You could, I suppose, continue to use std::vector and friends, as long as 
you use a custom allocator that uses AERT_Allocate under the hood. It’s very 
important that all the calls to std::vector::push_back and friends happen 
before streaming starts – you can’t call anything that might block in 
APOProcess, or you will glitch, and memory allocation sometimes blocks.

________________________________
From: wdmaudiodev-bounce@xxxxxxxxxxxxx <wdmaudiodev-bounce@xxxxxxxxxxxxx> on 
behalf of Culann mac Cabe <culann@xxxxxxxxxx>
Sent: Wednesday, October 24, 2018 2:09:58 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] AERT_Allocate "size" parameter & how to use AERT_x with 
std::vector

Hello wdmaudiodev people.

I am developing an APO and am doing some cleaning up work, including 
implementing  AERT_Allocate for all my memory allocation.  I have a compound 
question:

  1.  The doc 
https://docs.microsoft.com/en-us/windows/desktop/api/baseaudioprocessingobject/nf-baseaudioprocessingobject-aert_allocate<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fdesktop%2Fapi%2Fbaseaudioprocessingobject%2Fnf-baseaudioprocessingobject-aert_allocate&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7C849311e343a94803fa8808d63990a24c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636759690771469345&sdata=32fWkOLOuzv8Hmr2L4CUrW6onAftmgVM%2B40XbzI1wCU%3D&reserved=0>
 defines the "size" parameter as " The number of input connections."  Is this 
correct?  It seems to me to be incomplete, as in without other info (eg audio 
sample data format) this can't evaluate to a byte size... so can someone please 
clarify what this paremeter should really mean?  (I'm guessing Bytes?)
  2.  I am currently using std:vector and std:queue for convenience to manage 
IO buffering.  Now that I am converting everything to use AERT_Allocate, can 
someone please provide guidance/code snippet as to how I can use AERT_Allocate 
in conjunction with eg std::vector - or do I have to revert to pure C arrays in 
this case?

Thanks!
Culann

Other related posts: