webrtc_m130/modules/bitrate_controller/send_side_bandwidth_estimation_unittest.cc

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

168 lines
5.5 KiB
C++
Raw Normal View History

/*
* Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include <algorithm>
#include <vector>
#include "logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h"
#include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
#include "modules/bitrate_controller/send_side_bandwidth_estimation.h"
#include "test/gtest.h"
namespace webrtc {
MATCHER(LossBasedBweUpdateWithBitrateOnly, "") {
if (arg->GetType() != RtcEvent::Type::BweUpdateLossBased) {
return false;
}
auto bwe_event = static_cast<RtcEventBweUpdateLossBased*>(arg);
return bwe_event->bitrate_bps_ > 0 && bwe_event->fraction_loss_ == 0;
}
MATCHER(LossBasedBweUpdateWithBitrateAndLossFraction, "") {
if (arg->GetType() != RtcEvent::Type::BweUpdateLossBased) {
return false;
}
auto bwe_event = static_cast<RtcEventBweUpdateLossBased*>(arg);
return bwe_event->bitrate_bps_ > 0 && bwe_event->fraction_loss_ > 0;
}
void TestProbing(bool use_delay_based) {
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
MockRtcEventLog event_log;
SendSideBandwidthEstimation bwe(&event_log);
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.SetMinMaxBitrate(100000, 1500000);
bwe.SetSendBitrate(200000);
const int kRembBps = 1000000;
const int kSecondRembBps = kRembBps + 500000;
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
int64_t now_ms = 0;
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateReceiverBlock(0, 50, 1, now_ms);
// Initial REMB applies immediately.
if (use_delay_based) {
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateDelayBasedEstimate(now_ms, kRembBps);
} else {
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateReceiverEstimate(now_ms, kRembBps);
}
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateEstimate(now_ms);
int bitrate;
uint8_t fraction_loss;
int64_t rtt;
bwe.CurrentEstimate(&bitrate, &fraction_loss, &rtt);
EXPECT_EQ(kRembBps, bitrate);
// Second REMB doesn't apply immediately.
now_ms += 2001;
if (use_delay_based) {
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateDelayBasedEstimate(now_ms, kSecondRembBps);
} else {
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateReceiverEstimate(now_ms, kSecondRembBps);
}
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateEstimate(now_ms);
bitrate = 0;
bwe.CurrentEstimate(&bitrate, &fraction_loss, &rtt);
EXPECT_EQ(kRembBps, bitrate);
}
TEST(SendSideBweTest, InitialRembWithProbing) {
TestProbing(false);
}
TEST(SendSideBweTest, InitialDelayBasedBweWithProbing) {
TestProbing(true);
}
TEST(SendSideBweTest, DoesntReapplyBitrateDecreaseWithoutFollowingRemb) {
MockRtcEventLog event_log;
EXPECT_CALL(event_log, LogProxy(LossBasedBweUpdateWithBitrateOnly()))
.Times(1);
EXPECT_CALL(event_log,
LogProxy(LossBasedBweUpdateWithBitrateAndLossFraction()))
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
.Times(2);
SendSideBandwidthEstimation bwe(&event_log);
static const int kMinBitrateBps = 100000;
static const int kInitialBitrateBps = 1000000;
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.SetMinMaxBitrate(kMinBitrateBps, 1500000);
bwe.SetSendBitrate(kInitialBitrateBps);
static const uint8_t kFractionLoss = 128;
static const int64_t kRttMs = 50;
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
int64_t now_ms = 0;
int bitrate_bps;
uint8_t fraction_loss;
int64_t rtt_ms;
bwe.CurrentEstimate(&bitrate_bps, &fraction_loss, &rtt_ms);
EXPECT_EQ(kInitialBitrateBps, bitrate_bps);
EXPECT_EQ(0, fraction_loss);
EXPECT_EQ(0, rtt_ms);
// Signal heavy loss to go down in bitrate.
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateReceiverBlock(kFractionLoss, kRttMs, 100, now_ms);
// Trigger an update 2 seconds later to not be rate limited.
now_ms += 1000;
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateEstimate(now_ms);
bwe.CurrentEstimate(&bitrate_bps, &fraction_loss, &rtt_ms);
EXPECT_LT(bitrate_bps, kInitialBitrateBps);
// Verify that the obtained bitrate isn't hitting the min bitrate, or this
// test doesn't make sense. If this ever happens, update the thresholds or
// loss rates so that it doesn't hit min bitrate after one bitrate update.
EXPECT_GT(bitrate_bps, kMinBitrateBps);
EXPECT_EQ(kFractionLoss, fraction_loss);
EXPECT_EQ(kRttMs, rtt_ms);
// Triggering an update shouldn't apply further downgrade nor upgrade since
// there's no intermediate receiver block received indicating whether this is
// currently good or not.
int last_bitrate_bps = bitrate_bps;
// Trigger an update 2 seconds later to not be rate limited (but it still
// shouldn't update).
now_ms += 1000;
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateEstimate(now_ms);
bwe.CurrentEstimate(&bitrate_bps, &fraction_loss, &rtt_ms);
EXPECT_EQ(last_bitrate_bps, bitrate_bps);
// The old loss rate should still be applied though.
EXPECT_EQ(kFractionLoss, fraction_loss);
EXPECT_EQ(kRttMs, rtt_ms);
}
TEST(SendSideBweTest, SettingSendBitrateOverridesDelayBasedEstimate) {
::testing::NiceMock<MockRtcEventLog> event_log;
SendSideBandwidthEstimation bwe(&event_log);
static const int kMinBitrateBps = 10000;
static const int kMaxBitrateBps = 10000000;
static const int kInitialBitrateBps = 300000;
static const int kDelayBasedBitrateBps = 350000;
static const int kForcedHighBitrate = 2500000;
int64_t now_ms = 0;
int bitrate_bps;
uint8_t fraction_loss;
int64_t rtt_ms;
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.SetMinMaxBitrate(kMinBitrateBps, kMaxBitrateBps);
bwe.SetSendBitrate(kInitialBitrateBps);
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.UpdateDelayBasedEstimate(now_ms, kDelayBasedBitrateBps);
bwe.UpdateEstimate(now_ms);
bwe.CurrentEstimate(&bitrate_bps, &fraction_loss, &rtt_ms);
EXPECT_GE(bitrate_bps, kInitialBitrateBps);
EXPECT_LE(bitrate_bps, kDelayBasedBitrateBps);
Revert "Reland "Using units in SendSideBandwidthEstimation."" This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56. Reason for revert: <INSERT REASONING HERE> Original change's description: > Reland "Using units in SendSideBandwidthEstimation." > > This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b. > > Reason for revert: Handling downstream use case. > > Original change's description: > > Revert "Using units in SendSideBandwidthEstimation." > > > > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29. > > > > Reason for revert: Breaks downstream project > > > > Original change's description: > > > Using units in SendSideBandwidthEstimation. > > > > > > This CL moves SendSideBandwidthEstimation to use the unit types > > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes. > > > > > > Bug: webrtc:9718 > > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021 > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#25029} > > > > TBR=terelius@webrtc.org,srte@webrtc.org > > > > No-Try: True > > Bug: webrtc:9718 > > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780 > > Reviewed-on: https://webrtc-review.googlesource.com/c/104480 > > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25035} > > TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org > > Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9718 > Reviewed-on: https://webrtc-review.googlesource.com/c/104520 > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > Commit-Queue: Sebastian Jansson <srte@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25036} TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org Change-Id: I6628771c79fc78dfd856649ae92232e95df63495 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9718 Reviewed-on: https://webrtc-review.googlesource.com/c/104540 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25037}
2018-10-08 08:27:22 +00:00
bwe.SetSendBitrate(kForcedHighBitrate);
bwe.CurrentEstimate(&bitrate_bps, &fraction_loss, &rtt_ms);
EXPECT_EQ(bitrate_bps, kForcedHighBitrate);
}
} // namespace webrtc