Replace Clock with timeutils in AudioEncoder.
BUG=webrtc:7398
Review-Url: https://codereview.webrtc.org/2782563003
Cr-Commit-Position: refs/heads/master@{#17732}
diff --git a/webrtc/common_audio/BUILD.gn b/webrtc/common_audio/BUILD.gn
index 4367a0b..0b94f71 100644
--- a/webrtc/common_audio/BUILD.gn
+++ b/webrtc/common_audio/BUILD.gn
@@ -396,6 +396,7 @@
":sinc_resampler",
"..:webrtc_common",
"../base:rtc_base_approved",
+ "../base:rtc_base_tests_utils",
"../system_wrappers",
"../test:test_main",
"//testing/gmock",
diff --git a/webrtc/common_audio/smoothing_filter.cc b/webrtc/common_audio/smoothing_filter.cc
index 2ab2598..91bcb22 100644
--- a/webrtc/common_audio/smoothing_filter.cc
+++ b/webrtc/common_audio/smoothing_filter.cc
@@ -12,30 +12,32 @@
#include <cmath>
+#include "webrtc/base/timeutils.h"
+
namespace webrtc {
-SmoothingFilterImpl::SmoothingFilterImpl(int init_time_ms, const Clock* clock)
+SmoothingFilterImpl::SmoothingFilterImpl(int init_time_ms)
: init_time_ms_(init_time_ms),
// Duing the initalization time, we use an increasing alpha. Specifically,
// alpha(n) = exp(-powf(init_factor_, n)),
// where |init_factor_| is chosen such that
// alpha(init_time_ms_) = exp(-1.0f / init_time_ms_),
- init_factor_(init_time_ms_ == 0 ? 0.0f : powf(init_time_ms_,
- -1.0f / init_time_ms_)),
+ init_factor_(init_time_ms_ == 0
+ ? 0.0f
+ : powf(init_time_ms_, -1.0f / init_time_ms_)),
// |init_const_| is to a factor to help the calculation during
// initialization phase.
init_const_(init_time_ms_ == 0
? 0.0f
: init_time_ms_ -
- powf(init_time_ms_, 1.0f - 1.0f / init_time_ms_)),
- clock_(clock) {
+ powf(init_time_ms_, 1.0f - 1.0f / init_time_ms_)) {
UpdateAlpha(init_time_ms_);
}
SmoothingFilterImpl::~SmoothingFilterImpl() = default;
void SmoothingFilterImpl::AddSample(float sample) {
- const int64_t now_ms = clock_->TimeInMilliseconds();
+ const int64_t now_ms = rtc::TimeMillis();
if (!init_end_time_ms_) {
// This is equivalent to assuming the filter has been receiving the same
@@ -55,7 +57,7 @@
// |init_end_time_ms_| undefined since we have not received any sample.
return rtc::Optional<float>();
}
- ExtrapolateLastSample(clock_->TimeInMilliseconds());
+ ExtrapolateLastSample(rtc::TimeMillis());
return rtc::Optional<float>(state_);
}
diff --git a/webrtc/common_audio/smoothing_filter.h b/webrtc/common_audio/smoothing_filter.h
index 4a0efd9..39bc56a 100644
--- a/webrtc/common_audio/smoothing_filter.h
+++ b/webrtc/common_audio/smoothing_filter.h
@@ -40,7 +40,7 @@
// earlier samples quickly. After the initialization period, the time constant
// will be set to |init_time_ms| first and can be changed through
// |SetTimeConstantMs|.
- SmoothingFilterImpl(int init_time_ms, const Clock* clock);
+ explicit SmoothingFilterImpl(int init_time_ms);
~SmoothingFilterImpl() override;
void AddSample(float sample) override;
@@ -57,7 +57,6 @@
const int init_time_ms_;
const float init_factor_;
const float init_const_;
- const Clock* const clock_;
rtc::Optional<int64_t> init_end_time_ms_;
float last_sample_;
diff --git a/webrtc/common_audio/smoothing_filter_unittest.cc b/webrtc/common_audio/smoothing_filter_unittest.cc
index 9ffbf3c..5075545 100644
--- a/webrtc/common_audio/smoothing_filter_unittest.cc
+++ b/webrtc/common_audio/smoothing_filter_unittest.cc
@@ -11,6 +11,7 @@
#include <cmath>
#include <memory>
+#include "webrtc/base/fakeclock.h"
#include "webrtc/common_audio/smoothing_filter.h"
#include "webrtc/test/gtest.h"
@@ -22,18 +23,14 @@
constexpr int64_t kClockInitialTime = 123456;
struct SmoothingFilterStates {
- std::unique_ptr<SimulatedClock> simulated_clock;
- std::unique_ptr<SmoothingFilterImpl> smoothing_filter;
+ explicit SmoothingFilterStates(int init_time_ms)
+ : smoothing_filter(init_time_ms) {
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(kClockInitialTime));
+ }
+ rtc::ScopedFakeClock fake_clock;
+ SmoothingFilterImpl smoothing_filter;
};
-SmoothingFilterStates CreateSmoothingFilter(int init_time_ms) {
- SmoothingFilterStates states;
- states.simulated_clock.reset(new SimulatedClock(kClockInitialTime));
- states.smoothing_filter.reset(
- new SmoothingFilterImpl(init_time_ms, states.simulated_clock.get()));
- return states;
-}
-
// This function does the following:
// 1. Add a sample to filter at current clock,
// 2. Advance the clock by |advance_time_ms|,
@@ -43,9 +40,10 @@
float sample,
int advance_time_ms,
float expected_ouput) {
- states->smoothing_filter->AddSample(sample);
- states->simulated_clock->AdvanceTimeMilliseconds(advance_time_ms);
- auto output = states->smoothing_filter->GetAverage();
+ states->smoothing_filter.AddSample(sample);
+ states->fake_clock.AdvanceTime(
+ rtc::TimeDelta::FromMilliseconds(advance_time_ms));
+ auto output = states->smoothing_filter.GetAverage();
EXPECT_TRUE(output);
EXPECT_NEAR(expected_ouput, *output, kMaxAbsError);
}
@@ -54,8 +52,8 @@
TEST(SmoothingFilterTest, NoOutputWhenNoSampleAdded) {
constexpr int kInitTimeMs = 100;
- auto states = CreateSmoothingFilter(kInitTimeMs);
- EXPECT_FALSE(states.smoothing_filter->GetAverage());
+ SmoothingFilterStates states(kInitTimeMs);
+ EXPECT_FALSE(states.smoothing_filter.GetAverage());
}
// Python script to calculate the reference values used in this test.
@@ -104,7 +102,7 @@
// print filter.state
TEST(SmoothingFilterTest, CheckBehaviorAroundInitTime) {
constexpr int kInitTimeMs = 795;
- auto states = CreateSmoothingFilter(kInitTimeMs);
+ SmoothingFilterStates states(kInitTimeMs);
CheckOutput(&states, 1.0f, 500, 1.0f);
CheckOutput(&states, 0.5f, 100, 0.680562264029f);
CheckOutput(&states, 1.0f, 100, 0.794207139813f);
@@ -116,50 +114,51 @@
TEST(SmoothingFilterTest, InitTimeEqualsZero) {
constexpr int kInitTimeMs = 0;
- auto states = CreateSmoothingFilter(kInitTimeMs);
+ SmoothingFilterStates states(kInitTimeMs);
CheckOutput(&states, 1.0f, 1, 1.0f);
CheckOutput(&states, 0.5f, 1, 0.5f);
}
TEST(SmoothingFilterTest, InitTimeEqualsOne) {
constexpr int kInitTimeMs = 1;
- auto states = CreateSmoothingFilter(kInitTimeMs);
+ SmoothingFilterStates states(kInitTimeMs);
CheckOutput(&states, 1.0f, 1, 1.0f);
CheckOutput(&states, 0.5f, 1, 1.0f * exp(-1.0f) + (1.0f - exp(-1.0f)) * 0.5f);
}
TEST(SmoothingFilterTest, GetAverageOutputsEmptyBeforeFirstSample) {
constexpr int kInitTimeMs = 100;
- auto states = CreateSmoothingFilter(kInitTimeMs);
- EXPECT_FALSE(states.smoothing_filter->GetAverage());
+ SmoothingFilterStates states(kInitTimeMs);
+ EXPECT_FALSE(states.smoothing_filter.GetAverage());
constexpr float kFirstSample = 1.2345f;
- states.smoothing_filter->AddSample(kFirstSample);
+ states.smoothing_filter.AddSample(kFirstSample);
EXPECT_EQ(rtc::Optional<float>(kFirstSample),
- states.smoothing_filter->GetAverage());
+ states.smoothing_filter.GetAverage());
}
TEST(SmoothingFilterTest, CannotChangeTimeConstantDuringInitialization) {
constexpr int kInitTimeMs = 100;
- auto states = CreateSmoothingFilter(kInitTimeMs);
- states.smoothing_filter->AddSample(0.0);
+ SmoothingFilterStates states(kInitTimeMs);
+ states.smoothing_filter.AddSample(0.0);
// During initialization, |SetTimeConstantMs| does not take effect.
- states.simulated_clock->AdvanceTimeMilliseconds(kInitTimeMs - 1);
- states.smoothing_filter->AddSample(0.0);
+ states.fake_clock.AdvanceTime(
+ rtc::TimeDelta::FromMilliseconds(kInitTimeMs - 1));
+ states.smoothing_filter.AddSample(0.0);
- EXPECT_FALSE(states.smoothing_filter->SetTimeConstantMs(kInitTimeMs * 2));
- EXPECT_NE(exp(-1.0f / (kInitTimeMs * 2)), states.smoothing_filter->alpha());
+ EXPECT_FALSE(states.smoothing_filter.SetTimeConstantMs(kInitTimeMs * 2));
+ EXPECT_NE(exp(-1.0f / (kInitTimeMs * 2)), states.smoothing_filter.alpha());
- states.simulated_clock->AdvanceTimeMilliseconds(1);
- states.smoothing_filter->AddSample(0.0);
+ states.fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(1));
+ states.smoothing_filter.AddSample(0.0);
// When initialization finishes, the time constant should be come
// |kInitTimeConstantMs|.
- EXPECT_FLOAT_EQ(exp(-1.0f / kInitTimeMs), states.smoothing_filter->alpha());
+ EXPECT_FLOAT_EQ(exp(-1.0f / kInitTimeMs), states.smoothing_filter.alpha());
// After initialization, |SetTimeConstantMs| takes effect.
- EXPECT_TRUE(states.smoothing_filter->SetTimeConstantMs(kInitTimeMs * 2));
+ EXPECT_TRUE(states.smoothing_filter.SetTimeConstantMs(kInitTimeMs * 2));
EXPECT_FLOAT_EQ(exp(-1.0f / (kInitTimeMs * 2)),
- states.smoothing_filter->alpha());
+ states.smoothing_filter.alpha());
}
} // namespace webrtc
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc b/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc
index 7408df2..d41a038 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.cc
@@ -13,6 +13,7 @@
#include <utility>
#include "webrtc/base/logging.h"
+#include "webrtc/base/timeutils.h"
namespace webrtc {
@@ -22,8 +23,7 @@
constexpr float kEventLogMinPacketLossChangeFraction = 0.5;
} // namespace
-AudioNetworkAdaptorImpl::Config::Config()
- : event_log(nullptr), clock(nullptr){};
+AudioNetworkAdaptorImpl::Config::Config() : event_log(nullptr){};
AudioNetworkAdaptorImpl::Config::~Config() = default;
@@ -119,8 +119,7 @@
controller->MakeDecision(&config);
if (debug_dump_writer_)
- debug_dump_writer_->DumpEncoderRuntimeConfig(
- config, config_.clock->TimeInMilliseconds());
+ debug_dump_writer_->DumpEncoderRuntimeConfig(config, rtc::TimeMillis());
if (event_log_writer_)
event_log_writer_->MaybeLogEncoderConfig(config);
@@ -138,8 +137,7 @@
void AudioNetworkAdaptorImpl::DumpNetworkMetrics() {
if (debug_dump_writer_)
- debug_dump_writer_->DumpNetworkMetrics(last_metrics_,
- config_.clock->TimeInMilliseconds());
+ debug_dump_writer_->DumpNetworkMetrics(last_metrics_, rtc::TimeMillis());
}
void AudioNetworkAdaptorImpl::UpdateNetworkMetrics(
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h b/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h
index f7bf70d..358a014 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h
@@ -19,7 +19,6 @@
#include "webrtc/modules/audio_coding/audio_network_adaptor/debug_dump_writer.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/event_log_writer.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
-#include "webrtc/system_wrappers/include/clock.h"
namespace webrtc {
@@ -31,7 +30,6 @@
Config();
~Config();
RtcEventLog* event_log;
- const Clock* clock;
};
AudioNetworkAdaptorImpl(
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc b/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc
index 53334c6..a8cecb3 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc
@@ -11,6 +11,7 @@
#include <utility>
#include <vector>
+#include "webrtc/base/fakeclock.h"
#include "webrtc/logging/rtc_event_log/mock/mock_rtc_event_log.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_controller.h"
@@ -55,7 +56,6 @@
struct AudioNetworkAdaptorStates {
std::unique_ptr<AudioNetworkAdaptorImpl> audio_network_adaptor;
std::vector<std::unique_ptr<MockController>> mock_controllers;
- std::unique_ptr<SimulatedClock> simulated_clock;
std::unique_ptr<MockRtcEventLog> event_log;
MockDebugDumpWriter* mock_debug_dump_writer;
};
@@ -80,7 +80,6 @@
EXPECT_CALL(*controller_manager, GetSortedControllers(_))
.WillRepeatedly(Return(controllers));
- states.simulated_clock.reset(new SimulatedClock(kClockInitialTimeMs * 1000));
states.event_log.reset(new NiceMock<MockRtcEventLog>());
auto debug_dump_writer =
@@ -89,7 +88,6 @@
states.mock_debug_dump_writer = debug_dump_writer.get();
AudioNetworkAdaptorImpl::Config config;
- config.clock = states.simulated_clock.get();
config.event_log = states.event_log.get();
// AudioNetworkAdaptorImpl governs the lifetime of controller manager.
states.audio_network_adaptor.reset(new AudioNetworkAdaptorImpl(
@@ -180,8 +178,9 @@
TEST(AudioNetworkAdaptorImplTest,
DumpEncoderRuntimeConfigIsCalledOnGetEncoderRuntimeConfig) {
+ rtc::ScopedFakeClock fake_clock;
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(kClockInitialTimeMs));
auto states = CreateAudioNetworkAdaptor();
-
AudioEncoderRuntimeConfig config;
config.bitrate_bps = rtc::Optional<int>(32000);
config.enable_fec = rtc::Optional<bool>(true);
@@ -197,6 +196,9 @@
TEST(AudioNetworkAdaptorImplTest,
DumpNetworkMetricsIsCalledOnSetNetworkMetrics) {
+ rtc::ScopedFakeClock fake_clock;
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(kClockInitialTimeMs));
+
auto states = CreateAudioNetworkAdaptor();
constexpr int kBandwidth = 16000;
@@ -214,14 +216,14 @@
DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check));
states.audio_network_adaptor->SetUplinkBandwidth(kBandwidth);
- states.simulated_clock->AdvanceTimeMilliseconds(100);
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(100));
timestamp_check += 100;
check.uplink_packet_loss_fraction = rtc::Optional<float>(kPacketLoss);
EXPECT_CALL(*states.mock_debug_dump_writer,
DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check));
states.audio_network_adaptor->SetUplinkPacketLossFraction(kPacketLoss);
- states.simulated_clock->AdvanceTimeMilliseconds(50);
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(50));
timestamp_check += 50;
check.uplink_recoverable_packet_loss_fraction =
rtc::Optional<float>(kRecoverablePacketLoss);
@@ -230,21 +232,21 @@
states.audio_network_adaptor->SetUplinkRecoverablePacketLossFraction(
kRecoverablePacketLoss);
- states.simulated_clock->AdvanceTimeMilliseconds(200);
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(200));
timestamp_check += 200;
check.rtt_ms = rtc::Optional<int>(kRtt);
EXPECT_CALL(*states.mock_debug_dump_writer,
DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check));
states.audio_network_adaptor->SetRtt(kRtt);
- states.simulated_clock->AdvanceTimeMilliseconds(150);
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(150));
timestamp_check += 150;
check.target_audio_bitrate_bps = rtc::Optional<int>(kTargetAudioBitrate);
EXPECT_CALL(*states.mock_debug_dump_writer,
DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check));
states.audio_network_adaptor->SetTargetAudioBitrate(kTargetAudioBitrate);
- states.simulated_clock->AdvanceTimeMilliseconds(50);
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(50));
timestamp_check += 50;
check.overhead_bytes_per_packet = rtc::Optional<size_t>(kOverhead);
EXPECT_CALL(*states.mock_debug_dump_writer,
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc b/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc
index 1e6aff1..ce4e2f9 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.cc
@@ -14,6 +14,7 @@
#include <utility>
#include "webrtc/base/ignore_wundef.h"
+#include "webrtc/base/timeutils.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/channel_controller.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/dtx_controller.h"
@@ -21,7 +22,6 @@
#include "webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_rplr_based.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/frame_length_controller.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/util/threshold_curve.h"
-#include "webrtc/system_wrappers/include/clock.h"
#ifdef WEBRTC_AUDIO_NETWORK_ADAPTOR_DEBUG_DUMP
RTC_PUSH_IGNORING_WUNDEF()
@@ -41,8 +41,7 @@
std::unique_ptr<FecControllerPlrBased> CreateFecControllerPlrBased(
const audio_network_adaptor::config::FecController& config,
- bool initial_fec_enabled,
- const Clock* clock) {
+ bool initial_fec_enabled) {
RTC_CHECK(config.has_fec_enabling_threshold());
RTC_CHECK(config.has_fec_disabling_threshold());
RTC_CHECK(config.has_time_constant_ms());
@@ -70,7 +69,7 @@
fec_disabling_threshold.low_bandwidth_packet_loss(),
fec_disabling_threshold.high_bandwidth_bps(),
fec_disabling_threshold.high_bandwidth_packet_loss()),
- config.time_constant_ms(), clock)));
+ config.time_constant_ms())));
}
std::unique_ptr<FecControllerRplrBased> CreateFecControllerRplrBased(
@@ -186,11 +185,9 @@
} // namespace
ControllerManagerImpl::Config::Config(int min_reordering_time_ms,
- float min_reordering_squared_distance,
- const Clock* clock)
+ float min_reordering_squared_distance)
: min_reordering_time_ms(min_reordering_time_ms),
- min_reordering_squared_distance(min_reordering_squared_distance),
- clock(clock) {}
+ min_reordering_squared_distance(min_reordering_squared_distance) {}
ControllerManagerImpl::Config::~Config() = default;
@@ -203,8 +200,7 @@
int initial_frame_length_ms,
int initial_bitrate_bps,
bool initial_fec_enabled,
- bool initial_dtx_enabled,
- const Clock* clock) {
+ bool initial_dtx_enabled) {
#ifdef WEBRTC_AUDIO_NETWORK_ADAPTOR_DEBUG_DUMP
audio_network_adaptor::config::ControllerManager controller_manager_config;
controller_manager_config.ParseFromString(config_string);
@@ -218,7 +214,7 @@
switch (controller_config.controller_case()) {
case audio_network_adaptor::config::Controller::kFecController:
controller = CreateFecControllerPlrBased(
- controller_config.fec_controller(), initial_fec_enabled, clock);
+ controller_config.fec_controller(), initial_fec_enabled);
break;
case audio_network_adaptor::config::Controller::kFecControllerRplrBased:
controller = CreateFecControllerRplrBased(
@@ -262,7 +258,7 @@
return std::unique_ptr<ControllerManagerImpl>(new ControllerManagerImpl(
ControllerManagerImpl::Config(
controller_manager_config.min_reordering_time_ms(),
- controller_manager_config.min_reordering_squared_distance(), clock),
+ controller_manager_config.min_reordering_squared_distance()),
std::move(controllers), chracteristic_points));
#else
RTC_NOTREACHED();
@@ -299,7 +295,7 @@
std::vector<Controller*> ControllerManagerImpl::GetSortedControllers(
const Controller::NetworkMetrics& metrics) {
- int64_t now_ms = config_.clock->TimeInMilliseconds();
+ int64_t now_ms = rtc::TimeMillis();
if (!metrics.uplink_bandwidth_bps || !metrics.uplink_packet_loss_fraction)
return sorted_controllers_;
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.h b/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.h
index 0124cc2..81abe24 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.h
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.h
@@ -21,8 +21,6 @@
namespace webrtc {
-class Clock;
-
class ControllerManager {
public:
virtual ~ControllerManager() = default;
@@ -37,16 +35,13 @@
class ControllerManagerImpl final : public ControllerManager {
public:
struct Config {
- Config(int min_reordering_time_ms,
- float min_reordering_squared_distance,
- const Clock* clock);
+ Config(int min_reordering_time_ms, float min_reordering_squared_distance);
~Config();
// Least time since last reordering for a new reordering to be made.
int min_reordering_time_ms;
// Least squared distance from last scoring point for a new reordering to be
// made.
float min_reordering_squared_distance;
- const Clock* clock;
};
static std::unique_ptr<ControllerManager> Create(
@@ -58,8 +53,7 @@
int initial_frame_length_ms,
int initial_bitrate_bps,
bool initial_fec_enabled,
- bool initial_dtx_enabled,
- const Clock* clock);
+ bool initial_dtx_enabled);
explicit ControllerManagerImpl(const Config& config);
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager_unittest.cc b/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager_unittest.cc
index 6d1434a..2e86254 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager_unittest.cc
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/controller_manager_unittest.cc
@@ -10,11 +10,11 @@
#include <utility>
+#include "webrtc/base/fakeclock.h"
#include "webrtc/base/ignore_wundef.h"
#include "webrtc/base/protobuf_utils.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/controller_manager.h"
#include "webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_controller.h"
-#include "webrtc/system_wrappers/include/clock.h"
#include "webrtc/test/gtest.h"
#ifdef WEBRTC_AUDIO_NETWORK_ADAPTOR_DEBUG_DUMP
@@ -47,12 +47,9 @@
constexpr int kMinBandwithChangeBps =
(kMaxUplinkBandwidthBps - kMinUplinkBandwidthBps) / kFactor;
-constexpr int64_t kClockInitialTime = 123456789;
-
struct ControllerManagerStates {
std::unique_ptr<ControllerManager> controller_manager;
std::vector<MockController*> mock_controllers;
- std::unique_ptr<SimulatedClock> simulated_clock;
};
ControllerManagerStates CreateControllerManager() {
@@ -75,11 +72,9 @@
std::make_pair(kChracteristicBandwithBps[1],
kChracteristicPacketLossFraction[1]);
- states.simulated_clock.reset(new SimulatedClock(kClockInitialTime));
states.controller_manager.reset(new ControllerManagerImpl(
ControllerManagerImpl::Config(kMinReorderingTimeMs,
- kMinReorderingSquareDistance,
- states.simulated_clock.get()),
+ kMinReorderingSquareDistance),
std::move(controllers), chracteristic_points));
return states;
}
@@ -147,12 +142,14 @@
}
TEST(ControllerManagerTest, DoNotReorderBeforeMinReordingTime) {
+ rtc::ScopedFakeClock fake_clock;
auto states = CreateControllerManager();
CheckControllersOrder(
&states, rtc::Optional<int>(kChracteristicBandwithBps[0]),
rtc::Optional<float>(kChracteristicPacketLossFraction[0]),
{kNumControllers - 2, kNumControllers - 1, 0, 1});
- states.simulated_clock->AdvanceTimeMilliseconds(kMinReorderingTimeMs - 1);
+ fake_clock.AdvanceTime(
+ rtc::TimeDelta::FromMilliseconds(kMinReorderingTimeMs - 1));
// Move uplink bandwidth and packet loss fraction to the other controller's
// characteristic point, which would cause controller manager to reorder the
// controllers if time had reached min reordering time.
@@ -163,6 +160,7 @@
}
TEST(ControllerManagerTest, ReorderBeyondMinReordingTimeAndMinDistance) {
+ rtc::ScopedFakeClock fake_clock;
auto states = CreateControllerManager();
constexpr int kBandwidthBps =
(kChracteristicBandwithBps[0] + kChracteristicBandwithBps[1]) / 2;
@@ -174,7 +172,8 @@
CheckControllersOrder(&states, rtc::Optional<int>(kBandwidthBps),
rtc::Optional<float>(kPacketLossFraction),
{kNumControllers - 2, kNumControllers - 1, 0, 1});
- states.simulated_clock->AdvanceTimeMilliseconds(kMinReorderingTimeMs);
+ fake_clock.AdvanceTime(
+ rtc::TimeDelta::FromMilliseconds(kMinReorderingTimeMs));
// Then let network metrics move a little towards the other controller.
CheckControllersOrder(
&states, rtc::Optional<int>(kBandwidthBps - kMinBandwithChangeBps - 1),
@@ -183,6 +182,7 @@
}
TEST(ControllerManagerTest, DoNotReorderIfNetworkMetricsChangeTooSmall) {
+ rtc::ScopedFakeClock fake_clock;
auto states = CreateControllerManager();
constexpr int kBandwidthBps =
(kChracteristicBandwithBps[0] + kChracteristicBandwithBps[1]) / 2;
@@ -194,7 +194,8 @@
CheckControllersOrder(&states, rtc::Optional<int>(kBandwidthBps),
rtc::Optional<float>(kPacketLossFraction),
{kNumControllers - 2, kNumControllers - 1, 0, 1});
- states.simulated_clock->AdvanceTimeMilliseconds(kMinReorderingTimeMs);
+ fake_clock.AdvanceTime(
+ rtc::TimeDelta::FromMilliseconds(kMinReorderingTimeMs));
// Then let network metrics move a little towards the other controller.
CheckControllersOrder(
&states, rtc::Optional<int>(kBandwidthBps - kMinBandwithChangeBps + 1),
@@ -276,14 +277,12 @@
ControllerManagerStates CreateControllerManager(
const ProtoString& config_string) {
ControllerManagerStates states;
- states.simulated_clock.reset(new SimulatedClock(kClockInitialTime));
constexpr size_t kNumEncoderChannels = 2;
const std::vector<int> encoder_frame_lengths_ms = {20, 60};
states.controller_manager = ControllerManagerImpl::Create(
config_string, kNumEncoderChannels, encoder_frame_lengths_ms,
kMinBitrateBps, kIntialChannelsToEncode, kInitialFrameLengthMs,
- kInitialBitrateBps, kInitialFecEnabled, kInitialDtxEnabled,
- states.simulated_clock.get());
+ kInitialBitrateBps, kInitialFecEnabled, kInitialDtxEnabled);
return states;
}
@@ -361,6 +360,7 @@
}
TEST(ControllerManagerTest, CreateFromConfigStringAndCheckReordering) {
+ rtc::ScopedFakeClock fake_clock;
audio_network_adaptor::config::ControllerManager config;
config.set_min_reordering_time_ms(kMinReorderingTimeMs);
config.set_min_reordering_squared_distance(kMinReorderingSquareDistance);
@@ -399,7 +399,8 @@
rtc::Optional<int>(kChracteristicBandwithBps[1]);
metrics.uplink_packet_loss_fraction =
rtc::Optional<float>(kChracteristicPacketLossFraction[1]);
- states.simulated_clock->AdvanceTimeMilliseconds(kMinReorderingTimeMs - 1);
+ fake_clock.AdvanceTime(
+ rtc::TimeDelta::FromMilliseconds(kMinReorderingTimeMs - 1));
controllers = states.controller_manager->GetSortedControllers(metrics);
// Should not reorder since min reordering time is not met.
CheckControllersOrder(controllers,
@@ -408,7 +409,7 @@
ControllerType::CHANNEL, ControllerType::DTX,
ControllerType::BIT_RATE});
- states.simulated_clock->AdvanceTimeMilliseconds(1);
+ fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(1));
controllers = states.controller_manager->GetSortedControllers(metrics);
// Reorder now.
CheckControllersOrder(controllers,
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.cc b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.cc
index c39457d..d9b259b 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.cc
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.cc
@@ -41,13 +41,11 @@
bool initial_fec_enabled,
const ThresholdCurve& fec_enabling_threshold,
const ThresholdCurve& fec_disabling_threshold,
- int time_constant_ms,
- const Clock* clock)
+ int time_constant_ms)
: initial_fec_enabled(initial_fec_enabled),
fec_enabling_threshold(fec_enabling_threshold),
fec_disabling_threshold(fec_disabling_threshold),
- time_constant_ms(time_constant_ms),
- clock(clock) {}
+ time_constant_ms(time_constant_ms) {}
FecControllerPlrBased::FecControllerPlrBased(
const Config& config,
@@ -64,8 +62,7 @@
webrtc::field_trial::FindFullName("UseTwccPlrForAna") == "Enabled"
? std::unique_ptr<NullSmoothingFilter>(new NullSmoothingFilter())
: std::unique_ptr<SmoothingFilter>(
- new SmoothingFilterImpl(config.time_constant_ms,
- config.clock))) {}
+ new SmoothingFilterImpl(config.time_constant_ms))) {}
FecControllerPlrBased::~FecControllerPlrBased() = default;
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.h b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.h
index 52d0265..3913abb 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.h
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.h
@@ -36,13 +36,11 @@
Config(bool initial_fec_enabled,
const ThresholdCurve& fec_enabling_threshold,
const ThresholdCurve& fec_disabling_threshold,
- int time_constant_ms,
- const Clock* clock);
+ int time_constant_ms);
bool initial_fec_enabled;
ThresholdCurve fec_enabling_threshold;
ThresholdCurve fec_disabling_threshold;
int time_constant_ms;
- const Clock* clock;
};
// Dependency injection for testing.
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based_unittest.cc b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based_unittest.cc
index 0830479..fceae87 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based_unittest.cc
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based_unittest.cc
@@ -63,7 +63,7 @@
kEnablingBandwidthHigh, kEnablingPacketLossAtHighBw),
ThresholdCurve(kDisablingBandwidthLow, kDisablingPacketLossAtLowBw,
kDisablingBandwidthHigh, kDisablingPacketLossAtHighBw),
- 0, nullptr),
+ 0),
std::move(mock_smoothing_filter)));
return states;
}
@@ -319,7 +319,7 @@
kEnablingBandwidthHigh, kEnablingPacketLossAtHighBw),
ThresholdCurve(kDisablingBandwidthLow, kDisablingPacketLossAtLowBw,
kDisablingBandwidthHigh, kDisablingPacketLossAtHighBw),
- 0, nullptr),
+ 0),
std::move(mock_smoothing_filter)));
UpdateNetworkMetrics(&states, rtc::Optional<int>(kDisablingBandwidthLow - 1),
@@ -361,7 +361,7 @@
ThresholdCurve(
kDisablingBandwidthLow, kDisablingPacketLossAtLowBw,
kDisablingBandwidthHigh, kDisablingPacketLossAtHighBw),
- 0, nullptr),
+ 0),
std::move(mock_smoothing_filter))),
"Check failed");
}
diff --git a/webrtc/modules/audio_coding/codecs/audio_encoder.cc b/webrtc/modules/audio_coding/codecs/audio_encoder.cc
index c9d85f8..92d1b25 100644
--- a/webrtc/modules/audio_coding/codecs/audio_encoder.cc
+++ b/webrtc/modules/audio_coding/codecs/audio_encoder.cc
@@ -66,8 +66,7 @@
AudioEncoder::ReclaimContainedEncoders() { return nullptr; }
bool AudioEncoder::EnableAudioNetworkAdaptor(const std::string& config_string,
- RtcEventLog* event_log,
- const Clock* clock) {
+ RtcEventLog* event_log) {
return false;
}
diff --git a/webrtc/modules/audio_coding/codecs/audio_encoder.h b/webrtc/modules/audio_coding/codecs/audio_encoder.h
index b58f964..bdbbf2d 100644
--- a/webrtc/modules/audio_coding/codecs/audio_encoder.h
+++ b/webrtc/modules/audio_coding/codecs/audio_encoder.h
@@ -164,8 +164,7 @@
// Enables audio network adaptor. Returns true if successful.
virtual bool EnableAudioNetworkAdaptor(const std::string& config_string,
- RtcEventLog* event_log,
- const Clock* clock);
+ RtcEventLog* event_log);
// Disables audio network adaptor.
virtual void DisableAudioNetworkAdaptor();
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
index 6f6e39e..4c9ab6d 100644
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
@@ -284,9 +284,8 @@
class AudioEncoderOpus::PacketLossFractionSmoother {
public:
- explicit PacketLossFractionSmoother(const Clock* clock)
- : clock_(clock),
- last_sample_time_ms_(clock_->TimeInMilliseconds()),
+ explicit PacketLossFractionSmoother()
+ : last_sample_time_ms_(rtc::TimeMillis()),
smoother_(kAlphaForPacketLossFractionSmoother) {}
// Gets the smoothed packet loss fraction.
@@ -297,14 +296,13 @@
// Add new observation to the packet loss fraction smoother.
void AddSample(float packet_loss_fraction) {
- int64_t now_ms = clock_->TimeInMilliseconds();
+ int64_t now_ms = rtc::TimeMillis();
smoother_.Apply(static_cast<float>(now_ms - last_sample_time_ms_),
packet_loss_fraction);
last_sample_time_ms_ = now_ms;
}
private:
- const Clock* const clock_;
int64_t last_sample_time_ms_;
// An exponential filter is used to smooth the packet loss fraction.
@@ -366,21 +364,19 @@
"WebRTC-SendSideBwe-WithOverhead")),
packet_loss_rate_(0.0),
inst_(nullptr),
- packet_loss_fraction_smoother_(new PacketLossFractionSmoother(
- config.clock)),
+ packet_loss_fraction_smoother_(new PacketLossFractionSmoother()),
audio_network_adaptor_creator_(
audio_network_adaptor_creator
? std::move(audio_network_adaptor_creator)
: [this](const ProtoString& config_string,
- RtcEventLog* event_log,
- const Clock* clock) {
+ RtcEventLog* event_log) {
return DefaultAudioNetworkAdaptorCreator(config_string,
- event_log, clock);
+ event_log);
}),
bitrate_smoother_(bitrate_smoother
? std::move(bitrate_smoother) : std::unique_ptr<SmoothingFilter>(
// We choose 5sec as initial time constant due to empirical data.
- new SmoothingFilterImpl(5000, config.clock))) {
+ new SmoothingFilterImpl(5000))) {
RTC_CHECK(RecreateEncoderInstance(config));
}
@@ -464,10 +460,9 @@
bool AudioEncoderOpus::EnableAudioNetworkAdaptor(
const std::string& config_string,
- RtcEventLog* event_log,
- const Clock* clock) {
+ RtcEventLog* event_log) {
audio_network_adaptor_ =
- audio_network_adaptor_creator_(config_string, event_log, clock);
+ audio_network_adaptor_creator_(config_string, event_log);
return audio_network_adaptor_.get() != nullptr;
}
@@ -723,17 +718,15 @@
std::unique_ptr<AudioNetworkAdaptor>
AudioEncoderOpus::DefaultAudioNetworkAdaptorCreator(
const ProtoString& config_string,
- RtcEventLog* event_log,
- const Clock* clock) const {
+ RtcEventLog* event_log) const {
AudioNetworkAdaptorImpl::Config config;
- config.clock = clock;
config.event_log = event_log;
return std::unique_ptr<AudioNetworkAdaptor>(new AudioNetworkAdaptorImpl(
config,
ControllerManagerImpl::Create(
config_string, NumChannels(), supported_frame_lengths_ms(),
kOpusMinBitrateBps, num_channels_to_encode_, next_frame_length_ms_,
- GetTargetBitrate(), config_.fec_enabled, GetDtx(), clock)));
+ GetTargetBitrate(), config_.fec_enabled, GetDtx())));
}
void AudioEncoderOpus::MaybeUpdateUplinkBandwidth() {
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h
index e9672ed..6ea9aed 100644
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h
@@ -69,7 +69,6 @@
int complexity_threshold_window_bps = 1500;
bool dtx_enabled = false;
std::vector<int> supported_frame_lengths_ms;
- const Clock* clock = Clock::GetRealTimeClock();
int uplink_bandwidth_update_interval_ms = 200;
private:
@@ -87,8 +86,7 @@
using AudioNetworkAdaptorCreator =
std::function<std::unique_ptr<AudioNetworkAdaptor>(const std::string&,
- RtcEventLog*,
- const Clock*)>;
+ RtcEventLog*)>;
AudioEncoderOpus(
const Config& config,
AudioNetworkAdaptorCreator&& audio_network_adaptor_creator = nullptr,
@@ -121,8 +119,7 @@
bool SetApplication(Application application) override;
void SetMaxPlaybackRate(int frequency_hz) override;
bool EnableAudioNetworkAdaptor(const std::string& config_string,
- RtcEventLog* event_log,
- const Clock* clock) override;
+ RtcEventLog* event_log) override;
void DisableAudioNetworkAdaptor() override;
void OnReceivedUplinkPacketLossFraction(
float uplink_packet_loss_fraction) override;
@@ -169,8 +166,7 @@
void ApplyAudioNetworkAdaptor();
std::unique_ptr<AudioNetworkAdaptor> DefaultAudioNetworkAdaptorCreator(
const ProtoString& config_string,
- RtcEventLog* event_log,
- const Clock* clock) const;
+ RtcEventLog* event_log) const;
void MaybeUpdateUplinkBandwidth();
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc
index 55d3c92..788d799 100644
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc
@@ -23,7 +23,6 @@
#include "webrtc/test/gmock.h"
#include "webrtc/test/gtest.h"
#include "webrtc/test/testsupport/fileutils.h"
-#include "webrtc/system_wrappers/include/clock.h"
namespace webrtc {
using ::testing::NiceMock;
@@ -56,7 +55,7 @@
std::shared_ptr<MockAudioNetworkAdaptor*> mock_audio_network_adaptor;
MockSmoothingFilter* mock_bitrate_smoother;
std::unique_ptr<AudioEncoderOpus> encoder;
- std::unique_ptr<SimulatedClock> simulated_clock;
+ std::unique_ptr<rtc::ScopedFakeClock> fake_clock;
AudioEncoderOpus::Config config;
};
@@ -64,21 +63,22 @@
AudioEncoderOpusStates states;
states.mock_audio_network_adaptor =
std::make_shared<MockAudioNetworkAdaptor*>(nullptr);
-
+ states.fake_clock.reset(new rtc::ScopedFakeClock());
+ states.fake_clock->SetTimeMicros(kInitialTimeUs);
std::weak_ptr<MockAudioNetworkAdaptor*> mock_ptr(
states.mock_audio_network_adaptor);
- AudioEncoderOpus::AudioNetworkAdaptorCreator creator = [mock_ptr](
- const std::string&, RtcEventLog* event_log, const Clock*) {
- std::unique_ptr<MockAudioNetworkAdaptor> adaptor(
- new NiceMock<MockAudioNetworkAdaptor>());
- EXPECT_CALL(*adaptor, Die());
- if (auto sp = mock_ptr.lock()) {
- *sp = adaptor.get();
- } else {
- RTC_NOTREACHED();
- }
- return adaptor;
- };
+ AudioEncoderOpus::AudioNetworkAdaptorCreator creator =
+ [mock_ptr](const std::string&, RtcEventLog* event_log) {
+ std::unique_ptr<MockAudioNetworkAdaptor> adaptor(
+ new NiceMock<MockAudioNetworkAdaptor>());
+ EXPECT_CALL(*adaptor, Die());
+ if (auto sp = mock_ptr.lock()) {
+ *sp = adaptor.get();
+ } else {
+ RTC_NOTREACHED();
+ }
+ return adaptor;
+ };
CodecInst codec_inst = kDefaultOpusSettings;
codec_inst.channels = num_channels;
@@ -86,8 +86,6 @@
std::unique_ptr<MockSmoothingFilter> bitrate_smoother(
new MockSmoothingFilter());
states.mock_bitrate_smoother = bitrate_smoother.get();
- states.simulated_clock.reset(new SimulatedClock(kInitialTimeUs));
- states.config.clock = states.simulated_clock.get();
states.encoder.reset(new AudioEncoderOpus(states.config, std::move(creator),
std::move(bitrate_smoother)));
@@ -244,7 +242,8 @@
constexpr int64_t kSampleIntervalMs = 184198;
for (float loss : losses) {
states->encoder->OnReceivedUplinkPacketLossFraction(loss);
- states->simulated_clock->AdvanceTimeMilliseconds(kSampleIntervalMs);
+ states->fake_clock->AdvanceTime(
+ rtc::TimeDelta::FromMilliseconds(kSampleIntervalMs));
EXPECT_FLOAT_EQ(expected_return, states->encoder->packet_loss_rate());
}
}
@@ -291,7 +290,7 @@
TEST(AudioEncoderOpusTest,
InvokeAudioNetworkAdaptorOnReceivedUplinkPacketLossFraction) {
auto states = CreateCodec(2);
- states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
+ states.encoder->EnableAudioNetworkAdaptor("", nullptr);
auto config = CreateEncoderRuntimeConfig();
EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig())
@@ -308,7 +307,7 @@
TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnReceivedUplinkBandwidth) {
auto states = CreateCodec(2);
- states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
+ states.encoder->EnableAudioNetworkAdaptor("", nullptr);
auto config = CreateEncoderRuntimeConfig();
EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig())
@@ -330,7 +329,7 @@
TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnReceivedRtt) {
auto states = CreateCodec(2);
- states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
+ states.encoder->EnableAudioNetworkAdaptor("", nullptr);
auto config = CreateEncoderRuntimeConfig();
EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig())
@@ -346,7 +345,7 @@
TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnReceivedOverhead) {
auto states = CreateCodec(2);
- states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
+ states.encoder->EnableAudioNetworkAdaptor("", nullptr);
auto config = CreateEncoderRuntimeConfig();
EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig())
@@ -376,7 +375,8 @@
states.encoder->OnReceivedUplinkPacketLossFraction(kPacketLossFraction_1);
EXPECT_FLOAT_EQ(0.01f, states.encoder->packet_loss_rate());
- states.simulated_clock->AdvanceTimeMilliseconds(kSecondSampleTimeMs);
+ states.fake_clock->AdvanceTime(
+ rtc::TimeDelta::FromMilliseconds(kSecondSampleTimeMs));
states.encoder->OnReceivedUplinkPacketLossFraction(kPacketLossFraction_2);
// Now the output of packet loss fraction smoother should be
@@ -475,7 +475,7 @@
TEST(AudioEncoderOpusTest, EmptyConfigDoesNotAffectEncoderSettings) {
auto states = CreateCodec(2);
- states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
+ states.encoder->EnableAudioNetworkAdaptor("", nullptr);
auto config = CreateEncoderRuntimeConfig();
AudioEncoderRuntimeConfig empty_config;
@@ -494,9 +494,8 @@
}
TEST(AudioEncoderOpusTest, UpdateUplinkBandwidthInAudioNetworkAdaptor) {
- rtc::ScopedFakeClock fake_clock;
auto states = CreateCodec(2);
- states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
+ states.encoder->EnableAudioNetworkAdaptor("", nullptr);
std::array<int16_t, 480 * 2> audio;
audio.fill(0);
rtc::Buffer encoded;
@@ -509,7 +508,7 @@
// Repeat update uplink bandwidth tests.
for (int i = 0; i < 5; i++) {
// Don't update till it is time to update again.
- fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(
+ states.fake_clock->AdvanceTime(rtc::TimeDelta::FromMilliseconds(
states.config.uplink_bandwidth_update_interval_ms - 1));
states.encoder->Encode(
0, rtc::ArrayView<const int16_t>(audio.data(), audio.size()), &encoded);
@@ -518,7 +517,7 @@
EXPECT_CALL(*states.mock_bitrate_smoother, GetAverage())
.WillOnce(Return(rtc::Optional<float>(40000)));
EXPECT_CALL(**states.mock_audio_network_adaptor, SetUplinkBandwidth(40000));
- fake_clock.AdvanceTime(rtc::TimeDelta::FromMilliseconds(1));
+ states.fake_clock->AdvanceTime(rtc::TimeDelta::FromMilliseconds(1));
states.encoder->Encode(
0, rtc::ArrayView<const int16_t>(audio.data(), audio.size()), &encoded);
}
diff --git a/webrtc/modules/audio_coding/codecs/opus/opus_complexity_unittest.cc b/webrtc/modules/audio_coding/codecs/opus/opus_complexity_unittest.cc
index f242aa4..b199912 100644
--- a/webrtc/modules/audio_coding/codecs/opus/opus_complexity_unittest.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/opus_complexity_unittest.cc
@@ -9,12 +9,12 @@
*/
#include "webrtc/base/format_macros.h"
+#include "webrtc/base/timeutils.h"
#include "webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h"
#include "webrtc/modules/audio_coding/neteq/tools/audio_loop.h"
#include "webrtc/test/gtest.h"
#include "webrtc/test/testsupport/fileutils.h"
#include "webrtc/test/testsupport/perf_test.h"
-#include "webrtc/system_wrappers/include/clock.h"
namespace webrtc {
@@ -35,8 +35,7 @@
EXPECT_TRUE(audio_loop.Init(kInputFileName, kMaxLoopLengthSamples,
kInputBlockSizeSamples));
// Encode.
- webrtc::Clock* clock = webrtc::Clock::GetRealTimeClock();
- const int64_t start_time_ms = clock->TimeInMilliseconds();
+ const int64_t start_time_ms = rtc::TimeMillis();
AudioEncoder::EncodedInfo info;
rtc::Buffer encoded(500);
uint32_t rtp_timestamp = 0u;
@@ -45,7 +44,7 @@
info = encoder.Encode(rtp_timestamp, audio_loop.GetNextBlock(), &encoded);
rtp_timestamp += kInputBlockSizeSamples;
}
- return clock->TimeInMilliseconds() - start_time_ms;
+ return rtc::TimeMillis() - start_time_ms;
}
} // namespace
diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc
index a7a45e6..b5e1cad 100644
--- a/webrtc/voice_engine/channel.cc
+++ b/webrtc/voice_engine/channel.cc
@@ -1611,8 +1611,8 @@
bool success = false;
audio_coding_->ModifyEncoder([&](std::unique_ptr<AudioEncoder>* encoder) {
if (*encoder) {
- success = (*encoder)->EnableAudioNetworkAdaptor(
- config_string, event_log_proxy_.get(), Clock::GetRealTimeClock());
+ success = (*encoder)->EnableAudioNetworkAdaptor(config_string,
+ event_log_proxy_.get());
}
});
return success;