Embed Deceleration Target Level Offset Field Trial.
Bug: webrtc:10619
Change-Id: I4ef75ae03d6071bf84d2c1b6e50290ea26e83496
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152663
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29169}
diff --git a/modules/audio_coding/neteq/delay_manager_unittest.cc b/modules/audio_coding/neteq/delay_manager_unittest.cc
index beb61b0..6979789 100644
--- a/modules/audio_coding/neteq/delay_manager_unittest.cc
+++ b/modules/audio_coding/neteq/delay_manager_unittest.cc
@@ -594,54 +594,17 @@
InsertNextPacket();
}
-TEST_F(DelayManagerTest, DecelerationTargetLevelOffsetFieldTrial) {
- {
- test::ScopedFieldTrials field_trial(
- "WebRTC-Audio-NetEqDecelerationTargetLevelOffset/Enabled-105/");
- RecreateDelayManager();
- EXPECT_EQ(dm_->deceleration_target_level_offset_ms().value(), 105 << 8);
- }
- {
- // Negative number.
- test::ScopedFieldTrials field_trial(
- "WebRTC-Audio-NetEqDecelerationTargetLevelOffset/Enabled--105/");
- RecreateDelayManager();
- EXPECT_FALSE(dm_->deceleration_target_level_offset_ms().has_value());
- }
- {
- // Disabled.
- test::ScopedFieldTrials field_trial(
- "WebRTC-Audio-NetEqDecelerationTargetLevelOffset/Disabled/");
- RecreateDelayManager();
- EXPECT_FALSE(dm_->deceleration_target_level_offset_ms().has_value());
- }
- {
- // Float number.
- test::ScopedFieldTrials field_trial(
- "WebRTC-Audio-NetEqDecelerationTargetLevelOffset/Enabled-105.5/");
- RecreateDelayManager();
- EXPECT_EQ(dm_->deceleration_target_level_offset_ms().value(), 105 << 8);
- }
- {
- // Several numbers.
- test::ScopedFieldTrials field_trial(
- "WebRTC-Audio-NetEqDecelerationTargetLevelOffset/Enabled-20-40/");
- RecreateDelayManager();
- EXPECT_EQ(dm_->deceleration_target_level_offset_ms().value(), 20 << 8);
- }
-}
-
TEST_F(DelayManagerTest, DecelerationTargetLevelOffset) {
- // Border value where 1/4 target buffer level meets
- // WebRTC-Audio-NetEqDecelerationTargetLevelOffset.
- constexpr int kBoarderTargetLevel = 100 * 4;
+ SetPacketAudioLength(kFrameSizeMs);
+
+ // Deceleration target level offset follows the value hardcoded in
+ // delay_manager.cc.
+ constexpr int kDecelerationTargetLevelOffsetMs = 85 << 8; // In Q8.
+ // Border value where |x * 3/4 = target_level - x|.
+ constexpr int kBoarderTargetLevel = kDecelerationTargetLevelOffsetMs * 4;
{
// Test that for a low target level, default behaviour is intact.
- test::ScopedFieldTrials field_trial(
- "WebRTC-Audio-NetEqDecelerationTargetLevelOffset/Enabled-100/");
- const int target_level_ms = ((kBoarderTargetLevel - 1) << 8) / kFrameSizeMs;
- RecreateDelayManager();
- SetPacketAudioLength(kFrameSizeMs);
+ const int target_level_ms = kBoarderTargetLevel / kFrameSizeMs - 1;
int lower, higher; // In Q8.
dm_->BufferLimits(target_level_ms, &lower, &higher);
@@ -653,32 +616,14 @@
{
// Test that for the high target level, |lower| is below target level by
- // fixed constant (100 ms in this Field Trial setup).
- test::ScopedFieldTrials field_trial(
- "WebRTC-Audio-NetEqDecelerationTargetLevelOffset/Enabled-100/");
- const int target_level_ms = ((kBoarderTargetLevel + 1) << 8) / kFrameSizeMs;
- RecreateDelayManager();
- SetPacketAudioLength(kFrameSizeMs);
+ // fixed |kOffset|.
+ const int target_level_ms = kBoarderTargetLevel / kFrameSizeMs + 1;
int lower, higher; // In Q8.
dm_->BufferLimits(target_level_ms, &lower, &higher);
- EXPECT_EQ(target_level_ms - ((100 << 8) / kFrameSizeMs), lower);
- EXPECT_EQ(target_level_ms, higher);
- }
-
- {
- // Test that for the high target level, without Field Trial the behaviour
- // will remain the same.
- const int target_level_ms = ((kBoarderTargetLevel + 1) << 8) / kFrameSizeMs;
- RecreateDelayManager();
- SetPacketAudioLength(kFrameSizeMs);
-
- int lower, higher; // In Q8.
- dm_->BufferLimits(target_level_ms, &lower, &higher);
-
- // Default behaviour of taking 75% of target level.
- EXPECT_EQ(target_level_ms * 3 / 4, lower);
+ EXPECT_EQ(target_level_ms - kDecelerationTargetLevelOffsetMs / kFrameSizeMs,
+ lower);
EXPECT_EQ(target_level_ms, higher);
}
}