Commit graph

59 commits

Author SHA1 Message Date
Piotr (Peter) Slatala
c39f462b2d Move RtcEventProbeClusterCreated to the network controller.
Originally RtcEventProbeClusterCreated was logged in bitrate prober. This means that anyone who was using GoogCcNetworkControl wasn't logging it, and the NetworkControl wasn't self-contained.
This changes moves the responsibility for logging ProbeClusterCreated to ProbeController (where the probe is created), it also moves the responsibility for assigning probe ids to the probe controller.

Bug: None
Change-Id: If0433cc6d311b5483ea3980749b03ddbcd2bf041
Reviewed-on: https://webrtc-review.googlesource.com/c/122927
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26713}
2019-02-15 16:42:47 +00:00
Sebastian Jansson
aa01f27667 Removes all const Clock*.
This prepares for making the Clock interface fully mutable.

Calls to the time functions in Clock can have side effects in some
circumstances. It's also questionable if it's a good idea to allow
repeated calls to a const method return different values without
any changed to the class instance.

Bug: webrtc:9883
Change-Id: I96fb9230705f7c80a4c0702132fd9dc73899fc5e
Reviewed-on: https://webrtc-review.googlesource.com/c/120347
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26467}
2019-01-30 13:03:37 +00:00
Sebastian Jansson
79f0d4d0c7 Enables feature to account for unacknowledged data.
By enabling this trial, we can also remove reporting of packet
feedback status from send streams that was used before.

Bug: webrtc:9718
Change-Id: I3e7c4656b0ac6592a834617e044f23a072454181
Reviewed-on: https://webrtc-review.googlesource.com/c/118281
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26363}
2019-01-23 10:00:52 +00:00
Erik Språng
7121564e97 Move congestion window field trial parsing to new class.
This cl is part of work to move several experiments into a joint
experiment group. Most of them vill be ralted to video, hence the name.

Bug: webrtc:10223
Change-Id: I8767c43abb6aa910ab51710eeb908e0f9df1e296
Reviewed-on: https://webrtc-review.googlesource.com/c/118361
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26346}
2019-01-21 16:39:42 +00:00
Sebastian Jansson
95edb037a4 Adds WebRtcKeyValueConfig interface
The WebRtcKeyValueConfig interface allows providing custom key value
configurations that changes per instance of GoogCcNetworkController.

Bug: webrtc:10009
Change-Id: I520fff030d1c3c755455ec8f67896fe8a6b4d970
Reviewed-on: https://webrtc-review.googlesource.com/c/116989
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26312}
2019-01-18 08:45:08 +00:00
Steve Anton
10542f21c8 (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries
Mechanically generated by running this command:

tools_webrtc/do-renames.sh update all-renames.txt && git cl format

Then manually updating:

tools_webrtc/sanitizers/tsan_suppressions_webrtc.cc

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I54824cd91dada8fc3ee3d098f971bc319d477833
Reviewed-on: https://webrtc-review.googlesource.com/c/115653
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26226}
2019-01-11 17:11:39 +00:00
Erik Språng
791d43c4b1 Add ability to set max probing bitrate in SendSideCongestionController.
While this class is deprecated, it's needed as a stop-gap solution.
Other methods to configure the max probe rate all effect the current
estimate and/or trigger new probes to be sent, and we need a way to
configure the max without affecting other behavior.

Bug: webrtc:10070
Change-Id: I2b0ba2fef42d0bab6e5ea7f7c921681557802b4b
Reviewed-on: https://webrtc-review.googlesource.com/c/114880
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26162}
2019-01-08 16:11:53 +00:00
Erik Språng
b3564c1cb2 Back off relative to current estimate rather than ack rate when in ALR.
If we're in ALR, the acked rate is going to be significantly lower than
the current estimate for the link capacity. If we need to back off in
this situation (usually caused by latency spikes), this CL makes us back
off relative to current estimate if. We then immediately send a new
probe just in case the network did actually change.

All of this is behind experiment flags for now.

Bug: webrtc:10144
Change-Id: I062a259c36417eea2211d44592ef7fc979aa22b7
Reviewed-on: https://webrtc-review.googlesource.com/c/113880
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26045}
2018-12-18 12:33:08 +00:00
Sebastian Jansson
7d92de69fe Deprecating legacy SendSideCongestionController.
For somewhat similar funtionality, GoogCcNetworkController can
be used via GoogCcNetworkControllerFactory.

Bug: webrtc:9586
Change-Id: I298050184513f50c1b9ef5c21b8c9b7a6ca46fd5
Reviewed-on: https://webrtc-review.googlesource.com/c/114543
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26040}
2018-12-18 10:22:30 +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
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
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
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
Sebastian Jansson
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
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
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
Sebastian Jansson
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
Mirko Bonadei
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
Sebastian Jansson
da2ec40590 Always sends probes when they are generated.
This changes makes the usage of the new probe controller reflect how the
old probe controller was used. That is probes are now sent as soon as
they are generated. This is to avoid regressions in performance doe to
the timing of the sent probes.

Bug: chromium:868776
Change-Id: I722585689258c9b01e8f1dc47249b284a05a2793
Reviewed-on: https://webrtc-review.googlesource.com/91441
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24175}
2018-08-02 15:36:12 +00:00
Ying Wang
e1d7b23915 Implement congestion window direct pushback to encoders. (Without TaskQueue)
Bug: None
Change-Id: I3c6da916ce5f4a32ff47bfb0894b00f11fbf7823
Reviewed-on: https://webrtc-review.googlesource.com/86605
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24008}
2018-07-17 14:26:05 +00:00
Sebastian Jansson
b2ecc3dc49 Removes old probe controller.
This removes the old version of Probe Controller. The new controller is
slightly different, therefore the legacy SendSideCongestionController is
changed to accommodate the new function.

Most notably, the functionality is changed so that probes are now sent
only from the OnProcess call and not immediately on changing a
parameter.

The lock previously owned and used by ProbeController is moved to SendSideCongestionController. This should not change any
behavior.

Bug: webrtc:8415
Change-Id: I3c69ddeb04aeeae1234a2a5e116fb677f36b4ae4
Reviewed-on: https://webrtc-review.googlesource.com/86541
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23973}
2018-07-13 16:13:26 +00:00
Karl Wiberg
918f50c5d1 Use absl::make_unique and absl::WrapUnique directly
Instead of going through our wrappers in ptr_util.h.

This CL was generated by the following script:

  git grep -l ptr_util | xargs perl -pi -e 's,#include "rtc_base/ptr_util.h",#include "absl/memory/memory.h",'
  git grep -l MakeUnique | xargs perl -pi -e 's,\b(rtc::)?MakeUnique\b,absl::make_unique,g'
  git grep -l WrapUnique | xargs perl -pi -e 's,\b(rtc::)?WrapUnique\b,absl::WrapUnique,g'
  git checkout -- rtc_base/ptr_util{.h,_unittest.cc}
  git cl format

Followed by manually adding dependencies on
//third_party/abseil-cpp/absl/memory until `gn check` stopped
complaining.

Bug: webrtc:9473
Change-Id: I89ccd363f070479b8c431eb2c3d404a46eaacc1c
Reviewed-on: https://webrtc-review.googlesource.com/86600
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23850}
2018-07-05 10:59:49 +00:00
Sebastian Jansson
04b18cb365 Removes redundant delay based bwe.
This removes the legacy DelayBasedBwe to reduce code redundancy and
avoid the risk of applying changes on only one version.

Bug: webrtc:8415
Change-Id: I88aba03adbb77ee0ff0a97a8b3be6ddf028af48a
Reviewed-on: https://webrtc-review.googlesource.com/85364
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23798}
2018-07-02 09:11:33 +00:00
Sebastian Jansson
f9f49a323c Removes redundant AlrDetector.
This replaces the old AlrDetector used by the pacer with the one in
GoogCC. This reduces the risk of accidentally changing only one version.

Note that the pacer instance will be removed when moving over to the
task queue based send side congestion controller.

