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}
This commit is contained in:
committed by
Commit Bot
parent
ef85f2bdb8
commit
aa5a75d5e3
@ -594,54 +594,17 @@ TEST_F(DelayManagerTest, RelativeArrivalDelayStatistic) {
|
||||
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_F(DelayManagerTest, DecelerationTargetLevelOffset) {
|
||||
|
||||
{
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user