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

FxOS Audio Playback 101

Aug 15, 2015

Download

Software

Alastor Wu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FxOS Audio Playback 101

Text

FxOS Audio Playback 101Alastor Wu 2015/06/12

Page 2: FxOS Audio Playback 101

OUTLINE

2

Data flow !

Outputs selection

Page 3: FxOS Audio Playback 101

GECKO

3

mVideoQueue

MDSM

mAudioQueue

AudioSink AudioStream

AudioLoop()mAudioSink mAudioStreamWrite()

mBuffer

AUDIO PLAYBACK OVERVIEW

Page 4: FxOS Audio Playback 101

GONK

4

AudioTrack

Audio Buffer

MediaServer

AudioFlinger

AudioPolicy Service

HAL

Audio Module

AudioPolicy Module

Linux Kernel

ALSA/OSS Custom Driver

AUDIO PLAYBACK OVERVIEW

Page 5: FxOS Audio Playback 101

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

Page 6: FxOS Audio Playback 101

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

Page 7: FxOS Audio Playback 101

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…

Page 8: FxOS Audio Playback 101

ANDROID

8

AUDIO PLAYBACK FLOW

AudioTrack

AudioSystem AudioPolicy Service

GetOutput() OpenOutput()

Data flow

AudioFlinger

Playback Thread

mTracks Audio Mixer

AudioHardware

Page 9: FxOS Audio Playback 101

9

END