Commit graph

88 commits

Author SHA1 Message Date
Erik Språng
cfe36ca3b3 Cap probing bitrate to max total allocated bitrate
Bug: webrtc:10070
Change-Id: I3ba2656dff08e9ff054e263d78dcacba1ff77dd1
Reviewed-on: https://webrtc-review.googlesource.com/c/112384
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25845}
2018-11-29 17:35:15 +00:00
Christoffer Rodbro
5976bde2e6 Unittests for loss based bandwidth estimation.
Bug: none
Change-Id: I204071683c1c6e28040ea3bce900c4b04108cba7
Reviewed-on: https://webrtc-review.googlesource.com/c/112380
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25844}
2018-11-29 17:22:59 +00:00
Yves Gerey
3e70781361 [Cleanup] Add missing #include. Remove useless ones. IWYU part 2.
This is a follow-up to
https://webrtc-review.googlesource.com/c/src/+/106280.
This time the whole code base is covered.
Some files may have not been fixed though, whenever the IWYU tool
was breaking the build.

Bug: webrtc:8311
Change-Id: I2c31f552a87e887d33931d46e87b6208b1e483ef
Reviewed-on: https://webrtc-review.googlesource.com/c/111965
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25830}
2018-11-28 18:25:07 +00:00
Bjorn Terelius
6b3d18164b Remove unused BWE field trial strings.
Bug: None
Change-Id: I38d2e5495ddfe0b9f1493efc38ef7df95e7fd207
Reviewed-on: https://webrtc-review.googlesource.com/c/111258
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25798}
2018-11-27 13:05:43 +00:00
Sebastian Jansson
57f3ad0f8d Adds stable bandwidth estimate to GoogCC.
The intention is to provide a bandwidth estimate that only updates if
the actual available bandwidth is known to have changed. This will be
used in media streams to avoid changing the configuration (such as
frame size, audio frame length etc), just because the control target
rate changed.

Bug: webrtc:9718
Change-Id: I17ba5a2f9e5bd408a71f89c690d45541655a68e2
Reviewed-on: https://webrtc-review.googlesource.com/c/107726
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25772}
2018-11-23 14:55:37 +00:00
Sebastian Jansson
885cf60106 Moves ProbeBitrateEstimator from DelayBasedBwe.
This prepares for providing an additional implementation of delay based
rate control. By moving the probe controller, less code will have to be
added in the upcoming CL.

Bug: webrtc:9718
Change-Id: I64eb2c8f5f7950b6e9d209f110dc0a757c710b4b
Reviewed-on: https://webrtc-review.googlesource.com/c/111860
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25770}
2018-11-23 13:43:51 +00:00
Mirko Bonadei
e3abb8134f Decouple //rtc_base:rtc_base_tests_utils from gunit.
This CL decouples //rtc_base:rtc_base_tests_utils from gunit by
moving gunit helpers (rtc_base/gunit.h) and rtc_base/testclient.h
(which depends on gunit helpers) to their own build target.

It also removes some unused dependencies in the WebRTC build graph.

Bug: None
Change-Id: Ia9820e84ff697da39b351eef73c45f6e4bdf2623
Reviewed-on: https://webrtc-review.googlesource.com/c/111861
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25769}
2018-11-23 12:52:46 +00:00
Bjorn Terelius
eccfc47ffa Cleanup AimdRateController and remove RateControlRegion enum.
- Rename avg_max_bitrate_kbps to link_capacity_estimate_kbps and change
  the type to optional.
- Remove the RateControlRegion enum. The old code seems to have the invariant
  that the region is kRcMaxUnknown iff avg_max_bitrate_kbps is uninitialized.
- Change floats to double.

Bug: webrtc:9942
Change-Id: Ic071a11ec4950053ec92beaa06f28f43192521d7
Reviewed-on: https://webrtc-review.googlesource.com/c/111247
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25752}
2018-11-22 13:51:28 +00:00
Alex Loiko
ecd62056e3 Disable GoogCcNetworkControllerTest.DetectsHighRateInSafeResetTrial
Test is flaky. See linked bug.

TBR=srte@webrtc.org

Bug: webrtc:10036
Change-Id: I21dd0daceaca6071364cb3aec50da79480f4dfcb
Reviewed-on: https://webrtc-review.googlesource.com/c/111747
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25746}
2018-11-22 10:51:11 +00:00
Sebastian Jansson
5f00995964 Using unit classes in AimdRateControl.
Bug: webrtc:9718
Change-Id: I1efed4e55c9d1ccec3c32ed012cb3cd82d7f4ee8
Reviewed-on: https://webrtc-review.googlesource.com/c/110788
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25705}
2018-11-20 08:04:11 +00:00
Sebastian Jansson
b6787bcd79 Using data unit classes in DelayBasedBwe.
Bug: webrtc:9718
Change-Id: I1b6ed37afd7680dfad6267addfe46155c378525d
Reviewed-on: https://webrtc-review.googlesource.com/c/110903
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25702}
2018-11-19 20:18:36 +00:00
Christoffer Rodbro
3a83748422 New loss-based bandwidth control mechanism.
Bug: none
Change-Id: Ie60e9225e2a2260624342ffbadb08cb887b2b6f5
Reviewed-on: https://webrtc-review.googlesource.com/c/109923
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25696}
2018-11-19 15:09:04 +00:00
Sebastian Jansson
24643488d4 Don't reset RTT Backoff timeout on route change.
Bug: webrtc:9718
Change-Id: I536733b33c40838cdfc473988581147bec6a358a
Reviewed-on: https://webrtc-review.googlesource.com/c/109927
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25638}
2018-11-14 15:06:15 +00:00
Sebastian Jansson
6b64c43cfd Using early acknowledged rate for safe reset in GoogCC.
This won't be perfect since the peeked value will be noisy, but since we
cap it with the starting rate, it should only improve things.

Bug: webrtc:9718
Change-Id: Id2cf42fb85c8d7126f6d538a3982d65caa7a75b7
Reviewed-on: https://webrtc-review.googlesource.com/c/109926
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25604}
2018-11-12 15:19:43 +00:00
Sebastian Jansson
af6d741fe1 Makes send time information in feedback non-optional.
This makes it safer to reason about the common case where send
time information is available. We don't have to either assume that
it's available, or check it everywhere the PacketResult struct is used.

To achieve this, a new field is added to TransportPacketsFeedback
and a new interface is introduced to clearly separate which field is
used. A possible followup would be to introduce a separate struct.
That would complicate the signature of ProcessTransportFeedback.

Bug: webrtc:9934
Change-Id: I2b319e4df2b557fbd4de66b812744bca7d91ca15
Reviewed-on: https://webrtc-review.googlesource.com/c/107080
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25465}
2018-11-01 12:39:56 +00:00
Sebastian Jansson
449c1c03a7 Adds unit tests for safe reset trial.
Since they rely on a real time simulation, a new build target is
introduced that is intended to be used for real time tests.

Bug: webrtc:9518
Change-Id: Iea58f6a2b687f026e9ab1f37b4aabf8261ed7d23
Reviewed-on: https://webrtc-review.googlesource.com/c/107345
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25410}
2018-10-29 11:14:46 +00:00
erikvarga@webrtc.org
0f08d227c2 Add a function for enabling the congestion window and pushback controller in the webrtc::SendSideCongestionController.
Bug: webrtc:9923
Change-Id: Id01ebd7237ba33f34003aa9560405a13da7580e2
Reviewed-on: https://webrtc-review.googlesource.com/c/107893
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Commit-Queue: Erik Varga <erikvarga@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25393}
2018-10-26 17:19:32 +00:00
Yves Gerey
988cc0870b [Cleanup] Add missing #include. Remove useless ones.
This CL is the result of running include-what-you-use tool on part
of the code base (audio target and dependencies) plus manual fixes.

bug: webrtc:8311
Change-Id: I277d281ce943c3ecc1bd45fd8d83055931743604
Reviewed-on: https://webrtc-review.googlesource.com/c/106280
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25311}
2018-10-23 11:32:56 +00:00
Sebastian Jansson
8d33c0c104 Adds field trial to do safer reset on route change.
Bug: webrtc:9718
Change-Id: I71143a9616981a24bca7bd5c663a9dae9fc9692e
Reviewed-on: https://webrtc-review.googlesource.com/c/106903
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25286}
2018-10-22 10:46:49 +00:00
Sebastian Jansson
78416b6e18 Adds time to initial config in analyzer code.
Bug: webrtc:9586
Change-Id: Ib5cbcdcf2cce3bea24d8c03a25f6cd415feb97ad
Reviewed-on: https://webrtc-review.googlesource.com/c/106880
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25254}
2018-10-18 12:43:31 +00:00
Sebastian Jansson
f5e767dbbc Don't send max allocation probe unless allocation changed.
This changes the behavior to a probe only gets trigged if
the total max allocated bitrate  actually changed.

