See attached diagram "Audio playback architecture.pdf".
This shows 3 major paths that audio can be played out, 
however these are not the only paths.

1. Low latency tracks are mixed directly by fast mixer.
They have attenuation applied, but no resampling or app processor effects.

2. Normal latency tracks are mixed by normal mixer,
and in addition to attenuation can have optional resampling
or app processor effects applied. Both of the latter can use
significant CPU time, and may be bursty in CPU consumption,
thus this is why they are limited to normal tracks.
The output of normal mixer is a single fast track (via a memory pipe),
which then is treated as (1) above by fast mixer.

3. Deep buffer tracks, used for music playback with screen off,
go through a similar path as #2 but without the fast mixer part.
After the mix is done, it is written directly to HAL.

There are other paths but they are less relevant to your question.

So to answer your question: no there is no single point.
If you're applying CPU-intensive processing, I would recommed
adding them to the normal mixer path used for #2 and #3.
Avoid adding them to fast mixer as this will likely cause
performance problems for lower latency tracks.


On Wednesday, March 5, 2014 6:20:02 PM UTC-8, AudioLinger wrote:
>
> Hi all,
>
> I've been reading through AudioFlinger and audio hardware code looking for 
> the place where all audio from all tracks and sessions comes together. My 
> initial guess was the audio mixer, but there are now two audio mixers (the 
> normal one and the FastMixer). When looking at the ssize_t AudioFlinger::
> PlaybackThread::threadLoop_write() method inside 
> frameworks/av/services/audioflinger/Threads.cpp, depending on existence of 
> a "normal sink" we either process audio through a mixer or, if I understand 
> it correctly, send it directly to the hardware to take care of. My goal is 
> to be able to process all audio (except phone call and other such special 
> things) that the device outputs. The above mentioned method was my best 
> guess, but even at that point it splits into different mixing strategies.
>
> Any pointers?
>

-- 
-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

--- 
You received this message because you are subscribed to the Google Groups 
"android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-porting+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Attachment: Audio playback architecture.pdf
Description: Adobe PDF document

Reply via email to