diff --git a/frameworks/base/services/core/java/com/android/server/audio/RecordingActivityMonitor.java b/frameworks/base/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
old mode 100644
new mode 100755
index 57d55de..13e9159
--- a/frameworks/base/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
+++ b/frameworks/base/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
@@ -136,13 +136,13 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin
final AudioFormat clientFormat = new AudioFormat.Builder()
.setEncoding(recordingInfo[0])
// FIXME this doesn't support index-based masks
- .setChannelMask(recordingInfo[1])
+ .setChannelMask(recordingInfo[1] != AudioFormat.CHANNEL_INVALID ? recordingInfo[1] : AudioFormat.CHANNEL_OUT_DEFAULT)// Modify duanzhanyang 20190905 multiple app record
.setSampleRate(recordingInfo[2])
.build();
final AudioFormat deviceFormat = new AudioFormat.Builder()
.setEncoding(recordingInfo[3])
// FIXME this doesn't support index-based masks
- .setChannelMask(recordingInfo[4])
+ .setChannelMask(recordingInfo[4] != AudioFormat.CHANNEL_INVALID ? recordingInfo[4] : AudioFormat.CHANNEL_OUT_DEFAULT)// Modify duanzhanyang 20190905 multiple app record
.setSampleRate(recordingInfo[5])
.build();
final int patchHandle = recordingInfo[6];
diff --git a/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
old mode 100644
new mode 100755
index f2eb931..426a549
--- a/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -1661,6 +1661,17 @@ audio_io_handle_t AudioPolicyManager::getInputForDevice(audio_devices_t device,
config.sample_rate = profileSamplingRate;
config.channel_mask = profileChannelMask;
config.format = profileFormat;
+ // Modify duanzhanyang 20190905 multiple app record begin
+ for (size_t input_index = 0; input_index < mInputs.size(); input_index++) {
+ sp<AudioInputDescriptor> desc;
+ desc = mInputs.valueAt(input_index);
+ if (desc->mProfile == profile) {
+ audioSession->changeActiveCount(1); // reference count add
+ desc->addAudioSession(session, audioSession);
+ return desc->mIoHandle;
+ }
+ }
+ // Modify duanzhanyang 20190905 multiple app record end
status_t status = mpClientInterface->openInput(profile->getModuleHandle(),
&input,
@@ -1714,7 +1725,6 @@ status_t AudioPolicyManager::startInput(audio_io_handle_t input,
ALOGW("startInput() unknown session %d on input %d", session, input);
return BAD_VALUE;
}
-
// virtual input devices are compatible with other input devices
if (!is_virtual_input_device(inputDesc->mDevice)) {