Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Unified Diff: webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc

Issue 2537243004: Revert of Renaming AudioEncoder::SetTargetBitrate and SetProjectedPacketLossRate. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc
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 f07279fac7d877109ba3bef92a47c8522acb8347..8e59f496d809d425f8a66979906d972cb01a48cb 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
@@ -151,27 +151,26 @@
EXPECT_TRUE(states.encoder->SetDtx(false));
}
-TEST(AudioEncoderOpusTest,
- OnReceivedTargetAudioBitrateWithoutAudioNetworkAdaptor) {
+TEST(AudioEncoderOpusTest, SetBitrate) {
auto states = CreateCodec(1);
// Constants are replicated from audio_states.encoderopus.cc.
const int kMinBitrateBps = 500;
const int kMaxBitrateBps = 512000;
// Set a too low bitrate.
- states.encoder->OnReceivedTargetAudioBitrate(kMinBitrateBps - 1);
+ states.encoder->SetTargetBitrate(kMinBitrateBps - 1);
EXPECT_EQ(kMinBitrateBps, states.encoder->GetTargetBitrate());
// Set a too high bitrate.
- states.encoder->OnReceivedTargetAudioBitrate(kMaxBitrateBps + 1);
+ states.encoder->SetTargetBitrate(kMaxBitrateBps + 1);
EXPECT_EQ(kMaxBitrateBps, states.encoder->GetTargetBitrate());
// Set the minimum rate.
- states.encoder->OnReceivedTargetAudioBitrate(kMinBitrateBps);
+ states.encoder->SetTargetBitrate(kMinBitrateBps);
EXPECT_EQ(kMinBitrateBps, states.encoder->GetTargetBitrate());
// Set the maximum rate.
- states.encoder->OnReceivedTargetAudioBitrate(kMaxBitrateBps);
+ states.encoder->SetTargetBitrate(kMaxBitrateBps);
EXPECT_EQ(kMaxBitrateBps, states.encoder->GetTargetBitrate());
// Set rates from 1000 up to 32000 bps.
for (int rate = 1000; rate <= 32000; rate += 1000) {
- states.encoder->OnReceivedTargetAudioBitrate(rate);
+ states.encoder->SetTargetBitrate(rate);
EXPECT_EQ(rate, states.encoder->GetTargetBitrate());
}
}
@@ -180,31 +179,24 @@
// Returns a vector with the n evenly-spaced numbers a, a + (b - a)/(n - 1),
// ..., b.
-std::vector<float> IntervalSteps(float a, float b, size_t n) {
- RTC_DCHECK_GT(n, 1u);
- const float step = (b - a) / (n - 1);
- std::vector<float> points;
- points.push_back(a);
- for (size_t i = 1; i < n - 1; ++i)
+std::vector<double> IntervalSteps(double a, double b, size_t n) {
+ RTC_DCHECK_GT(n, 1);
+ const double step = (b - a) / (n - 1);
+ std::vector<double> points;
+ for (size_t i = 0; i < n; ++i)
points.push_back(a + i * step);
- points.push_back(b);
return points;
}
// Sets the packet loss rate to each number in the vector in turn, and verifies
// that the loss rate as reported by the encoder is |expected_return| for all
// of them.
-void TestSetPacketLossRate(AudioEncoderOpusStates* states,
- const std::vector<float>& losses,
- float expected_return) {
- // |kSampleIntervalMs| is chosen to ease the calculation since
- // 0.9999 ^ 184198 = 1e-8. Which minimizes the effect of
- // PacketLossFractionSmoother used in AudioEncoderOpus.
- constexpr int64_t kSampleIntervalMs = 184198;
- for (float loss : losses) {
- states->encoder->OnReceivedUplinkPacketLossFraction(loss);
- states->simulated_clock->AdvanceTimeMilliseconds(kSampleIntervalMs);
- EXPECT_FLOAT_EQ(expected_return, states->encoder->packet_loss_rate());
+void TestSetPacketLossRate(AudioEncoderOpus* encoder,
+ const std::vector<double>& losses,
+ double expected_return) {
+ for (double loss : losses) {
+ encoder->SetProjectedPacketLossRate(loss);
+ EXPECT_DOUBLE_EQ(expected_return, encoder->packet_loss_rate());
}
}
@@ -212,23 +204,23 @@
TEST(AudioEncoderOpusTest, PacketLossRateOptimized) {
auto states = CreateCodec(1);
- auto I = [](float a, float b) { return IntervalSteps(a, b, 10); };
- constexpr float eps = 1e-8f;
+ auto I = [](double a, double b) { return IntervalSteps(a, b, 10); };
+ const double eps = 1e-15;
// Note that the order of the following calls is critical.
// clang-format off
- TestSetPacketLossRate(&states, I(0.00f , 0.01f - eps), 0.00f);
- TestSetPacketLossRate(&states, I(0.01f + eps, 0.06f - eps), 0.01f);
- TestSetPacketLossRate(&states, I(0.06f + eps, 0.11f - eps), 0.05f);
- TestSetPacketLossRate(&states, I(0.11f + eps, 0.22f - eps), 0.10f);
- TestSetPacketLossRate(&states, I(0.22f + eps, 1.00f ), 0.20f);
-
- TestSetPacketLossRate(&states, I(1.00f , 0.18f + eps), 0.20f);
- TestSetPacketLossRate(&states, I(0.18f - eps, 0.09f + eps), 0.10f);
- TestSetPacketLossRate(&states, I(0.09f - eps, 0.04f + eps), 0.05f);
- TestSetPacketLossRate(&states, I(0.04f - eps, 0.01f + eps), 0.01f);
- TestSetPacketLossRate(&states, I(0.01f - eps, 0.00f ), 0.00f);
+ TestSetPacketLossRate(states.encoder.get(), I(0.00 , 0.01 - eps), 0.00);
+ TestSetPacketLossRate(states.encoder.get(), I(0.01 + eps, 0.06 - eps), 0.01);
+ TestSetPacketLossRate(states.encoder.get(), I(0.06 + eps, 0.11 - eps), 0.05);
+ TestSetPacketLossRate(states.encoder.get(), I(0.11 + eps, 0.22 - eps), 0.10);
+ TestSetPacketLossRate(states.encoder.get(), I(0.22 + eps, 1.00 ), 0.20);
+
+ TestSetPacketLossRate(states.encoder.get(), I(1.00 , 0.18 + eps), 0.20);
+ TestSetPacketLossRate(states.encoder.get(), I(0.18 - eps, 0.09 + eps), 0.10);
+ TestSetPacketLossRate(states.encoder.get(), I(0.09 - eps, 0.04 + eps), 0.05);
+ TestSetPacketLossRate(states.encoder.get(), I(0.04 - eps, 0.01 + eps), 0.01);
+ TestSetPacketLossRate(states.encoder.get(), I(0.01 - eps, 0.00 ), 0.00);
// clang-format on
}
@@ -325,13 +317,13 @@
// will fail.
constexpr float kPacketLossFraction_1 = 0.02f;
constexpr float kPacketLossFraction_2 = 0.198f;
- // |kSecondSampleTimeMs| is chosen to ease the calculation since
+ // |kSecondSampleTimeMs| is chose to ease the calculation since
// 0.9999 ^ 6931 = 0.5.
- constexpr int64_t kSecondSampleTimeMs = 6931;
+ constexpr float kSecondSampleTimeMs = 6931;
// First time, no filtering.
states.encoder->OnReceivedUplinkPacketLossFraction(kPacketLossFraction_1);
- EXPECT_FLOAT_EQ(0.01f, states.encoder->packet_loss_rate());
+ EXPECT_DOUBLE_EQ(0.01, states.encoder->packet_loss_rate());
states.simulated_clock->AdvanceTimeMilliseconds(kSecondSampleTimeMs);
states.encoder->OnReceivedUplinkPacketLossFraction(kPacketLossFraction_2);
@@ -340,7 +332,7 @@
// (0.02 + 0.198) / 2 = 0.109, which reach the threshold for the optimized
// packet loss rate to increase to 0.05. If no smoothing has been made, the
// optimized packet loss rate should have been increase to 0.1.
- EXPECT_FLOAT_EQ(0.05f, states.encoder->packet_loss_rate());
+ EXPECT_DOUBLE_EQ(0.05, states.encoder->packet_loss_rate());
}
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698