Revert "audio policy: refactor audio record APIs"
This reverts commit 0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe.
Bug: 72628781
Test: Capture several videos from camera app
Change-Id: I6bcc87c618ac9bfe5c911915cbb37de616bc727a
diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
index 0ce562c..f1d7d86 100644
--- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
+++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp
@@ -287,7 +287,6 @@
audio_session_t session,
pid_t pid,
uid_t uid,
- const String16& opPackageName,
const audio_config_base_t *config,
audio_input_flags_t flags,
audio_port_handle_t *selectedDeviceId,
@@ -368,13 +367,6 @@
}
return status;
}
-
- sp<AudioRecordClient> client =
- new AudioRecordClient(*attr, *input, uid, pid, opPackageName, session);
- client->active = false;
- client->isConcurrent = false;
- client->isVirtualDevice = false; //TODO : update from APM->getInputForAttr()
- mAudioRecordClients.add(*portId, client);
}
if (audioPolicyEffects != 0) {
@@ -387,28 +379,23 @@
return NO_ERROR;
}
-status_t AudioPolicyService::startInput(audio_port_handle_t portId, bool *silenced)
+status_t AudioPolicyService::startInput(audio_io_handle_t input,
+ audio_session_t session,
+ audio_devices_t device,
+ uid_t uid,
+ bool *silenced)
{
+ // If UID inactive it records silence until becoming active
+ *silenced = !mUidPolicy->isUidActive(uid) && !is_virtual_input_device(device);
+
if (mAudioPolicyManager == NULL) {
return NO_INIT;
}
Mutex::Autolock _l(mLock);
-
- ssize_t index = mAudioRecordClients.indexOfKey(portId);
- if (index < 0) {
- return INVALID_OPERATION;
- }
- sp<AudioRecordClient> client = mAudioRecordClients.valueAt(index);
-
- // If UID inactive it records silence until becoming active
- *silenced = !mUidPolicy->isUidActive(client->uid) && !client->isVirtualDevice;
-
AudioPolicyInterface::concurrency_type__mask_t concurrency =
AudioPolicyInterface::API_INPUT_CONCURRENCY_NONE;
-
- status_t status = mAudioPolicyManager->startInput(
- client->input, client->session, *silenced, &concurrency);
+ status_t status = mAudioPolicyManager->startInput(input, session, *silenced, &concurrency);
if (status == NO_ERROR) {
LOG_ALWAYS_FATAL_IF(concurrency & ~AudioPolicyInterface::API_INPUT_CONCURRENCY_ALL,
@@ -426,52 +413,38 @@
return status;
}
-status_t AudioPolicyService::stopInput(audio_port_handle_t portId)
+status_t AudioPolicyService::stopInput(audio_io_handle_t input,
+ audio_session_t session)
{
if (mAudioPolicyManager == NULL) {
return NO_INIT;
}
Mutex::Autolock _l(mLock);
- ssize_t index = mAudioRecordClients.indexOfKey(portId);
- if (index < 0) {
- return INVALID_OPERATION;
- }
- sp<AudioRecordClient> client = mAudioRecordClients.valueAt(index);
-
- return mAudioPolicyManager->stopInput(client->input, client->session);
+ return mAudioPolicyManager->stopInput(input, session);
}
-void AudioPolicyService::releaseInput(audio_port_handle_t portId)
+void AudioPolicyService::releaseInput(audio_io_handle_t input,
+ audio_session_t session)
{
if (mAudioPolicyManager == NULL) {
return;
}
sp<AudioPolicyEffects>audioPolicyEffects;
- sp<AudioRecordClient> client;
{
Mutex::Autolock _l(mLock);
audioPolicyEffects = mAudioPolicyEffects;
- ssize_t index = mAudioRecordClients.indexOfKey(portId);
- if (index < 0) {
- return;
- }
- client = mAudioRecordClients.valueAt(index);
- mAudioRecordClients.removeItem(portId);
- }
- if (client == 0) {
- return;
}
if (audioPolicyEffects != 0) {
// release audio processors from the input
- status_t status = audioPolicyEffects->releaseInputEffects(client->input, client->session);
+ status_t status = audioPolicyEffects->releaseInputEffects(input, session);
if(status != NO_ERROR) {
- ALOGW("Failed to release effects on input %d", client->input);
+ ALOGW("Failed to release effects on input %d", input);
}
}
{
Mutex::Autolock _l(mLock);
- mAudioPolicyManager->releaseInput(client->input, client->session);
+ mAudioPolicyManager->releaseInput(input, session);
}
}