AudioFlinger: compute MEL values on framework level
The MelReporter is responsible for starting the MEL calculation for
different audio streams. For now we only print the values in dumpsys.
Test: dumpsys media.audio_flinger
Bug: 252776298
Change-Id: Ic5757bac23844358cb4c886b3eaf2fd2e9ffbf40
diff --git a/services/audioflinger/Threads.h b/services/audioflinger/Threads.h
index c509d73..a7028ee 100644
--- a/services/audioflinger/Threads.h
+++ b/services/audioflinger/Threads.h
@@ -1091,6 +1091,10 @@
return INVALID_OPERATION;
}
+ void startMelComputation(const sp
+ <audio_utils::MelProcessor::MelCallback>& callback);
+ void stopMelComputation();
+
protected:
// updated by readOutputParameters_l()
size_t mNormalFrameCount; // normal mixer and effects
@@ -1190,6 +1194,8 @@
audio_channel_mask_t mMixerChannelMask = AUDIO_CHANNEL_NONE;
private:
+ mediautils::atomic_sp<audio_utils::MelProcessor> mMelProcessor;
+
// mMasterMute is in both PlaybackThread and in AudioFlinger. When a
// PlaybackThread needs to find out if master-muted, it checks it's local
// copy rather than the one in AudioFlinger. This optimization saves a lock.