Also adding helpful log dump flag to ramp up tests that
was used to investigate the issue.

Bug: chromium:894434
Change-Id: I907675b8fd5a339f838b07d433ecf837e312def1
Reviewed-on: https://webrtc-review.googlesource.com/c/105981
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25212}
2018-10-16 15:13:57 +00:00
Sebastian Jansson
cd0ca2d5d7 Adds unit test for RTT based backoff.
Bug: webrtc:9718
Change-Id: I372f7874a6a001e6cb5e7f6886b28763ae84c464
Reviewed-on: https://webrtc-review.googlesource.com/c/105665
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25179}
2018-10-15 17:01:01 +00:00
Sebastian Jansson
8285841e8f Adds handling of untracked data to congestion controller.
Bug: webrtc:9796
Change-Id: I097e8f72a6c8d323c3ea73dbb4ade60873dd4e8d
Reviewed-on: https://webrtc-review.googlesource.com/c/104883
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25129}
2018-10-11 18:47:44 +00:00
Ying Wang
fb226af64d Remove some old logging in goog_cc for congestion window.
Bug: None
Change-Id: I05550e5099cd7b4bc9512d2ce4159222779c02a7
Reviewed-on: https://webrtc-review.googlesource.com/c/105326
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25118}
2018-10-11 16:08:57 +00:00
Sebastian Jansson
3bdbc84888 Moves pushback controller to GoogCC
Since the pushback controller doesn't strictly adhere to the congestion
window, it better belongs together with the congestion controller logic.

Also ensuring that it does not override the configured min bitrate.

Bug: webrtc:9586
Change-Id: I57dcfc946d470247e66c67adabddaafa3d9d83ad
Reviewed-on: https://webrtc-review.googlesource.com/c/105102
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25115}
2018-10-11 13:49:07 +00:00
Sebastian Jansson
c87b8c194a Moves GoogCC factory to API.
Bug: None
Change-Id: Ib5be0e984eff3a652504106552b0779be2c316ca
Reviewed-on: https://webrtc-review.googlesource.com/c/104941
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25076}
2018-10-10 06:11:36 +00:00
Sebastian Jansson
2e068e8b6f Adds RTT based backoff trial to SendSideBandwidthEstimation.
Bug: webrtc:9718
Change-Id: Ic94dcd7612524d350f54d1907f843577b890badf
Reviewed-on: https://webrtc-review.googlesource.com/c/104122
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25048}
2018-10-08 12:36:06 +00:00
Sebastian Jansson
7c1744d3dc Reland "Reland "Using units in SendSideBandwidthEstimation.""
This reverts commit a4de9c8b04.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Reland "Using units in SendSideBandwidthEstimation.""
> 
> This reverts commit e2cb26cb4f.
> 
> Reason for revert: <INSERT REASONING HERE>
> 
> Original change's description:
> > Reland "Using units in SendSideBandwidthEstimation."
> > 
> > This reverts commit 917e5967a5.
> > 
> > Reason for revert: Handling downstream use case.
> > 
> > Original change's description:
> > > Revert "Using units in SendSideBandwidthEstimation."
> > > 
> > > This reverts commit 35b5e5f3b0.
> > > 
> > > 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}

TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org

Change-Id: If5473859cea725420afce11b6683fa0c70a29b0a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9718
Reviewed-on: https://webrtc-review.googlesource.com/c/104501
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25039}
2018-10-08 09:02:03 +00:00
Sebastian Jansson
a4de9c8b04 Revert "Reland "Using units in SendSideBandwidthEstimation.""
This reverts commit e2cb26cb4f.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Reland "Using units in SendSideBandwidthEstimation."
> 
> This reverts commit 917e5967a5.
> 
> Reason for revert: Handling downstream use case.
> 
> Original change's description:
> > Revert "Using units in SendSideBandwidthEstimation."
> > 
> > This reverts commit 35b5e5f3b0.
> > 
> > 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:29 +00:00
Sebastian Jansson
e2cb26cb4f Reland "Using units in SendSideBandwidthEstimation."
This reverts commit 917e5967a5.

Reason for revert: Handling downstream use case.

