Hi,

I am working on an open source VOIP project.

On MacOSX (tested with version 10.10 - Yosemite), we had an echo. So we wanted 
to add system echo canceller. kAudioUnitSubType_VoiceProcessingIO seems to be 
the appropriate solution.

Our audio architecture (without echo canceller) is quite simple :
- 1 ringbuffer : a circular buffer where audio samples are stored and loaded

- 1 audio unit to capture micro (inputUnit_)
  * inputUnit_ is a subtype kAudioUnitSubType_HALOutput
  * inputUnit_ has a inputCallback that write audio samples from microphone to 
our ring buffer

- 1 audio unit to output audio (outputUnit_)
  * outputUnit_ is a subtype kAudioUnitSubType_DefaultOutput
  * outputUnit_ has a RenderCallback that read audio samples from ring buffer 
and output them on speakers



This system works fine, but as I said, we have an echo.
The full GPL code is available there :
http://pastebin.com/pth0f8wt



I tried then to switch outputUnit_ from kAudioUnitSubType_DefaultOutput to 
kAudioUnitSubType_VoiceProcessingIO. I also ensure to disable output muting.
The full GPL code is available there :
http://pastebin.com/kAwL8fax


With kAudioUnitSubType_VoiceProcessingIO, I still have an echo. Could you tell 
me what I am doing wrong ? Could we use kAudioUnitSubType_VoiceProcessingIO 
with my architecture ? Shall we use more complicated pattern such as AUgraph ?


Thanks,

Eloi



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to