Hi I'm looking to add some new AudioEffects into the framework and also get a good understanding of the implementation architecture of the AudioEffects framework. I can't find any documentation about these. Is there any publicly available that I've missed?
Specifically I'm not clear on how the Effects framework instantiates effects when the same effect is applied to multiple tracks. Looking at the AudioFlinger source code, it seems like effects are applied either per-track before mixing, or on the output mix from the mixer. This all makes sense, but the higher level APIs/Java API refers to: * same effect engine being used multiple times * CPU load limiting to allocate effects to particular users * and some "connectMode" (EFFECT_INSERT or EFFECT_AUXILIARY), the ultimate purpose/implementation of which I'm unsure. In general, I'm not sure what this means for the implementation. The documentation states that an EFFECT_AUXILIARY effect must be created on the global output mix, but then implies that a media player or audio track will only be "fed into this effect" if they are explicitly attached and a send-level is specified. How can an effect that is configured for session 0 (global output mix) end up not applying to an audio track from an application? Does it get mixed seperately in Audio Flinger? Also, is there a way to enforce that effects don't end up conflicting with eachother? e.g. Bass enhancement applying on an Audio Track and a Bass enhancement effect on the global output mix. Finally, what do Audio Effect implementations need to consider for the case that the output device is transitioning from one to another (e.g. speaker to bluetooth headset), or when 2 output devices are being used at the same time (e.g. when ringtone plays it can play over speaker and bluetooth headset simultaneously). Thanks Eugene -- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting
