From dbffc2b1014c98d2421d03e8e928ba78c295a9d7 Mon Sep 17 00:00:00 2001
From: Glenn Kasten
Date: Thu, 18 Apr 2013 17:26:23 -0700
Subject: Add audio terminology
Change-Id: I75533232275c24d0413931296b7f132efc40d6dc
---
src/devices/audio_terminology.jd | 218 +++++++++++++++++++++++++++++++++++++++
src/devices/devices_toc.cs | 1 +
2 files changed, 219 insertions(+)
create mode 100644 src/devices/audio_terminology.jd
diff --git a/src/devices/audio_terminology.jd b/src/devices/audio_terminology.jd
new file mode 100644
index 00000000..f6258502
--- /dev/null
+++ b/src/devices/audio_terminology.jd
@@ -0,0 +1,218 @@
+page.title=Audio Terminology
+@jd:body
+
+
+
+
+This document provides a glossary of audio-related terminology, including
+a list of widely used, generic terms and a list of terms that are specific
+to Android.
+
+
+Generic Terms
+
+
+These are audio terms that are widely used, with their conventional meanings.
+
+
+
+
+- bits per sample or bit depth
+-
+Number of bits of information per sample.
+
+
+- channel
+-
+A single stream of audio information, usually corresponding to one
+location of recording or playback.
+
+
+- frame
+-
+A set of samples, one per channel, at a point in time.
+
+
+- frames per buffer
+-
+The number of frames handed from one module to the next at once;
+for example the audio HAL interface uses this concept.
+
+
+- mono
+-
+One channel.
+
+
+- sample
+-
+A number representing the audio value for a single channel at a point in time.
+
+
+- sample rate or frame rate
+-
+Number of frames per second;
+note that "frame rate" is thus more accurate,
+but "sample rate" is conventionally used to mean "frame rate".
+
+
+- stereo
+-
+Two channels.
+
+
+
+
+Android-Specific Terms
+
+
+These are terms that are specific to Android audio framework, or that
+may have a special meaning within Android beyond their general meaning.
+
+
+
+
+- ALSA
+-
+Advanced Linux Sound Architecture. As the name suggests, it is an audio
+framework primarily for Linux, but it has influenced other systems.
+See Wikipedia article
+ALSA
+for the general definition. As used within Android, it refers primarily
+to the kernel audio framework and drivers, not to the user-mode API. See
+tinyalsa.
+
+
+- AudioFlinger
+-
+The sound server implementation for Android. AudioFlinger
+runs within the mediaserver process. See Wikipedia article
+Sound server
+for the generic definition.
+
+
+- AudioMixer
+-
+The module within AudioFlinger responsible for
+combining multiple tracks and applying attenuation
+(volume) and certain effects. The Wikipedia article
+Audio mixing (recorded music)
+may be useful for understanding the generic
+concept. But that article describes a mixer more as a hardware device
+or a software application, rather than a software module within a system.
+
+
+- AudioRecord
+-
+The primary low-level client API for receiving data from an audio
+input device such as microphone. The data is usually in PCM format.
+
+
+- AudioResampler
+-
+The module within AudioFlinger responsible for sample-rate conversion. See Wikipedia article
+Resampling (audio)
+for the generic definition.
+
+
+- audio policy
+-
+Service responsible for all actions that require a policy decision
+to be made first, such as opening a new I/O stream, re-routing after a
+change and stream volume management.
+
+
+- AudioTrack
+-
+The primary low-level client API for sending data to an audio output
+device such as a speaker. The data is usually in PCM format.
+
+
+- client
+-
+Usually same as application or app, but sometimes the "client" of
+AudioFlinger is actually a thread running within the mediaserver system
+process. An example of that is when playing media that is decoded by a
+MediaPlayer object.
+
+
+- HAL
+-
+Hardware Abstraction Layer. HAL is a generic term in Android. With
+respect to audio, it is a layer between AudioFlinger and the kernel
+device driver with a C API, which replaces the earlier C++ libaudio.
+
+
+- FastMixer
+-
+A thread within AudioFlinger that services lower latency "fast tracks"
+and drives the primary output device.
+
+
+- fast track
+-
+An AudioTrack client with lower latency but fewer features, on some devices.
+
+
+- MediaPlayer
+-
+A higher-level client API than AudioTrack, for playing either encoded
+content, or content which includes multi-media audio and video tracks.
+
+
+- mediaserver
+-
+An Android system process that contains a number of media-related
+services, including AudioFlinger.
+
+
+- NBAIO
+-
+An abstraction for "non-blocking" audio input/output ports used within
+AudioFlinger. The name can be misleading, as some implementations of
+the NBAIO API actually do support blocking. The key implementations of
+NBAIO are for pipes of various kinds.
+
+
+- normal mixer
+-
+A thread within AudioFlinger that services most full-featured
+AudioTrack clients, and either directly drives an output device or feeds
+it's sub-mix into FastMixer via a pipe.
+
+
+- OpenSL ES
+-
+An audio API standard by The Khronos Group. Android versions since
+API level 9 support a native audio API which is based on a subset of
+OpenSL ES 1.0.1.
+
+
+- StateQueue
+-
+A module within AudioFlinger responsible for synchronizing state
+among threads. Whereas NBAIO is used to pass data, StateQueue is used
+to pass control information.
+
+
+- tinyalsa
+-
+A small user-mode API above ALSA kernel with BSD license, recommended
+for use by HAL implementations.
+
+
+- track
+-
+An audio stream, controlled by the AudioTrack API.
+
+
+
+
+
+
diff --git a/src/devices/devices_toc.cs b/src/devices/devices_toc.cs
index 36ac8cc2..4e514b6b 100644
--- a/src/devices/devices_toc.cs
+++ b/src/devices/devices_toc.cs
@@ -36,6 +36,7 @@
Warmup
Avoiding Priority Inversion
Design For Reduced Latency
+ Terminology
Camera v1
--
cgit v1.2.3