Refactor DelayManager into separate Histogram class and make it injectable for testing purposes.

Change-Id: I98aa3f992169e598fc1a3dd850400183395fe1fe
Bug: webrtc:10333
Reviewed-on: https://webrtc-review.googlesource.com/c/123445
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26797}
This commit is contained in:
Jakob Ivarsson
2019-02-21 15:42:31 +01:00
committed by Commit Bot
parent fa52efadf1
commit 1eb3d7ea0f
12 changed files with 550 additions and 353 deletions

View File

@ -31,11 +31,12 @@ TEST(DecisionLogic, CreateAndDestroy) {
TickTimer tick_timer;
PacketBuffer packet_buffer(10, &tick_timer);
DelayPeakDetector delay_peak_detector(&tick_timer, false);
DelayManager delay_manager(240, 0, false, &delay_peak_detector, &tick_timer);
auto delay_manager =
DelayManager::Create(240, 0, false, &delay_peak_detector, &tick_timer);
BufferLevelFilter buffer_level_filter;
DecisionLogic* logic = DecisionLogic::Create(
fs_hz, output_size_samples, false, &decoder_database, packet_buffer,
&delay_manager, &buffer_level_filter, &tick_timer);
delay_manager.get(), &buffer_level_filter, &tick_timer);
delete logic;
}
@ -48,14 +49,15 @@ TEST(DecisionLogic, PostponeDecodingAfterExpansionSettings) {
TickTimer tick_timer;
PacketBuffer packet_buffer(10, &tick_timer);
DelayPeakDetector delay_peak_detector(&tick_timer, false);
DelayManager delay_manager(240, 0, false, &delay_peak_detector, &tick_timer);
auto delay_manager =
DelayManager::Create(240, 0, false, &delay_peak_detector, &tick_timer);
BufferLevelFilter buffer_level_filter;
{
test::ScopedFieldTrials field_trial(
"WebRTC-Audio-NetEqPostponeDecodingAfterExpand/Enabled/");
DecisionLogic logic(kFsHz, kOutputSizeSamples, false, &decoder_database,
packet_buffer, &delay_manager, &buffer_level_filter,
&tick_timer);
packet_buffer, delay_manager.get(),
&buffer_level_filter, &tick_timer);
EXPECT_EQ(kDefaultPostponeDecodingLevel,
logic.postpone_decoding_level_for_test());
}
@ -63,24 +65,24 @@ TEST(DecisionLogic, PostponeDecodingAfterExpansionSettings) {
test::ScopedFieldTrials field_trial(
"WebRTC-Audio-NetEqPostponeDecodingAfterExpand/Enabled-65/");
DecisionLogic logic(kFsHz, kOutputSizeSamples, false, &decoder_database,
packet_buffer, &delay_manager, &buffer_level_filter,
&tick_timer);
packet_buffer, delay_manager.get(),
&buffer_level_filter, &tick_timer);
EXPECT_EQ(65, logic.postpone_decoding_level_for_test());
}
{
test::ScopedFieldTrials field_trial(
"WebRTC-Audio-NetEqPostponeDecodingAfterExpand/Disabled/");
DecisionLogic logic(kFsHz, kOutputSizeSamples, false, &decoder_database,
packet_buffer, &delay_manager, &buffer_level_filter,
&tick_timer);
packet_buffer, delay_manager.get(),
&buffer_level_filter, &tick_timer);
EXPECT_EQ(0, logic.postpone_decoding_level_for_test());
}
{
test::ScopedFieldTrials field_trial(
"WebRTC-Audio-NetEqPostponeDecodingAfterExpand/Enabled--1/");
DecisionLogic logic(kFsHz, kOutputSizeSamples, false, &decoder_database,
packet_buffer, &delay_manager, &buffer_level_filter,
&tick_timer);
packet_buffer, delay_manager.get(),
&buffer_level_filter, &tick_timer);
EXPECT_EQ(kDefaultPostponeDecodingLevel,
logic.postpone_decoding_level_for_test());
}
@ -88,8 +90,8 @@ TEST(DecisionLogic, PostponeDecodingAfterExpansionSettings) {
test::ScopedFieldTrials field_trial(
"WebRTC-Audio-NetEqPostponeDecodingAfterExpand/Enabled-101/");
DecisionLogic logic(kFsHz, kOutputSizeSamples, false, &decoder_database,
packet_buffer, &delay_manager, &buffer_level_filter,
&tick_timer);
packet_buffer, delay_manager.get(),
&buffer_level_filter, &tick_timer);
EXPECT_EQ(kDefaultPostponeDecodingLevel,
logic.postpone_decoding_level_for_test());
}