DynamicsProcessing: Add test for pre and post equalizer enable parameter
This test ensures that the input and output dB are the same when the
equalizer process is disabled.
Bug: 305866207
Test: atest VtsHalDynamicsProcessingTargetTest
Change-Id: Ic485fdfd94ea7579d15656978ca7b6cf2dc296c7
diff --git a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
index 2bb0a72..997d8da 100644
--- a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
+++ b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
@@ -585,10 +585,10 @@
}
DynamicsProcessing::EqBandConfig creatEqBandConfig(int channel, int band, float cutOffFreqHz,
- float gainDb) {
+ float gainDb, bool enable) {
return DynamicsProcessing::EqBandConfig{.channel = channel,
.band = band,
- .enable = true,
+ .enable = enable,
.cutoffFrequencyHz = cutOffFreqHz,
.gainDb = gainDb};
}
@@ -1075,7 +1075,8 @@
int bandCount = cutOffFreqs.size();
for (int i = 0; i < bandCount; i++) {
cfgs.push_back(creatEqBandConfig(std::get<EQ_BAND_CHANNEL>(params), cutOffFreqs[i].first,
- cutOffFreqs[i].second, std::get<EQ_BAND_GAIN>(params)));
+ cutOffFreqs[i].second, std::get<EQ_BAND_GAIN>(params),
+ true));
}
}
@@ -1223,15 +1224,16 @@
}
void fillEqBandConfig(std::vector<DynamicsProcessing::EqBandConfig>& cfgs, int channelIndex,
- int bandIndex, int cutOffFreqHz, float gainDb) {
+ int bandIndex, int cutOffFreqHz, float gainDb, bool enable) {
cfgs.push_back(creatEqBandConfig(channelIndex, bandIndex, static_cast<float>(cutOffFreqHz),
- gainDb));
+ gainDb, enable));
}
- void validateOutput(const std::vector<float>& output, float gainDb, size_t bandIndex) {
+ void validateOutput(const std::vector<float>& output, float gainDb, size_t bandIndex,
+ bool enable) {
std::vector<float> outputMag(mBinOffsets.size());
EXPECT_NO_FATAL_FAILURE(getMagnitudeValue(output, outputMag));
- if (gainDb == 0) {
+ if (gainDb == 0 || !enable) {
EXPECT_NO_FATAL_FAILURE(checkInputAndOutputEquality(outputMag));
} else if (gainDb > 0) {
// For positive gain, current band's magnitude is greater than the other band's
@@ -1243,19 +1245,19 @@
}
}
- void analyseMultiBandOutput(float gainDb, bool isPreEq) {
+ void analyseMultiBandOutput(float gainDb, bool isPreEq, bool enable = true) {
std::vector<float> output(mInput.size());
roundToFreqCenteredToFftBin(mMultitoneTestFrequencies, mBinOffsets, kBinWidth);
// Set Equalizer values for two bands
for (size_t i = 0; i < kCutoffFreqHz.size(); i++) {
for (int channelIndex = 0; channelIndex < mChannelCount; channelIndex++) {
- fillEqBandConfig(mCfgs, channelIndex, i, kCutoffFreqHz[i], gainDb);
- fillEqBandConfig(mCfgs, channelIndex, i ^ 1, kCutoffFreqHz[i ^ 1], 0);
+ fillEqBandConfig(mCfgs, channelIndex, i, kCutoffFreqHz[i], gainDb, enable);
+ fillEqBandConfig(mCfgs, channelIndex, i ^ 1, kCutoffFreqHz[i ^ 1], 0, enable);
}
ASSERT_NO_FATAL_FAILURE(setEqParamAndProcess(output, isPreEq));
if (isAllParamsValid()) {
- ASSERT_NO_FATAL_FAILURE(validateOutput(output, gainDb, i));
+ ASSERT_NO_FATAL_FAILURE(validateOutput(output, gainDb, i, enable));
}
cleanUpEqConfig();
}
@@ -1291,6 +1293,16 @@
}
}
+TEST_P(DynamicsProcessingEqBandConfigDataTest, PreEqEnableDisable) {
+ ASSERT_NO_FATAL_FAILURE(analyseMultiBandOutput(10 /*gain dB*/, true /*pre-equalizer*/,
+ false /*disable equalizer*/));
+}
+
+TEST_P(DynamicsProcessingEqBandConfigDataTest, PostEqEnableDisable) {
+ ASSERT_NO_FATAL_FAILURE(analyseMultiBandOutput(10 /*gain dB*/, false /*post-equalizer*/,
+ false /*disable equalizer*/));
+}
+
INSTANTIATE_TEST_SUITE_P(DynamicsProcessingTest, DynamicsProcessingEqBandConfigDataTest,
testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
IFactory::descriptor, getEffectTypeUuidDynamicsProcessing())),