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/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index baab926..e362530 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -321,7 +321,6 @@
actualSessionId,
client.clientPid,
client.clientUid,
- client.packageName,
config,
AUDIO_INPUT_FLAG_MMAP_NOIRQ, deviceId, &portId);
}
@@ -341,7 +340,7 @@
if (direction == MmapStreamInterface::DIRECTION_OUTPUT) {
AudioSystem::releaseOutput(io, streamType, actualSessionId);
} else {
- AudioSystem::releaseInput(portId);
+ AudioSystem::releaseInput(io, actualSessionId);
}
ret = NO_INIT;
}
@@ -1664,7 +1663,7 @@
// release previously opened input if retrying.
if (output.inputId != AUDIO_IO_HANDLE_NONE) {
recordTrack.clear();
- AudioSystem::releaseInput(portId);
+ AudioSystem::releaseInput(output.inputId, sessionId);
output.inputId = AUDIO_IO_HANDLE_NONE;
}
lStatus = AudioSystem::getInputForAttr(&input.attr, &output.inputId,
@@ -1672,7 +1671,6 @@
// FIXME compare to AudioTrack
clientPid,
clientUid,
- input.opPackageName,
&input.config,
output.flags, &output.selectedDeviceId, &portId);
@@ -1741,7 +1739,7 @@
}
recordTrack.clear();
if (output.inputId != AUDIO_IO_HANDLE_NONE) {
- AudioSystem::releaseInput(portId);
+ AudioSystem::releaseInput(output.inputId, sessionId);
}
}
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 3d270fc..420e6e1 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -6936,7 +6936,8 @@
if (recordTrack->isExternalTrack()) {
mLock.unlock();
bool silenced;
- status = AudioSystem::startInput(recordTrack->portId(), &silenced);
+ status = AudioSystem::startInput(mId, recordTrack->sessionId(),
+ mInDevice, recordTrack->uid(), &silenced);
mLock.lock();
// FIXME should verify that recordTrack is still in mActiveTracks
if (status != NO_ERROR) {
@@ -6968,7 +6969,7 @@
startError:
if (recordTrack->isExternalTrack()) {
- AudioSystem::stopInput(recordTrack->portId());
+ AudioSystem::stopInput(mId, recordTrack->sessionId());
}
recordTrack->clearSyncStartEvent();
// FIXME I wonder why we do not reset the state here?
@@ -7741,7 +7742,7 @@
if (isOutput()) {
AudioSystem::releaseOutput(mId, streamType(), mSessionId);
} else {
- AudioSystem::releaseInput(mPortId);
+ AudioSystem::releaseInput(mId, mSessionId);
}
}
@@ -7836,7 +7837,6 @@
mSessionId,
client.clientPid,
client.clientUid,
- client.packageName,
&config,
AUDIO_INPUT_FLAG_MMAP_NOIRQ,
&deviceId,
@@ -7855,7 +7855,7 @@
} else {
// TODO: Block recording for idle UIDs (b/72134552)
bool silenced;
- ret = AudioSystem::startInput(portId, &silenced);
+ ret = AudioSystem::startInput(mId, mSessionId, mInDevice, client.clientUid, &silenced);
}
// abort if start is rejected by audio policy manager
@@ -7865,7 +7865,7 @@
if (isOutput()) {
AudioSystem::releaseOutput(mId, streamType(), mSessionId);
} else {
- AudioSystem::releaseInput(portId);
+ AudioSystem::releaseInput(mId, mSessionId);
}
} else {
mHalStream->stop();
@@ -7922,8 +7922,8 @@
AudioSystem::stopOutput(mId, streamType(), track->sessionId());
AudioSystem::releaseOutput(mId, streamType(), track->sessionId());
} else {
- AudioSystem::stopInput(track->portId());
- AudioSystem::releaseInput(track->portId());
+ AudioSystem::stopInput(mId, track->sessionId());
+ AudioSystem::releaseInput(mId, track->sessionId());
}
sp<EffectChain> chain = getEffectChain_l(track->sessionId());
diff --git a/services/audioflinger/Tracks.cpp b/services/audioflinger/Tracks.cpp
index 06bbf1e..cdd8ca0 100644
--- a/services/audioflinger/Tracks.cpp
+++ b/services/audioflinger/Tracks.cpp
@@ -1687,7 +1687,7 @@
if (thread != 0) {
RecordThread *recordThread = (RecordThread *)thread.get();
if (recordThread->stop(this) && isExternalTrack()) {
- AudioSystem::stopInput(mPortId);
+ AudioSystem::stopInput(mThreadIoHandle, mSessionId);
}
}
}
@@ -1699,9 +1699,9 @@
{
if (isExternalTrack()) {
if (mState == ACTIVE || mState == RESUMING) {
- AudioSystem::stopInput(mPortId);
+ AudioSystem::stopInput(mThreadIoHandle, mSessionId);
}
- AudioSystem::releaseInput(mPortId);
+ AudioSystem::releaseInput(mThreadIoHandle, mSessionId);
}
sp<ThreadBase> thread = mThread.promote();
if (thread != 0) {