Dear all,
After upgrading to android 4.1, I noticed that AudioFlinger suffered a
lot of changes. The two big changes are introducing fast mixer & NBAIO, but
I'm not quite clear about the design purpose.
For NBAIO, my understanding is that audio HAL need to create a thread,
which will continuously call the callback which was registered through
writeVia(). Is it true?
For fast mixer, could you tell me why it is "fast"? According to my
understanding, the fast mixer's purpose is used to reduce latency for some
types of sound (e.g. ToneGenerator, SoundPool, etc.). If we always have a
large buffer, such latency can not be reduced in AudioFlinger level (As I
know, some vendor's solution is using 2 hardware buffers, 1 large buffer
for low power playback, and 1 small buffer for low latency playback). Could
you teach me what's the principle of fast mixer? According to the codes,
FastMixer will read data from MixerThread through MonoPipeReader, and then
do mixing and write mixed data to audio HAL. What's the purpose and benefit
of this mechanism?
<https://lh5.googleusercontent.com/-r4eY3Di8uWY/UEeCzo6f9II/AAAAAAAAAAM/w3mvjKcKfy4/s1600/JB-AudioFlinger.bmp>
Thanks a lot.
Best Wishes,
Xin Qian
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting