FxOS Audio Playback 101

9
FxOS Audio Playback 101 Alastor Wu 2015/06/12

Transcript of FxOS Audio Playback 101

Text

FxOS Audio Playback 101Alastor Wu 2015/06/12

OUTLINE

2

Data flow !

Outputs selection

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

9

END