Merge "DynamicsProcessing: Add test for limiterInUse parameter of EngineArchitecture config" into main
diff --git a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
index ddb920d..98f7d79 100644
--- a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
+++ b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
@@ -871,12 +871,35 @@
ratio = inputOverThreshold / outputOverThreshold;
}
- void setLimiterParamsAndProcess(std::vector<float>& input, std::vector<float>& output) {
+ void setLimiterParamsAndProcess(std::vector<float>& input, std::vector<float>& output,
+ bool isEngineLimiterEnabled = true) {
+ mEngineConfigPreset.limiterInUse = isEngineLimiterEnabled;
addEngineConfig(mEngineConfigPreset);
addLimiterConfig(mLimiterConfigList);
EXPECT_NO_FATAL_FAILURE(setParamsAndProcess(input, output));
}
+ void testEnableDisableConfiguration(bool isLimiterEnabled, bool isEngineLimiterEnabled) {
+ cleanUpLimiterConfig();
+ std::vector<float> output(mInput.size());
+ for (int i = 0; i < mChannelCount; i++) {
+ // Set non-default values
+ fillLimiterConfig(mLimiterConfigList, i, isLimiterEnabled, kDefaultLinkerGroup,
+ 5 /*attack time*/, 5 /*release time*/, 10 /*ratio*/,
+ -20 /*threshold*/, 5 /*postgain*/);
+ }
+ ASSERT_NO_FATAL_FAILURE(setLimiterParamsAndProcess(mInput, output, isEngineLimiterEnabled));
+ float outputdB = calculateDb(output, kStartIndex);
+ if (isAllParamsValid()) {
+ if (isLimiterEnabled && isEngineLimiterEnabled) {
+ EXPECT_GT(std::abs(mInputDb - outputdB), kMinDifferenceDb)
+ << "Input level: " << mInputDb << " Output level: " << outputdB;
+ } else {
+ EXPECT_NEAR(mInputDb, outputdB, kLimiterTestToleranceDb);
+ }
+ }
+ }
+
void cleanUpLimiterConfig() {
CleanUp();
mLimiterConfigList.clear();
@@ -888,6 +911,8 @@
static constexpr float kDefaultThreshold = -10;
static constexpr float kDefaultPostGain = 0;
static constexpr float kLimiterTestToleranceDb = 0.05;
+ static constexpr float kMinDifferenceDb = 5;
+ const std::vector<bool> kEnableValues = {true, false, true};
std::vector<DynamicsProcessing::LimiterConfig> mLimiterConfigList;
int mBufferSize;
};
@@ -969,25 +994,16 @@
}
TEST_P(DynamicsProcessingLimiterConfigDataTest, LimiterEnableDisable) {
- std::vector<bool> limiterEnableValues = {false, true};
- std::vector<float> output(mInput.size());
- for (bool isEnabled : limiterEnableValues) {
- cleanUpLimiterConfig();
- for (int i = 0; i < mChannelCount; i++) {
- // Set non-default values
- fillLimiterConfig(mLimiterConfigList, i, isEnabled, kDefaultLinkerGroup,
- 5 /*attack time*/, 5 /*release time*/, 10 /*ratio*/,
- -10 /*threshold*/, 5 /*postgain*/);
- }
- ASSERT_NO_FATAL_FAILURE(setLimiterParamsAndProcess(mInput, output));
- if (!isAllParamsValid()) {
- continue;
- }
- if (isEnabled) {
- EXPECT_NE(mInputDb, calculateDb(output, kStartIndex));
- } else {
- EXPECT_NEAR(mInputDb, calculateDb(output, kStartIndex), kLimiterTestToleranceDb);
- }
+ for (bool isLimiterEnabled : kEnableValues) {
+ ASSERT_NO_FATAL_FAILURE(
+ testEnableDisableConfiguration(isLimiterEnabled, true /*Engine Enabled*/));
+ }
+}
+
+TEST_P(DynamicsProcessingLimiterConfigDataTest, LimiterEnableDisableViaEngine) {
+ for (bool isEngineLimiterEnabled : kEnableValues) {
+ ASSERT_NO_FATAL_FAILURE(
+ testEnableDisableConfiguration(true /*Limiter Enabled*/, isEngineLimiterEnabled));
}
}
@@ -1049,7 +1065,6 @@
}
}
- static constexpr float kMinDifferenceDb = 5;
const std::vector<std::pair<float, float>> kRatioThresholdPairValues = {{2, -10}, {5, -20}};
};