policy_hal: Fix pop noise when MO call is started, while playing music
Pops heard when MO call is initiated while music playback is in progress.
This is due to a new device is set up for the output even before the
leftover buffers were drained out on the previous device.
This change is to make sure to add proper delay while device routing,
which is equal to twice of Output descriptor latency.
CRs-Fixed: 906398
Change-Id: I3b8059b8966251e0e0cc979c968205dffebc14f0
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp
index 9fd6838..64a877a 100644
--- a/policy_hal/AudioPolicyManager.cpp
+++ b/policy_hal/AudioPolicyManager.cpp
@@ -26,7 +26,6 @@
#else
#define ALOGVV(a...) do { } while(0)
#endif
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
// A device mask for all audio output devices that are considered "remote" when evaluating
// active output devices in isStreamActiveRemotely()
@@ -35,9 +34,6 @@
// type alone is not enough: the address must match too
#define APM_AUDIO_DEVICE_MATCH_ADDRESS_ALL (AUDIO_DEVICE_IN_REMOTE_SUBMIX | \
AUDIO_DEVICE_OUT_REMOTE_SUBMIX)
-// Following delay should be used if the calculated routing delay from all active
-// input streams is higher than this value
-#define MAX_VOICE_CALL_START_DELAY_MS 100
#include <inttypes.h>
#include <math.h>
@@ -845,9 +841,6 @@
setStrategyMute(STRATEGY_SONIFICATION, false, desc, MUTE_TIME_MS,
getDeviceForStrategy(STRATEGY_SONIFICATION, true /*fromCache*/));
}
- ALOGV("Setting the delay from %dms to %dms", delayMs,
- MIN(delayMs, MAX_VOICE_CALL_START_DELAY_MS));
- delayMs = MIN(delayMs, MAX_VOICE_CALL_START_DELAY_MS);
}
if (hasPrimaryOutput()) {