Bug: webrtc:8415
Change-Id: Id4b2000ee5a04b94565092c29a84572a7750d2f5
Reviewed-on: https://webrtc-review.googlesource.com/85363
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23791}
2018-06-29 16:28:04 +00:00
Alex Narest
bcf91808a2 Allows audio bitrate allocation in video calls without enabling TWCC (Transport Wide Congestion Control as defined at https://tools.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01.html) for audio stream.
This will allow experimenting with audio bitrate allocation in video calls without increasing transport overhead.

Bug: webrtc:8243
Change-Id: If961780921d53bdce95b68c26641df6875509c1f
Reviewed-on: https://webrtc-review.googlesource.com/84501
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23755}
2018-06-27 10:33:40 +00:00
Yves Gerey
665174fdbb Reformat the WebRTC code base
Running clang-format with chromium's style guide.

The goal is n-fold:
 * providing consistency and readability (that's what code guidelines are for)
 * preventing noise with presubmit checks and git cl format
 * building on the previous point: making it easier to automatically fix format issues
 * you name it

Please consider using git-hyper-blame to ignore this commit.

Bug: webrtc:9340
Change-Id: I694567c4cdf8cee2860958cfe82bfaf25848bb87
Reviewed-on: https://webrtc-review.googlesource.com/81185
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23660}
2018-06-19 14:00:39 +00:00
Danil Chapovalov
0040b66ad3 Replace rtc::Optional with absl::optional
This is a no-op change because rtc::Optional is an alias to absl::optional

This CL generated by running script from modules with parameters
'pacing video_coding congestion_controller remote_bitrate_estimator':

find $@ -type f \( -name \*.h -o -name \*.cc \) \
-exec sed -i 's|rtc::Optional|absl::optional|g' {} \+ \
-exec sed -i 's|rtc::nullopt|absl::nullopt|g' {} \+ \
-exec sed -i 's|#include "api/optional.h"|#include "absl/types/optional.h"|' {} \+

find $@ -type f -name BUILD.gn \
-exec sed -r -i 's|"(../)*api:optional"|"//third_party/abseil-cpp/absl/types:optional"|' {} \+;

git cl format

Bug: webrtc:9078
Change-Id: I8ea501d7f1ee36e8d8cd3ed37e6b763c7fe29118
Reviewed-on: https://webrtc-review.googlesource.com/83900
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23640}
2018-06-18 10:24:48 +00:00
Sebastian Jansson
172fd8536e Replaces redundant congestion controller components
This CL replaces components in the congestion controller module
that are identical to equivalent components in the rtp and goog_cc
subfolder. Some redundant components are left as they were not
trivial to replace.

Bug: webrtc:8415
Change-Id: I86a1f164d7b100b8ec8ba7dbc1c9bda2128a4f37
Reviewed-on: https://webrtc-review.googlesource.com/78521
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23384}
2018-05-24 13:35:31 +00:00
Per Kjellander
dd3eae5f94 Revert "Configure and use max bitrate to limit the AIMD controller estimates."
This reverts commit 18d7c7ea7e.

Reason for revert: 
This seems to cause the auto roller to Chrome to fail on Linux and Mac on the browsertest
WebRtcSimulcastBrowserTest.TestVgaReturnsTwoSimulcastStreams

https://chromium-review.googlesource.com/c/chromium/src/+/1064736


Original change's description:
> Configure and use max bitrate to limit the AIMD controller estimates.
> 
> Bug: webrtc:9275
> Change-Id: I9625cd473e1cb198abe08020f5462f1bd64bf2a5
> Reviewed-on: https://webrtc-review.googlesource.com/77081
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23287}

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

Change-Id: I8ed827ab6b2f7d2b70b9889e5a88701bfb974d35
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9275
Reviewed-on: https://webrtc-review.googlesource.com/77660
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23291}
2018-05-18 07:12:26 +00:00
Bjorn Terelius
18d7c7ea7e Configure and use max bitrate to limit the AIMD controller estimates.
Bug: webrtc:9275
Change-Id: I9625cd473e1cb198abe08020f5462f1bd64bf2a5
Reviewed-on: https://webrtc-review.googlesource.com/77081
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23287}
2018-05-17 16:07:42 +00:00
Mirko Bonadei
e32bb50855 Adding missing #include in send_side_congestion_controller.
Not including <iterator> creates problems on some build systems because
std::back_inserter is defined there.

