Commit Graph

632 Commits

Author SHA1 Message Date
12985414b9 Removing unnecessary dependencies on socket.h.
Since rtc:SentPacket was removed to a separate header. Some usages of
socket.h can be replaced with sent_packet.h which defines a lot less
things, making future maintenance simpler.

Bug: webrtc:9586
Change-Id: If705edda293c389cf2a175117db52a6720a7be86
Reviewed-on: https://webrtc-review.googlesource.com/c/106144
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25201}
2018-10-16 10:24:51 +00:00
a39a00737f Reland "Deprecates legacy transport feedback adapter."
This is a reland of a5778e0d560ffb3e07637547ba8468f4762a2b3e

Original change's description:
> Deprecates legacy transport feedback adapter.
>
> Bug: webrtc:9586
> Change-Id: Ib8c9cec1eb7f3cfa90b18b4b64171fa1b06713cf
> Reviewed-on: https://webrtc-review.googlesource.com/c/105984
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25184}

TBR=terelius@webrtc.org

Bug: webrtc:9586
Change-Id: I4e2b42f71cc13d3ff92c3c11de63bde16c58439b
Reviewed-on: https://webrtc-review.googlesource.com/c/106143
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25190}
2018-10-15 20:43:39 +00:00
f714ee1f8f Revert "Deprecates legacy transport feedback adapter."
This reverts commit a5778e0d560ffb3e07637547ba8468f4762a2b3e.

Reason for revert:
../../rtc_tools/event_log_visualizer/analyzer.cc(1084,3):  error: use of undeclared identifier 'webrtc_cc'
    webrtc_cc::TransportFeedbackAdapter transport_feedback(&clock);

Original change's description:
> Deprecates legacy transport feedback adapter.
> 
> Bug: webrtc:9586
> Change-Id: Ib8c9cec1eb7f3cfa90b18b4b64171fa1b06713cf
> Reviewed-on: https://webrtc-review.googlesource.com/c/105984
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25184}

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

Change-Id: I768149f9f4c5db740c2d5938cb3df1d54a8283d4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9586
Reviewed-on: https://webrtc-review.googlesource.com/c/106141
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25185}
2018-10-15 18:24:11 +00:00
a5778e0d56 Deprecates legacy transport feedback adapter.
Bug: webrtc:9586
Change-Id: Ib8c9cec1eb7f3cfa90b18b4b64171fa1b06713cf
Reviewed-on: https://webrtc-review.googlesource.com/c/105984
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25184}
2018-10-15 18:01:08 +00:00
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
74c066c0c5 Merges ControlHandler and PacerController.
This is part of a series of CLs preparing to remove
SendSideCongestionController as a separate class.

Bug: webrtc:9586
Change-Id: I0dabd00793e7b436a679d2ef695d2e557a35ae87
Reviewed-on: https://webrtc-review.googlesource.com/c/105420
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25178}
2018-10-15 16:44:51 +00:00
7341ab60d0 Moves functionality to TransportFeedbackAdapter.
This moves simple logic from SendSideCongestionController to
TransportFeedbackAdapter. The purpose is to make it easier to
reuse TransportFeedbackAdapter without requiring everything
in SendSideCongestionController.

Bug: webrtc:9586
Change-Id: I35acedd15001d75a06c38ece76868afecd6afa18
Reviewed-on: https://webrtc-review.googlesource.com/c/105106
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25177}
2018-10-15 16:09:40 +00:00
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
20ad2544b4 Adds tracking of allocated but unacknowledged bitrate.
This adds tracking of traffic for streams that are part of bitrate
allocation but without packet feedback to send side congestion
controller.

This is part of a series of CLs that allows GoogCC to track sent bitrate
that is included in bitrate allocation but without transport feedback.

