diff options
author | Eric Laurent <elaurent@google.com> | 2010-10-25 16:57:52 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2010-10-25 16:57:52 -0700 |
commit | 09687808c457b78e4134961c140a3862384d87ea (patch) | |
tree | d2c9382e3ff3bf842a3eb6d726e5c1ed8e40ef72 /libaudio2 | |
parent | 08f0c7f7a98cda8b3ccc1fe9efb6affe5d63215e (diff) | |
download | device_samsung_crespo-09687808c457b78e4134961c140a3862384d87ea.zip device_samsung_crespo-09687808c457b78e4134961c140a3862384d87ea.tar.gz device_samsung_crespo-09687808c457b78e4134961c140a3862384d87ea.tar.bz2 |
Fix issue 3130388.
The problem comes from the way the codec driver handles codec path and clock configuration
when a call is terminated: the driver relies on the pcm output stream to be stopped and restarted
between two calls. This is not the case if music is playing when a first call is received and not stopped
before a second call is received.
Implemented a workaround in audio HAL that forces the output stream into standby when the call is terminated.
Change-Id: I58ed6f4e3a5edb0e363c06580e2b97ce68988c4c
Diffstat (limited to 'libaudio2')
-rw-r--r-- | libaudio2/AudioHardware.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libaudio2/AudioHardware.cpp b/libaudio2/AudioHardware.cpp index 89fc3f3..40a7458 100644 --- a/libaudio2/AudioHardware.cpp +++ b/libaudio2/AudioHardware.cpp @@ -310,7 +310,7 @@ status_t AudioHardware::setMode(int mode) } if (mMode == AudioSystem::MODE_NORMAL && mInCallAudioMode) { setVoiceRecognition_l(mVrModeEnabled); - LOGV("setMode() closePcmOut_l()"); + LOGV("setMode() closeMixer_l()"); closeMixer_l(); LOGV("setMode() closePcmOut_l()"); closePcmOut_l(); @@ -328,6 +328,7 @@ status_t AudioHardware::setMode(int mode) if (spOut != 0) { spOut->setNextRoute(getOutputRouteFromDevice(spOut->device())); + spOut->standby(); } if (spIn != 0) { spIn->setNextRoute(getInputRouteFromDevice(spIn->device())); |