From 17d57c7c13b6dae8a0246ca38e57cced29a2fa7d Mon Sep 17 00:00:00 2001 From: Paulina Hensman Date: Wed, 12 Dec 2018 09:34:26 +0100 Subject: [PATCH] Reintroduce division by two for audio playout delay When migrating the audio device, we accidentally dropped a /2 for PlayoutDelay. This meant we would estimate a delay of 150ms instead of 75ms for JavaAudioDeviceModules. This change fixes that. Bug: webrtc:7452 Change-Id: I20b70ebf141410209953243ae665644b92e480f5 Reviewed-on: https://webrtc-review.googlesource.com/c/113946 Commit-Queue: Paulina Hensman Reviewed-by: Henrik Andreassson Cr-Commit-Position: refs/heads/master@{#25986} --- .../native_unittests/audio_device/audio_device_unittest.cc | 4 ++-- sdk/android/src/jni/audio_device/audio_device_module.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc index 98d585387a..4ce61e24b1 100644 --- a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc +++ b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc @@ -747,12 +747,12 @@ TEST_F(AudioDeviceTest, // selected audio layer. Note that, this delay estimate will only be utilized // if the HW AEC is disabled. TEST_F(AudioDeviceTest, UsesCorrectDelayEstimateForHighLatencyOutputPath) { - EXPECT_EQ(kHighLatencyModeDelayEstimateInMilliseconds, + EXPECT_EQ(kHighLatencyModeDelayEstimateInMilliseconds / 2, TestDelayOnAudioLayer(AudioDeviceModule::kAndroidJavaAudio)); } TEST_F(AudioDeviceTest, UsesCorrectDelayEstimateForLowLatencyOutputPath) { - EXPECT_EQ(kLowLatencyModeDelayEstimateInMilliseconds, + EXPECT_EQ(kLowLatencyModeDelayEstimateInMilliseconds / 2, TestDelayOnAudioLayer( AudioDeviceModule::kAndroidJavaInputAndOpenSLESOutputAudio)); } diff --git a/sdk/android/src/jni/audio_device/audio_device_module.cc b/sdk/android/src/jni/audio_device/audio_device_module.cc index e04a01faea..28beb83264 100644 --- a/sdk/android/src/jni/audio_device/audio_device_module.cc +++ b/sdk/android/src/jni/audio_device/audio_device_module.cc @@ -505,7 +505,7 @@ class AndroidAudioDeviceModule : public AudioDeviceModule { int32_t PlayoutDelay(uint16_t* delay_ms) const override { // Best guess we can do is to use half of the estimated total delay. - *delay_ms = playout_delay_ms_; + *delay_ms = playout_delay_ms_ / 2; RTC_DCHECK_GT(*delay_ms, 0); return 0; }