Bug: webrtc:9796
Change-Id: I13e994461c26638d76e8f2f115e6d375e4403116
Reviewed-on: https://webrtc-review.googlesource.com/c/104940
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25126}
2018-10-11 17:45:53 +00:00
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
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
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
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
7c1744d3dc Reland "Reland "Using units in SendSideBandwidthEstimation.""
This reverts commit a4de9c8b04ce9f7b1c4be639edd6cc4d3a9f07a1.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> 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}

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
a4de9c8b04 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:29 +00:00
e2cb26cb4f 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}
2018-10-08 08:26:09 +00:00
917e5967a5 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}
2018-10-08 08:21:18 +00:00
2e00abc98e Reland "[cleanup] Remove useless includes."
Reason for reland: Downstream project fixed.

Original change's description:

> [cleanup] Remove useless includes.
>
> Manual cleanup guided by include-what-you-use diagnostic.
>
> Bug: webrtc:8311
> Change-Id: I00be03392cc7ee005101427ea7dc701621ccea68
> Reviewed-on: https://webrtc-review.googlesource.com/c/103320
> Commit-Queue: Yves Gerey <yvesg@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25013}

Bug: webrtc:8311
Change-Id: Id6ec4aeb798886a90ace640a190eaf16497ba31b
Reviewed-on: https://webrtc-review.googlesource.com/c/104120
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25034}
2018-10-08 07:44:19 +00:00
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
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
b88fe025b7 Removes logging spam from congestion window.
Bug: webrtc:9830
Change-Id: I20c84b757de03f2bcc010b19f256297ca9722fa6
Reviewed-on: https://webrtc-review.googlesource.com/c/104066
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25022}
2018-10-05 15:00:17 +00:00
96a0f61917 Revert "[cleanup] Remove useless includes."
This reverts commit be8b5348c76105f8fe869b0cae4065ddca106419.

Reason for revert: Breaks downstream project

Original change's description:
> [cleanup] Remove useless includes.
> 
> Manual cleanup guided by include-what-you-use diagnostic.
> 
> Bug: webrtc:8311
> Change-Id: I00be03392cc7ee005101427ea7dc701621ccea68
> Reviewed-on: https://webrtc-review.googlesource.com/c/103320
> Commit-Queue: Yves Gerey <yvesg@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25013}

TBR=phoglund@google.com,phoglund@webrtc.org,yvesg@webrtc.org

Change-Id: I7a6e1cdfef685173b76f234ad598083043dcd9a0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8311
Reviewed-on: https://webrtc-review.googlesource.com/c/104022
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25015}
2018-10-05 13:13:45 +00:00
be8b5348c7 [cleanup] Remove useless includes.
Manual cleanup guided by include-what-you-use diagnostic.

Bug: webrtc:8311
Change-Id: I00be03392cc7ee005101427ea7dc701621ccea68
Reviewed-on: https://webrtc-review.googlesource.com/c/103320
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25013}
2018-10-05 11:51:06 +00:00
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
e0d455b409 Remove runtime_enabled_feature.
This features is not needed anymore, with this CL it is also possible
to address two issues:
- The need to pick a default implementation.
- The need to use -Wno-global-constructors.

Bug: webrtc:9631, webrtc:9693
Change-Id: Id3daf34179fbc8db26969fc701ccbfa7182c6a9b
Reviewed-on: https://webrtc-review.googlesource.com/102543
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24904}
2018-10-01 07:03:25 +00:00
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
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
dc8c981dcb Makes new congestion controller work with rtp sender tests.
Bug: webrtc:9586
Change-Id: Ifa12ef5d85b19395c62fc1001a107c4151927098
Reviewed-on: https://webrtc-review.googlesource.com/102160
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24871}
2018-09-27 15:58:32 +00:00
287cfdecab Removes deprecated functions from legacy SendSideCongestionController.
Bug: webrtc:9586
Change-Id: Id1b7e8a56044d6d4fb9167f03e71310aa6b8c26a
Reviewed-on: https://webrtc-review.googlesource.com/102200
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24870}
2018-09-27 15:42:10 +00:00
068a2e380b Remove usage of runtime_enabled_features in WebRTC.
This is the first step in order to remove runtime_enabled_features
code from WebRTC.

