AudioEffect: Add process callback
Add a callback method to IEffectClient interface to notify the
controlling AudioEffect client when the effect engine has processed
frames in the audio mixer thread.
Bug: 188502620
Test: make
Change-Id: Ibf3078b2fc779102eb8f70698e6ccc308c6f0bad
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 7292527..d3cae76 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -1449,7 +1449,8 @@
int *enabled,
status_t *status,
bool pinned,
- bool probe)
+ bool probe,
+ bool notifyFramesProcessed)
{
sp<EffectModule> effect;
sp<EffectHandle> handle;
@@ -1516,7 +1517,7 @@
}
}
// create effect handle and connect it to effect module
- handle = new EffectHandle(effect, client, effectClient, priority);
+ handle = new EffectHandle(effect, client, effectClient, priority, notifyFramesProcessed);
lStatus = handle->initCheck();
if (lStatus == OK) {
lStatus = effect->addHandle(handle.get());
@@ -7107,7 +7108,7 @@
finalDownMixer = createEffect_l(nullptr /*client*/, nullptr /*effectClient*/,
0 /*priority*/, AUDIO_SESSION_OUTPUT_STAGE, &descriptors[0], nullptr /*enabled*/,
- &status, false /*pinned*/, false /*probe*/);
+ &status, false /*pinned*/, false /*probe*/, false /*notifyFramesProcessed*/);
if (finalDownMixer == nullptr || (status != NO_ERROR && status != ALREADY_EXISTS)) {
ALOGW("%s error creating downmixer %d", __func__, status);