Revert "Stop exponential probing if 2xmax allocated bitrate lower than BWE."
This reverts commit 5a4ce031019bce349ad65e76aa5da6d0f8e5989e. Reason for revert: Breaks tests in downstream project. Original change's description: > Stop exponential probing if 2xmax allocated bitrate lower than BWE. > > Without this, if max allocated bitrate is lowered while exponential probing is ongoing, a new probe can be sent at a rate of the new low max allocated bitrate which may cause BWE to decrease. > > Bug: webrtc:14928 > Change-Id: Id8e314740c2403d3b801d28f634dbc718f77c16e > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/343384 > Reviewed-by: Diep Bui <diepbp@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#41929} Bug: webrtc:14928 Change-Id: I0d48b37bfb8684fd490f5685e510b438a83254b9 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/343900 Commit-Queue: Ying Wang <yinwa@webrtc.org> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Ying Wang <yinwa@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41958}
This commit is contained in:
parent
19fae11ee6
commit
802dd5bdbd
@ -294,13 +294,7 @@ std::vector<ProbeClusterConfig> ProbeController::SetEstimatedBitrate(
|
||||
|
||||
if (state_ == State::kWaitingForProbingResult) {
|
||||
// Continue probing if probing results indicate channel has greater
|
||||
// capacity unless we already reached the needed bitrate.
|
||||
if (bitrate > max_bitrate_ ||
|
||||
(!max_total_allocated_bitrate_.IsZero() &&
|
||||
bitrate > 2 * max_total_allocated_bitrate_)) {
|
||||
// No need to continue probing.
|
||||
min_bitrate_to_probe_further_ = DataRate::PlusInfinity();
|
||||
}
|
||||
// capacity.
|
||||
DataRate network_state_estimate_probe_further_limit =
|
||||
config_.network_state_estimate_probing_interval->IsFinite() &&
|
||||
network_estimate_
|
||||
|
||||
@ -23,10 +23,8 @@
|
||||
#include "test/gmock.h"
|
||||
#include "test/gtest.h"
|
||||
|
||||
using ::testing::Gt;
|
||||
using ::testing::IsEmpty;
|
||||
using ::testing::NiceMock;
|
||||
using ::testing::SizeIs;
|
||||
|
||||
namespace webrtc {
|
||||
namespace test {
|
||||
@ -327,30 +325,6 @@ TEST(ProbeControllerTest, TestExponentialProbing) {
|
||||
EXPECT_EQ(probes[0].target_data_rate.bps(), 2 * 1800);
|
||||
}
|
||||
|
||||
TEST(ProbeControllerTest, ExponentialProbingStopIfMaxAllocatedBitrateLow) {
|
||||
ProbeControllerFixture fixture;
|
||||
std::unique_ptr<ProbeController> probe_controller =
|
||||
fixture.CreateController();
|
||||
ASSERT_THAT(
|
||||
probe_controller->OnNetworkAvailability({.network_available = true}),
|
||||
IsEmpty());
|
||||
auto probes = probe_controller->SetBitrates(
|
||||
kMinBitrate, kStartBitrate, kMaxBitrate, fixture.CurrentTime());
|
||||
ASSERT_THAT(probes, SizeIs(Gt(0)));
|
||||
|
||||
// Repeated probe normally is sent when estimated bitrate climbs above
|
||||
// 0.7 * 6 * kStartBitrate = 1260. But since allocated bitrate i slow, expect
|
||||
// exponential probing to stop.
|
||||
probes = probe_controller->OnMaxTotalAllocatedBitrate(kStartBitrate,
|
||||
fixture.CurrentTime());
|
||||
EXPECT_THAT(probes, IsEmpty());
|
||||
|
||||
probes = probe_controller->SetEstimatedBitrate(
|
||||
DataRate::BitsPerSec(1800), BandwidthLimitedCause::kDelayBasedLimited,
|
||||
fixture.CurrentTime());
|
||||
EXPECT_THAT(probes, IsEmpty());
|
||||
}
|
||||
|
||||
TEST(ProbeControllerTest, TestExponentialProbingTimeout) {
|
||||
ProbeControllerFixture fixture;
|
||||
std::unique_ptr<ProbeController> probe_controller =
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user