summaryrefslogtreecommitdiffstats
path: root/libaudio2
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2010-10-25 16:57:52 -0700
committerEric Laurent <elaurent@google.com>2010-10-25 16:57:52 -0700
commit09687808c457b78e4134961c140a3862384d87ea (patch)
treed2c9382e3ff3bf842a3eb6d726e5c1ed8e40ef72 /libaudio2
parent08f0c7f7a98cda8b3ccc1fe9efb6affe5d63215e (diff)
downloaddevice_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.cpp3
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()));