Skip to content

Commit 10c3fc8

Browse files
author
Eric Laurent
committed
audioflinger: fix issue with camcorder and A2DP
Some audio HALs do not support well a device selection of 0 (no device) received on an input stream. This can happen because of a problem in the audioflinger code that handles the forwarding of the output device selection to the record thread for use by the pre processing modules that need it. If the output device is 0 (meaning no op, which happens when stopping playback over A2DP) audioflinger could not detect it was an output device selection and would forward it to the input stream (see AudioFlinger::setParameters() and RecordThread::checkForNewParameters_l(). Issue 6179641. Change-Id: Idae534521866538e0d12ba259a2834f402a922e2
1 parent 2b056c6 commit 10c3fc8

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

services/audioflinger/AudioFlinger.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,8 @@ status_t AudioFlinger::setParameters(int ioHandle, const String8& keyValuePairs)
794794
// indicate output device change to all input threads for pre processing
795795
AudioParameter param = AudioParameter(keyValuePairs);
796796
int value;
797-
if (param.getInt(String8(AudioParameter::keyRouting), value) == NO_ERROR) {
797+
if ((param.getInt(String8(AudioParameter::keyRouting), value) == NO_ERROR) &&
798+
(value != 0)) {
798799
for (size_t i = 0; i < mRecordThreads.size(); i++) {
799800
mRecordThreads.valueAt(i)->setParameters(keyValuePairs);
800801
}

0 commit comments

Comments
 (0)