Original change's description:
> Revert "Using units in SendSideBandwidthEstimation."
> 
> This reverts commit 35b5e5f3b0.
> 
> 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}
2018-10-08 08:26:09 +00:00
Oleh Prypin
917e5967a5 Revert "Using units in SendSideBandwidthEstimation."
This reverts commit 35b5e5f3b0.

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}
2018-10-08 08:21:18 +00:00
Sebastian Jansson
35b5e5f3b0 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}
2018-10-05 18:37:13 +00:00
Sebastian Jansson
a23dc78c7d Removes initial window field trial.
Bug: webrtc:9718
Change-Id: Ia1cc352bde1d8994cce7eb7e3bdcbc04e03fd718
Reviewed-on: https://webrtc-review.googlesource.com/c/104041
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25025}
2018-10-05 15:41:50 +00:00
Sebastian Jansson
35fa280229 Adds allocated rate without feedback to new congestion controller.
When bitrate is allocated to streams that does not have packet feedback,
the allocated bitrate should be included in the estimate. This was
previously only implemented for the old congestion controller and not
for the new task queue based version.

To make the behavior more robust, the responsibility for tracking this
is moved to BitrateAllocator where it's handled consistently for
multiple streams without feedback.

Bug: webrtc:9586, webrtc:8243
Change-Id: I8af7fec23e1bdc08cc61cf1b4ff10461c3711fb0
Reviewed-on: https://webrtc-review.googlesource.com/102681
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24905}
2018-10-01 07:48:02 +00:00
Sebastian Jansson
71a091e24e Adds simulated time scenario client.
Adds SimulatedTimeClient, a class that simulates time so congestion
controllers can be tested using the Scenario test framework without
running in real time.

This allows using simplified scenario tests as unit tests, narrowing
the gap between end to end tests and unit tests.

Bug: webrtc:9510
Change-Id: I61ab388bd610f636b926675b1f14b8d85e3c1114
Reviewed-on: https://webrtc-review.googlesource.com/99801
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24890}
2018-09-28 12:30:44 +00:00
Mirko Bonadei
17f4878419 Remove deprecated field_trial_default and metrics_default.
This CL removes some deprecated build targets (and their headers)
from system_wrappers:
- field_trial_api
- field_trial_default
- metrics_api
- metrics_default

It also refreshes all the dependencies on field_trial.h and metrics.h.

A nice side effect is that it is finally possible to remove 'nogncheck'
from the following files (when it was used with field_trial_default
and metrics_default):
- sdk/objc/api/peerconnection/RTCMetricsSampleInfo+Private.h
- sdk/android/src/jni/pc/peerconnectionfactory.cc
- sdk/objc/api/peerconnection/RTCFieldTrials.mm

Bug: webrtc:9631
Change-Id: Ib621f41ef8ad0aba4fe1c1d7e749c044afc956c3
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/100524
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24878}
2018-09-28 07:21:07 +00:00
Sebastian Jansson
98b07e9180 Adds scenario test framework.
Bug: webrtc:9510
Change-Id: I387aab4211f520a1c54832f82032ee724479e89e
Reviewed-on: https://webrtc-review.googlesource.com/89342
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24864}
2018-09-27 12:31:33 +00:00
Sebastian Jansson
c0af56b9fb Cleanup in congestion controller.
This CL removes some indirection and moves some constants. This
is done to simplify understanding and debugging of the code.

Bug: webrtc:9718
Change-Id: Ibe2b1da0163b4c97ffd1a5bc157f6aa59582d697
Reviewed-on: https://webrtc-review.googlesource.com/98240
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24732}
2018-09-13 15:46:37 +00:00
Sebastian Jansson
57606328f6 Adds initial data window field trial to GoogCC.
Bug: webrtc:9718
Change-Id: Ia5a77a09d7ba82b545e9ab12036f717765fdf3b4
Reviewed-on: https://webrtc-review.googlesource.com/97740
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24659}
2018-09-10 16:55:37 +00:00
Mirko Bonadei
50cfab7d84 Fix no_global_constructors in congestion_controller/goog_cc.
Bug: webrtc:9693
Change-Id: Ic341f3bed2c7c8c4f62363a7344f8524ff561155
Reviewed-on: https://webrtc-review.googlesource.com/98580
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24607}
2018-09-06 16:01:49 +00:00
Mirko Bonadei
96ede16a4e Enable -Wexit-time-destructors and -Wglobal-constructors.
This CL enables -Wexit-time-destructors and -Wglobal-constructors on
rtc_static_library and rtc_source_set build targets.

It also adds the possibility to suppress these warnings because
they trigger in a few places.

The long term goal is to avoid regressions on this and remove all the
suppressions.

Bug: webrtc:9693
Change-Id: I4c1ecc137ef9e87ec5e66981ce95d96fb082727c
Reviewed-on: https://webrtc-review.googlesource.com/98380
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24604}
2018-09-06 12:43:20 +00:00
Sebastian Jansson
8f03216bbd Minor refactor in GoogCcNetworkController.
In-lining GetNetworkParameters and MaybeUpdateCongestionWindow which
was left over from previous refactoring. This prepares for upcoming CLs
changing the behavior.