Bug: None
Change-Id: I27180f72dd327e3a0caab35d3a33907f1e0c4296
Reviewed-on: https://webrtc-review.googlesource.com/69323
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22825}
2018-04-11 14:33:27 +00:00
Sebastian Jansson
1d430f727d Interface for packet feedback availability in SSCC
This CL adds a function to the SendSideCongestionController interface
for reporting per packet feedback availability.

This is part of a series of CLs tracking the transport feedback status
of the streams known to BitrateAllocator and reporting the status to
the congestion controller.

Bug: webrtc:8415
Change-Id: Ifcb6837bb80c5fcfc1f12f4f93ec38cc2903118f
Reviewed-on: https://webrtc-review.googlesource.com/63205
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22565}
2018-03-22 13:38:49 +00:00
Sebastian Jansson
68ee4653ef Moving SetPacingFactor and allocation limits to SSCC.
This CL adds methods to the SendSideCongestionController (SSCC)
interface for configuring pacing factor and allocation based data rate limits.
This means that old SSCC implement the same interface as the new, task
queue based SSCC. This also allows merging the max total allocated
bit rate into SetAllocatedSendBitrateLimits.

This is done in preparation for an upcoming CL where the SSCC version
is controlled by a field trial.

Bug: webrtc:8415
Change-Id: I4d5446a3bedd5b0c725dbd009fb75815fd661eff
Reviewed-on: https://webrtc-review.googlesource.com/61320
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22408}
2018-03-13 16:58:21 +00:00
philipel
db4fa4b944 Propagating total_bitrate_bps from BitrateAllocator to ProbeController, part 3.
Trigger on total bitrate change.

Bug: webrtc:8955
Change-Id: I2373a1b7f139c7ea748a9641593e714d6895c8f6
Reviewed-on: https://webrtc-review.googlesource.com/59323
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22323}
2018-03-07 10:31:35 +00:00
Sebastian Jansson
98e0111ea5 Implementing interface with new SSCC
Makes the new task queue based congestion controller implement the
SendSideCongestionControllerInterface.

Bug: webrtc:8415
Change-Id: I3dfe11c2eb200bc8d85c83edf78d7fdd0129bbff
Reviewed-on: https://webrtc-review.googlesource.com/56781
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22235}
2018-02-28 17:30:29 +00:00
Sebastian Jansson
3c24ea8340 Removed SetTransportOverhead in transport controller.
SetTransportOverhead was used by send streams to signal the packet
overhead that they received from Call. However, call receives the value
from OnNetworkRouteChanged in WebRtcVideoChannel and
WebRtcVoiceMediaChannel which is already propagated to
RtpTransportControllerSend. By skipping the round trip, the interface on
the rtp transport controller can be reduced.

Bug: None
Change-Id: I759b1207aab214bbc2b993106f6ff7cc24e177f7
Reviewed-on: https://webrtc-review.googlesource.com/57182
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22226}
2018-02-28 12:36:16 +00:00
Sebastian Jansson
ea86bb74fc Revert "Revert "Revert "Reland "Moved congestion controller to task queue.""""
This reverts commit 65792c5a5c.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Revert "Reland "Moved congestion controller to task queue."""
> 
> This reverts commit 4e849f6925.
> 
> Reason for revert: <INSERT REASONING HERE>
> 
> Original change's description:
> > Revert "Reland "Moved congestion controller to task queue.""
> > 
> > This reverts commit 57daeb7ac7.
> > 
> > Reason for revert: Cause increased congestion and deadlocks in downstream project
> > 
> > Original change's description:
> > > Reland "Moved congestion controller to task queue."
> > > 
> > > This is a reland of 0cbcba7ea0.
> > > 
> > > Original change's description:
> > > > Moved congestion controller to task queue.
> > > > 
> > > > The goal of this work is to make it easier to experiment with the
> > > > bandwidth estimation implementation. For this reason network control
> > > > functionality is moved from SendSideCongestionController(SSCC),
> > > > PacedSender and BitrateController to the newly created
> > > > GoogCcNetworkController which implements the newly created
> > > > NetworkControllerInterface. This allows the implementation to be
> > > > replaced at runtime in the future.
> > > > 
> > > > This is the first part of a split of a larger CL, see:
> > > > https://webrtc-review.googlesource.com/c/src/+/39788/8
> > > > For further explanations.
> > > > 
> > > > Bug: webrtc:8415
> > > > Change-Id: I770189c04cc31b313bd4e57821acff55fbcb1ad3
> > > > Reviewed-on: https://webrtc-review.googlesource.com/43840
> > > > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > > > Reviewed-by: Björn Terelius <terelius@webrtc.org>
> > > > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#21868}
> > > 
> > > Bug: webrtc:8415
> > > Change-Id: I1d1756a30deed5b421b1c91c1918a13b6bb455da
> > > Reviewed-on: https://webrtc-review.googlesource.com/48000
> > > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#21899}
> > 
> > TBR=terelius@webrtc.org,stefan@webrtc.org,srte@webrtc.org
> > 
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> > 
> > Bug: webrtc:8415
> > Change-Id: Ida8074dcac2cc28b3629228eb22846d8a8e81b83
> > Reviewed-on: https://webrtc-review.googlesource.com/52980
> > Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> > Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#22017}
> 
> TBR=danilchap@webrtc.org,terelius@webrtc.org,stefan@webrtc.org,srte@webrtc.org
> 
> Change-Id: I3393b74370c4f4d0955f50728005b2b925be169b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:8415
> Reviewed-on: https://webrtc-review.googlesource.com/53262
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22023}

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

