diff options
author | Sachiyo Sugimoto <sachiyo@google.com> | 2019-08-24 00:05:44 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-08-24 00:05:44 +0000 |
commit | 1a6d21d0e81efe7bd5af5d746ef7979d94eb0c29 (patch) | |
tree | 503f4edf215b08b9bb58b5d83cb29061790f4f06 | |
parent | a34d637b1d0264d83216a8ebde6916c93216a8da (diff) | |
parent | 85ed8e48a665908ca6698372f7ce5cbec63ccf40 (diff) | |
download | platform_compatibility_cdd-1a6d21d0e81efe7bd5af5d746ef7979d94eb0c29.tar.gz platform_compatibility_cdd-1a6d21d0e81efe7bd5af5d746ef7979d94eb0c29.tar.bz2 platform_compatibility_cdd-1a6d21d0e81efe7bd5af5d746ef7979d94eb0c29.zip |
Merge "CDD: Add requirements for audio signal integrity" into qt-dev
-rw-r--r-- | 5_multimedia/5_10_professional-audio.md | 3 | ||||
-rw-r--r-- | 5_multimedia/5_6_audio-latency.md | 4 | ||||
-rw-r--r-- | 7_hardware-compatibility/7_8_audio.md | 132 |
3 files changed, 135 insertions, 4 deletions
diff --git a/5_multimedia/5_10_professional-audio.md b/5_multimedia/5_10_professional-audio.md index e9f0f0b0..eaf0537b 100644 --- a/5_multimedia/5_10_professional-audio.md +++ b/5_multimedia/5_10_professional-audio.md @@ -45,8 +45,7 @@ when both are active. * SHOULD document audio latency measurements over all paths. * SHOULD minimize jitter in audio buffer completion callback entry times, as this affects usable percentage of full CPU bandwidth by the callback. -* SHOULD provide zero audio underruns (output) or overruns (input) under normal use -at reported latency. +* SHOULD provide zero audio glitches under normal use at reported latency. * SHOULD provide zero inter-channel latency difference. * SHOULD minimize MIDI mean latency over all transports. * SHOULD minimize MIDI latency variability under load (jitter) over all transports. diff --git a/5_multimedia/5_6_audio-latency.md b/5_multimedia/5_6_audio-latency.md index 8f04f1fb..bc14b838 100644 --- a/5_multimedia/5_6_audio-latency.md +++ b/5_multimedia/5_6_audio-latency.md @@ -42,6 +42,10 @@ within [Android NDK](https://developer.android.com/ndk/index.html). stream and the estimated time when that frame enters or leaves the audio processing pipeline on the associated endpoint. See also [AudioTimestamp](https://developer.android.com/reference/android/media/AudioTimestamp). +* **glitch**. A temporary interruption or incorrect sample value in the audio signal, +typically caused by a +[buffer underrun](https://en.wikipedia.org/wiki/Buffer_underrun) for output, +buffer overrun for input, or any other source of digital or analog noise. If device implementations declare `android.hardware.audio.output`, they MUST meet or exceed the following requirements: diff --git a/7_hardware-compatibility/7_8_audio.md b/7_hardware-compatibility/7_8_audio.md index b1ec1188..689963eb 100644 --- a/7_hardware-compatibility/7_8_audio.md +++ b/7_hardware-compatibility/7_8_audio.md @@ -114,5 +114,133 @@ If [`PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND`]( http://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND) is "true": -* [C-2-1] The speaker's mean response in 18.5 kHz - 20 kHz MUST be no lower -than 40 dB below the response at 2 kHz. +* [C-2-1] The speaker's mean response in 18.5 kHz - 20 kHz MUST be no lower than 40 dB below the response at 2 kHz. + +### 7.8.4\. Signal Integrity + +Device implementations: +* SHOULD provide a glitch-free audio signal path for both input + and output streams on handheld devices, as defined by zero glitches + measured during a test of one minute per path. + Test using [OboeTester] + (https://github.com/google/oboe/tree/master/apps/OboeTester) + “Automated Glitch Test”. + +The test requires an [audio loopback dongle] +(https://source.android.com/devices/audio/latency/loopback), +used directly in a 3.5mm jack, and/or in combination with a USB-C to 3.5mm adapter. +All audio output ports SHOULD be tested. + +OboeTester currently supports AAudio paths, so the +following combinations SHOULD be tested for glitches using AAudio: + +<table> + <tr> + <th>Perf Mode + <th>Sharing + <th>Out Sample Rate + <th>In Chans + <th>Out Chans + </tr> + <tr> + <td>LOW_LATENCY</td> + <td>EXCLUSIVE</td> + <td>UNSPECIFIED</td> + <td>1</td> + <td>2</td> + </tr> + <tr> + <td>LOW_LATENCY</td> + <td>EXCLUSIVE</td> + <td>UNSPECIFIED</td> + <td>2</td> + <td>1</td> + </tr> + <tr> + <td>LOW_LATENCY</td> + <td>SHARED</td> + <td>UNSPECIFIED</td> + <td>1</td> + <td>2</td> + </tr> + <tr> + <td>LOW_LATENCY</td> + <td>SHARED</td> + <td>UNSPECIFIED</td> + <td>2</td> + <td>1</td> + </tr> + <tr> + <td>NONE</td> + <td>SHARED</td> + <td>48000</td> + <td>1</td> + <td>2</td> + </tr> + <tr> + <td>NONE</td> + <td>SHARED</td> + <td>48000</td> + <td>2</td> + <td>1</td> + </tr> + <tr> + <td>NONE</td> + <td>SHARED</td> + <td>44100</td> + <td>1</td> + <td>2</td> + </tr> + <tr> + <td>NONE</td> + <td>SHARED</td> + <td>44100</td> + <td>2</td> + <td>1</td> + </tr> + <tr> + <td>NONE</td> + <td>SHARED</td> + <td>16000</td> + <td>1</td> + <td>2</td> + </tr> + <tr> + <td>NONE</td> + <td>SHARED</td> + <td>16000</td> + <td>2</td> + <td>1</td> + </tr> +</table> + +A reliable stream SHOULD meet the following criteria for Signal to Noise +Ratio (SNR) and Total Harmonic Distortion (THD) for 2000 Hz sine. + +<table> + <tr> + <th>Transducer</th> + <th>THD</th> + <th>SNR</th> + </tr> + <tr> + <td>primary built-in speaker, measured using an external reference microphone</td> + <td>< 3.0%</td> + <td>>= 50 dB</td> + </tr> + <tr> + <td>primary built-in microphone, measured using an external reference speaker</td> + <td>< 3.0%</td> + <td>>= 50 dB</td> + </tr> + <tr> + <td>built-in analog 3.5 mm jacks, tested using loopback adapter</td> + <td>< 1%</td> + <td>>= 60 dB</td> + </tr> + <tr> + <td>USB adapters supplied with the phone, tested using loopback adapter</td> + <td>< 1.0%</td> + <td>>= 60 dB</td> + </tr> +</table> |