AudioFlinger: Create MelReporter callback
Test: atest AudioTrackTest AudioRecordTest
Test: Camera YouTube
Bug: 291319167
Change-Id: Icd73c1e4d47f6a8eac85001771fc356d161b4f08
diff --git a/services/audioflinger/MelReporter.cpp b/services/audioflinger/MelReporter.cpp
index 0f739b0..35400e1 100644
--- a/services/audioflinger/MelReporter.cpp
+++ b/services/audioflinger/MelReporter.cpp
@@ -77,7 +77,7 @@
}
void MelReporter::onFirstRef() {
- mAudioFlinger.mPatchCommandThread->addListener(this);
+ mAfMelReporterCallback->getPatchCommandThread()->addListener(this);
}
bool MelReporter::shouldComputeMelForDeviceType(audio_devices_t device) {
@@ -111,7 +111,7 @@
return;
}
- std::lock_guard _laf(mAudioFlinger.mLock);
+ std::lock_guard _laf(mAfMelReporterCallback->mutex());
std::lock_guard _l(mLock);
auto activeMelPatchId = activePatchStreamHandle_l(streamHandle);
if (!activeMelPatchId) {
@@ -171,7 +171,7 @@
}
if (!newPatch.deviceHandles.empty()) {
- std::lock_guard _afl(mAudioFlinger.mLock);
+ std::lock_guard _afl(mAfMelReporterCallback->mutex());
std::lock_guard _l(mLock);
ALOGV("%s add patch handle %d to active devices", __func__, handle);
startMelComputationForActivePatch_l(newPatch);
@@ -183,7 +183,7 @@
void MelReporter::startMelComputationForActivePatch_l(const ActiveMelPatch& patch)
NO_THREAD_SAFETY_ANALYSIS // access of AudioFlinger::checkOutputThread_l
{
- auto outputThread = mAudioFlinger.checkOutputThread_l(patch.streamHandle);
+ auto outputThread = mAfMelReporterCallback->checkOutputThread_l(patch.streamHandle);
if (outputThread == nullptr) {
ALOGE("%s cannot find thread for stream handle %d", __func__, patch.streamHandle);
return;
@@ -226,7 +226,7 @@
mActiveMelPatches.erase(patchIt);
}
- std::lock_guard _afl(mAudioFlinger.mLock);
+ std::lock_guard _afl(mAfMelReporterCallback->mutex());
std::lock_guard _l(mLock);
stopMelComputationForPatch_l(melPatch);
}
@@ -258,7 +258,7 @@
return;
}
- auto outputThread = mAudioFlinger.checkOutputThread_l(patch.streamHandle);
+ auto outputThread = mAfMelReporterCallback->checkOutputThread_l(patch.streamHandle);
ALOGV("%s: stop MEL for stream id: %d", __func__, patch.streamHandle);
for (const auto& deviceId : patch.deviceHandles) {