Change-Id: Id68ad986ee51142b7be3381d0793709b4392fe2c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8415
Reviewed-on: https://webrtc-review.googlesource.com/53360
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22024}
2018-02-14 16:53:49 +00:00
Sebastian Jansson
65792c5a5c Revert "Revert "Reland "Moved congestion controller to task queue."""
This reverts commit 4e849f6925.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Reland "Moved congestion controller to task queue.""
> 
> This reverts commit 57daeb7ac7.
> 
> Reason for revert: Cause increased congestion and deadlocks in downstream project
> 
> Original change's description:
> > Reland "Moved congestion controller to task queue."
> > 
> > This is a reland of 0cbcba7ea0.
> > 
> > Original change's description:
> > > Moved congestion controller to task queue.
> > > 
> > > The goal of this work is to make it easier to experiment with the
> > > bandwidth estimation implementation. For this reason network control
> > > functionality is moved from SendSideCongestionController(SSCC),
> > > PacedSender and BitrateController to the newly created
> > > GoogCcNetworkController which implements the newly created
> > > NetworkControllerInterface. This allows the implementation to be
> > > replaced at runtime in the future.
> > > 
> > > This is the first part of a split of a larger CL, see:
> > > https://webrtc-review.googlesource.com/c/src/+/39788/8
> > > For further explanations.
> > > 
> > > Bug: webrtc:8415
> > > Change-Id: I770189c04cc31b313bd4e57821acff55fbcb1ad3
> > > Reviewed-on: https://webrtc-review.googlesource.com/43840
> > > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > > Reviewed-by: Björn Terelius <terelius@webrtc.org>
> > > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#21868}
> > 
> > Bug: webrtc:8415
> > Change-Id: I1d1756a30deed5b421b1c91c1918a13b6bb455da
> > Reviewed-on: https://webrtc-review.googlesource.com/48000
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#21899}
> 
> TBR=terelius@webrtc.org,stefan@webrtc.org,srte@webrtc.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: webrtc:8415
> Change-Id: Ida8074dcac2cc28b3629228eb22846d8a8e81b83
> Reviewed-on: https://webrtc-review.googlesource.com/52980
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22017}

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

Change-Id: I3393b74370c4f4d0955f50728005b2b925be169b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8415
Reviewed-on: https://webrtc-review.googlesource.com/53262
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22023}
2018-02-14 16:50:30 +00:00
Danil Chapovalov
4e849f6925 Revert "Reland "Moved congestion controller to task queue.""
This reverts commit 57daeb7ac7.

Reason for revert: Cause increased congestion and deadlocks in downstream project

