Wednesday, June 16, 2010

So, what is an AudioFlinger?

Its been some time since I posted anything, so I will try to make this relevant to my chosen topic.
[Aside: a blog specific to one topic is harder than I thought]

Due to constant shifting responsibilities and a flux of new FAE's into the Linux/Android wireless group here at the office, I have decided (read "been asked") to work on some training presentations. While doing so, I have been going deeper into some sections of code than I have in recent history.

So, what is an AudioFlinger?

An AudioFlinger (sorry google engineers for over simplifying) exists to handle these main responsibilities:
  1. Provide a single (stereo/mono) output path for PCM at a specified sample rate (OMAP3/4 is using 44.1KHz). I am (also) ignoring the oft-ignored DIRECT_OUT option for simplicity.
  2. Provide a software mixer for various playback stream types: ringer, notifications, voice-calls, music, touch tones, and key clicks.
  3. Resample these playback streams as necessary to match the desired output frequency.
  4. Provide a single input capture path at a determined sample rate.
In a single sentence - AudioFlinger is... not something people are likely to learn about from me. Unless they ask questions during my training next week.... maybe I will post some block diagrams afterward...

7 comments:

  1. correction: omap4 is using 48k output Fs, not 44.1k...

    ReplyDelete
  2. Hi,
    i want to go throw your go throw your training material and block diagrams. so could you mail me or post in your blog

    Thanks

    Amit

    ReplyDelete
  3. please share me the complete Audio playback flow from media server to stagefright then call to audio flinger and in last to alsa driver

    ReplyDelete
  4. hi,
    Please do share the flow with me as well.. struggling since quite some time learning audio flinger...
    Thanks in Advance,
    Satish

    ReplyDelete
  5. Hi,
    Please do share the flow with me as well.. struggling since quite some time learning audio flinger...
    i want to go throw your go throw your training material and block diagrams. so could you mail me or post in your blog.

    Thx,
    Pramodh

    ReplyDelete
  6. Hi,

    This post is short but effective.
    Can you please share the diagram/flow with me too?

    Thanks
    Yechiel

    ReplyDelete
  7. Hi,

    This post is short but effective.
    Can you please share the diagram/flow with me too?

    Thanks
    Yechiel

    ReplyDelete