Bug: webrtc:9693
Change-Id: Ic67f770c2166755ea45c782efb3e4184433ac15e
Reviewed-on: https://webrtc-review.googlesource.com/102361
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24868}
2018-09-27 14:32:20 +00:00
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
d5fe67f958 Don't reset initial constraints in congestion controller.
This avoids crashing if an application resets the starting bitrate
before adding streams to the call.

Bug: webrtc:9586
Change-Id: I8d31aba1f4fee40c67c8930f5a32d17700ccadc3
Reviewed-on: https://webrtc-review.googlesource.com/101680
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24808}
2018-09-24 18:32:06 +00:00
db1285676b Cleanup modules_common_types
Uninline RTPFragmentaion functions
fix RTPFragmentation move constructor and assign operators (was recursive for win)
replace assert with rtc::dchecked_cast
Remove unused includes and dependencies.
Fix other targets that used those includes transitively instead of directly

Bug: None
Change-Id: I647cb1eda107dc7d87d25234095545bc2842fa40
Reviewed-on: https://webrtc-review.googlesource.com/100500
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24759}
2018-09-18 08:08:33 +00:00
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
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
c003a1f067 Fix no_global_constructors in congestion_controller/pcc.
Bug: webrtc:9693
Change-Id: I7d654656b4f350c120d25dcc0f66541f47ccc919
Reviewed-on: https://webrtc-review.googlesource.com/98582
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24609}
2018-09-06 16:18:19 +00:00
59dd972e37 Fix no_global_constructors in congestion_controller/bbr.
Bug: webrtc:9693
Change-Id: I47eb1b27adb0fd40e7955e477fa31cdc462891cd
Reviewed-on: https://webrtc-review.googlesource.com/98581
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24608}
2018-09-06 16:16:09 +00:00
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
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
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
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
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
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
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
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
8fdcac3f06 Remove clang:find_bad_constructs suppression from call:call.
This CL removes //build/config/clang:find_bad_constructs from the
suppressed_configs list, which means that clang:find_bad_constructs
is now enabled on these translation units.

Bug: webrtc:9251, webrtc:163
Change-Id: I74cb86c29cebb69dd22083718f1446f18f705cd4
Reviewed-on: https://webrtc-review.googlesource.com/95883
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24483}
2018-08-29 11:57:00 +00:00
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
4932aa185c Avoids posting tasks in congestion controller.
This CL makes calls to send side congestion controller that originates
from the task queue execute directly rather than posting a task. This
ensures that side effects are applied by the time the call returns.

This reduces the risk that the task queue version of the congestion
controller introduces races that does not exist in the process thread
based version.

Bug: webrtc:9586
Change-Id: I82de032dc971c791a0f86d20ccbd47cbb09eba4b
Reviewed-on: https://webrtc-review.googlesource.com/85360
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24382}
2018-08-22 09:47:02 +00:00
ea9249ed15 Network & bitrate controllers are added for PCC.
Network controller is an implementation of the
NetworkControllerInterface which is a part of congestion controller API.
Bitrate controller computes rate update each iteration (see
https://www.usenix.org/system/files/conference/nsdi18/nsdi18-dong.pdf).

Bug: webrtc:9434
Change-Id: I48d3d9e1c713985ef9ebe28dc1f1285757588c69
Reviewed-on: https://webrtc-review.googlesource.com/87222
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24376}
2018-08-22 08:08:12 +00:00
ddbbf4601b Adds utility function for PCC.
Bug: webrtc:9434
Change-Id: I840f39afdff1851d939005f82e64b23927bf455e
Reviewed-on: https://webrtc-review.googlesource.com/87146
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24369}
2018-08-21 21:28:00 +00:00