Original change's description:
> Reland "Moved congestion controller to task queue."
> 
> This is a reland of 0cbcba7ea0.
> 
> Original change's description:
> > Moved congestion controller to task queue.
> > 
> > The goal of this work is to make it easier to experiment with the
> > bandwidth estimation implementation. For this reason network control
> > functionality is moved from SendSideCongestionController(SSCC),
> > PacedSender and BitrateController to the newly created
> > GoogCcNetworkController which implements the newly created
> > NetworkControllerInterface. This allows the implementation to be
> > replaced at runtime in the future.
> > 
> > This is the first part of a split of a larger CL, see:
> > https://webrtc-review.googlesource.com/c/src/+/39788/8
> > For further explanations.
> > 
> > Bug: webrtc:8415
> > Change-Id: I770189c04cc31b313bd4e57821acff55fbcb1ad3
> > Reviewed-on: https://webrtc-review.googlesource.com/43840
> > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > Reviewed-by: Björn Terelius <terelius@webrtc.org>
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#21868}
> 
> Bug: webrtc:8415
> Change-Id: I1d1756a30deed5b421b1c91c1918a13b6bb455da
> Reviewed-on: https://webrtc-review.googlesource.com/48000
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21899}

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:8415
Change-Id: Ida8074dcac2cc28b3629228eb22846d8a8e81b83
Reviewed-on: https://webrtc-review.googlesource.com/52980
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22017}
2018-02-14 11:38:43 +00:00
Danil Chapovalov
bda5068fae Revert "Moved congestion controller to goog_cc folder."
This reverts commit e6cefdf9c5.

Reason for revert: conflicts with reverting https://webrtc-review.googlesource.com/c/src/+/52980

Original change's description:
> Moved congestion controller to goog_cc folder.
> 
> Bug: webrtc:8415
> Change-Id: I2070da0cacf1dbfc4b6a89285af3e68fd03497ab
> Reviewed-on: https://webrtc-review.googlesource.com/43841
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21928}

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:8415
Change-Id: If8965e1e745e57694192b9ca2a69503c722658d9
Reviewed-on: https://webrtc-review.googlesource.com/53020
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22012}
2018-02-14 10:09:44 +00:00
Sebastian Jansson
e6cefdf9c5 Moved congestion controller to goog_cc folder.
Bug: webrtc:8415
Change-Id: I2070da0cacf1dbfc4b6a89285af3e68fd03497ab
Reviewed-on: https://webrtc-review.googlesource.com/43841
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21928}
2018-02-07 09:50:48 +00:00
Sebastian Jansson
57daeb7ac7 Reland "Moved congestion controller to task queue."
This is a reland of 0cbcba7ea0.

Original change's description:
> Moved congestion controller to task queue.
> 
> The goal of this work is to make it easier to experiment with the
> bandwidth estimation implementation. For this reason network control
> functionality is moved from SendSideCongestionController(SSCC),
> PacedSender and BitrateController to the newly created
> GoogCcNetworkController which implements the newly created
> NetworkControllerInterface. This allows the implementation to be
> replaced at runtime in the future.
> 
> This is the first part of a split of a larger CL, see:
> https://webrtc-review.googlesource.com/c/src/+/39788/8
> For further explanations.
> 
> Bug: webrtc:8415
> Change-Id: I770189c04cc31b313bd4e57821acff55fbcb1ad3
> Reviewed-on: https://webrtc-review.googlesource.com/43840
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21868}

Bug: webrtc:8415
Change-Id: I1d1756a30deed5b421b1c91c1918a13b6bb455da
Reviewed-on: https://webrtc-review.googlesource.com/48000
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21899}
2018-02-06 08:38:49 +00:00
Sebastian Jansson
5a503b05e1 Revert "Moved congestion controller to task queue."
This reverts commit 0cbcba7ea0.

Reason for revert: Major regressions on perf bots.

Original change's description:
> Moved congestion controller to task queue.
> 
> The goal of this work is to make it easier to experiment with the
> bandwidth estimation implementation. For this reason network control
> functionality is moved from SendSideCongestionController(SSCC),
> PacedSender and BitrateController to the newly created
> GoogCcNetworkController which implements the newly created
> NetworkControllerInterface. This allows the implementation to be
> replaced at runtime in the future.
> 
> This is the first part of a split of a larger CL, see:
> https://webrtc-review.googlesource.com/c/src/+/39788/8
> For further explanations.
> 
> Bug: webrtc:8415
> Change-Id: I770189c04cc31b313bd4e57821acff55fbcb1ad3
> Reviewed-on: https://webrtc-review.googlesource.com/43840
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21868}

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

Change-Id: Ia8a273eb9e92b7d0d960c49658c228208170962d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8415
Reviewed-on: https://webrtc-review.googlesource.com/47560
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21877}
2018-02-02 16:55:17 +00:00
Sebastian Jansson
0cbcba7ea0 Moved congestion controller to task queue.
The goal of this work is to make it easier to experiment with the
bandwidth estimation implementation. For this reason network control
functionality is moved from SendSideCongestionController(SSCC),
PacedSender and BitrateController to the newly created
GoogCcNetworkController which implements the newly created
NetworkControllerInterface. This allows the implementation to be
replaced at runtime in the future.

This is the first part of a split of a larger CL, see:
https://webrtc-review.googlesource.com/c/src/+/39788/8
For further explanations.

Bug: webrtc:8415
Change-Id: I770189c04cc31b313bd4e57821acff55fbcb1ad3
Reviewed-on: https://webrtc-review.googlesource.com/43840
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21868}
2018-02-02 12:55:47 +00:00
Stefan Holmer
4dbc7e4f2b Move transport feedback adapter into its own target.
Bug: None
Change-Id: I51833768a464896fd7b9306406ddbcc7e172b9cf
Reviewed-on: https://webrtc-review.googlesource.com/43862
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21777}
2018-01-26 15:10:02 +00:00
Piotr Tworek
5e4833cc90 Add missing stdio.h header in files using scanf/sscanf function.
Various files in webrtc codebase use scanf/sscanf function without
including stdio.h header file which is supposed to define it. This
somehow works when using glibc, but fails with uClibc.

Bug: webrtc:8641
Change-Id: Ie4ae17af32b32ed8cea567166b6b0e5193966995
Reviewed-on: https://webrtc-review.googlesource.com/32261
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21775}
2018-01-26 13:15:52 +00:00
Ilya Nikolaevskiy
2ffe3e80db Reland Use runtime enabled features API to enable dual stream mode
This is an unchanged patch after dependency fixes in downstream projects are implemented.

Original patch was reviewed here:
https://webrtc-review.googlesource.com/c/src/+/39008

TBR=phoglund@webrtc.org,ilnik@webrtc.org,nisse@webrtc.org,philipel@webrtc.org,lliuu@webrtc.org

Change-Id: I648bbf63d34282a48cabc854615005ec65b28cb3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8287
Reviewed-on: https://webrtc-review.googlesource.com/40420
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21674}
2018-01-18 12:22:49 +00:00
Lu Liu
c1094eb81d Revert "Use runtime enabled features API to enable dual stream mode"
This reverts commit 6f011dfdd4.

Reason for revert: Broke internal builds

Original change's description:
> Use runtime enabled features API to enable dual stream mode
> 
> Bug: webrtc:8287
> Change-Id: I1a366d959a8b7f2a704baa7ea8ace64c1c398d52
> Reviewed-on: https://webrtc-review.googlesource.com/39008
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21661}

TBR=phoglund@webrtc.org,ilnik@webrtc.org,nisse@webrtc.org,philipel@webrtc.org

Change-Id: I0af406066231b67dd0b8eb6808bdc3e3f77560b6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8287
Reviewed-on: https://webrtc-review.googlesource.com/40321
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21663}
2018-01-17 19:45:48 +00:00
Ilya Nikolaevskiy
6f011dfdd4 Use runtime enabled features API to enable dual stream mode
Bug: webrtc:8287
Change-Id: I1a366d959a8b7f2a704baa7ea8ace64c1c398d52
Reviewed-on: https://webrtc-review.googlesource.com/39008
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21661}
2018-01-17 16:29:37 +00:00
Oleh Prypin
a40f82438a Explicitly specify is_clang=false for Win MSVC bots
Otherwise they're doing exactly the same as Clang bots.

Also fix 64-bit-specific warnings that have sneaked in because we have been testing MSVC build only on 32-bit for a while.

TBR=ehmaldonado@webrtc.org

Bug: webrtc:8664
Change-Id: I875e568d75aa550726f54650c283b288d3f52012
Reviewed-on: https://webrtc-review.googlesource.com/35160
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21414}
2017-12-21 13:22:40 +00:00