fxos audio playback 101
TRANSCRIPT
GECKO
3
mVideoQueue
MDSM
mAudioQueue
AudioSink AudioStream
AudioLoop()mAudioSink mAudioStreamWrite()
mBuffer
AUDIO PLAYBACK OVERVIEW
GONK
4
AudioTrack
Audio Buffer
MediaServer
AudioFlinger
AudioPolicy Service
HAL
Audio Module
AudioPolicy Module
Linux Kernel
ALSA/OSS Custom Driver
AUDIO PLAYBACK OVERVIEW
FXOS
5
AUDIO PLAYBACK OVERVIEW
Gecko
Gonk
MDSM AudioSink AudioStream Lib Cubeb
AudioTrack AudioSystemNative Framework
AudioFlinger AudioPolicy Service
Media Server
AudioHardware AudioPolicyManagerHAL
Linux Kernel
OpenSL NDK
ANDROID
6
AUDIO OUTPUT DEVICES
Stream Types Strategies DevicesAudio
Channel Types
Output device
Earpiece Speaker Wired headset/phone Bluetooth SCO headset/carkit Bluetooth A2DP headphone/speaker
…
Media Phone Sonification Sonification respectful DTMF Enforce audible
Voice call System Ring Music Alarm Notification BT SCO Enforce audible DTMF TTS FM
ANDROID
7
AUDIO OUTPUT PROFILES
Inputs
Outputs
IOProfiles
IOProfiles
Sample rates
Channel masks
Formats
Devices
Modules
primary/a2dp/usbkhz
mono/stereo
mp3/aac/…
speaker/headset…
ANDROID
8
AUDIO PLAYBACK FLOW
AudioTrack
AudioSystem AudioPolicy Service
GetOutput() OpenOutput()
Data flow
AudioFlinger
Playback Thread
mTracks Audio Mixer
AudioHardware