AudioFlinger: forward active tracks channel mask to spatializer effect
Partial implementation of track metadata forwarding to effects.
Currently limited to spatializer effect and track channel masks.
Bug: 303920722
Test: atest AudioEffectTest
Test: atest atest android.media.audio.cts.SpatializerTest
Change-Id: Iaaa947f12946d6f87dffb3993612d58f0400e6c5
diff --git a/services/audioflinger/Effects.h b/services/audioflinger/Effects.h
index 9208c88..8583d47 100644
--- a/services/audioflinger/Effects.h
+++ b/services/audioflinger/Effects.h
@@ -224,9 +224,11 @@
sp<IAfEffectModule> asEffectModule() final { return this; }
bool isHapticGenerator() const final;
+ bool isSpatializer() const final;
status_t setHapticIntensity(int id, os::HapticScale intensity) final;
status_t setVibratorInfo(const media::AudioVibratorInfo& vibratorInfo) final;
+ status_t sendMetadata(const std::vector<playback_track_metadata_v7_t>& metadata) final;
status_t getConfigs(audio_config_base_t* inputCfg,
audio_config_base_t* outputCfg,
@@ -513,6 +515,10 @@
return mEffects[index];
}
+ void sendMetadata_l(const std::vector<playback_track_metadata_v7_t>& allMetadata,
+ const std::optional<const std::vector<playback_track_metadata_v7_t>> spatializedMetadata)
+ final REQUIRES(audio_utils::ThreadBase_Mutex);
+
void setThread(const sp<IAfThreadBase>& thread) final;
private: