Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2de13eb4 authored by Venkata Narendra Kumar Gutta's avatar Venkata Narendra Kumar Gutta
Browse files

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
parent 9e8f9772
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -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 @@ void AudioPolicyManagerCustom::setPhoneState(audio_mode_t state)
            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()) {