Bug: webrtc:9586
Change-Id: I6f038acdf97c3db2c85254a36592c617a5754a96
Reviewed-on: https://webrtc-review.googlesource.com/97605
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24570}
2018-09-05 09:20:15 +00:00
Sebastian Jansson
d0e0ec959f Printing internal state of GoogCC.
This is useful for debugging and has minimal effect on production code.

Bug: webrtc:9510
Change-Id: I3a71f484a0d4e54999e376b7924b73230d86cd96
Reviewed-on: https://webrtc-review.googlesource.com/97607
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24557}
2018-09-04 17:26:02 +00:00
Sebastian Jansson
9de4ef4b24 Adds signed infinity to timestamps.
Negative infinity is useful in comparisons as it represents a value
guaranteed to be less than any other timestamp. This avoid using
Timestamp::ms(0) to represent such a value or having to use optional
for the special case of first time execution.

To avoid ambiguity, Timestamp::Infinity is renamed to PlusInfinity.

Bug: webrtc:9709
Change-Id: Ib2debff91036e94d1dc903ec0c6faae30febde4e
Reviewed-on: https://webrtc-review.googlesource.com/79440
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24556}
2018-09-04 17:14:05 +00:00
Sebastian Jansson
ed1f75ab6d Removes redundant starting rate.
Sine a starting rate field was added to the constraints struct. Having
it in the initial config separately is reduntant. To simplify the code,
the extra field is removed. This is a follow up on:
https://webrtc-review.googlesource.com/c/src/+/92624

Bug: webrtc:9586
Change-Id: I9b01b16b2fc4b8479e83b7e998308be2295e0325
Reviewed-on: https://webrtc-review.googlesource.com/96801
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24514}
2018-08-31 17:36:21 +00:00
Will Harris
fc173d00ec Add no_size_t_to_int_warning suppression to webrtc.
Current set of warnings that need fixing before this warning can
be enabled is here -> https://pastebin.com/raw/jTddgPzP

BUG=chromium:588506, webrtc:9451

Change-Id: Id7896cf48c7231b2ee28dde378ff3ce17da73c2b
Reviewed-on: https://webrtc-review.googlesource.com/96623
Commit-Queue: Will Harris <wfh@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24503}
2018-08-30 17:45:54 +00:00
Sebastian Jansson
34ee419a23 Fixes breaking bug in feedback based GoogCC.
This CL fixes a bug in the feedback based GoogCC where packets lost
was swapped with expected packets received. Since this version of
GoogCC isn't yet used this wasn't discovered. There was also a lack
of unit test coverage. To ensure reasonable behavior, unit tests was
added.

Unit tests was also converted from relevant unit tests on send side
congestion controller for the regular GoogCC controller.

Bug: webrtc:9586
Change-Id: I83c40ff4766104820cb72ec1e8b95c5782def19a
Reviewed-on: https://webrtc-review.googlesource.com/59401
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24498}
2018-08-30 13:22:51 +00:00
Sebastian Jansson
206b77f7ad Adds start bitrate handling to task queue congestion controller.
This adds a start bitrate field to TargetRateConstraints since this is
required in VideoSendStreamTests. This also reduces the differences
between the old SendSideCongestionController and the new TaskQueue
based version.

Bug: webrtc:9586
Change-Id: I5d3d1414e9d30b51723c911a0bf2e96b876c04e5
Reviewed-on: https://webrtc-review.googlesource.com/92624
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24384}
2018-08-22 10:09:26 +00:00
Sebastian Jansson
eb73a7bd16 Removes unnecessary webrtc_cc namespaces.
Bug: webrtc:9586
Change-Id: I6407ee465d725d7469c409e5bea1c55354ab7f95
Reviewed-on: https://webrtc-review.googlesource.com/92385
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24199}
2018-08-06 17:18:45 +00:00
Sebastian Jansson
13ef7d25f6 Adds feedback only mode to GoogCC.
This CL adds a factory for creating a GoogCC network controller that
can be used without RTCP specific messages. This prepares for enabling
use of other underlying protocols as long as they can provide per
packet feedback.

Bug: None
Change-Id: I6671181949d97abd18843d0f4edf75040cc3f007
Reviewed-on: https://webrtc-review.googlesource.com/84583
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24198}
2018-08-06 15:43:37 +00:00