88 Commits

Author SHA1 Message Date
Per K
70b65bc375 Remove deprecated ReceiveSideCongestionController ctor
Bug: webrtc:4222080842220808
Change-Id: I96dec60d98eaea4b96e081ee5a6340649836565d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376340
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43850}
2025-02-05 05:28:11 -08:00
Per K
eb688d6e80 Remove dependency to NetworkStateEstimator from TransportSequenceNumberFeedbackGenerator
NetworkStateEstimator is not used by WebRTC from receive side.

ReceiveSidesCongestionController::SetTransportOverhead is not needed either since NetworkStateEstimator is removed.
Note, CongestionControlFeedbackGenerator is used with RFC 8888 only and feedback frequency will be refactored in later cl.


Bug: webrtc:42220808
Change-Id: I08980aa19117e1de7a9b7896d05d07715dd9f962
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/375460
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43821}
2025-01-29 08:43:47 -08:00
Harald Alvestrand
0c6d31919e Enable RFC 8888 feedback if negotiated
This will turn on RFC 8888 feedback messages if "ack ccfb" is negotiated.

This should eliminate the need for the "force" flag in the field trial.

Bug: webrtc:42225697
Change-Id: Iec7a894c244a417a8499200861550a33f89966a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/367400
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43398}
2024-11-14 06:27:45 +00:00
Per K
79492bfe99 Add functions to send feedback according to RFC 8888 in ReceiveSideCongestionController.
With this cl, sending can be forced with field trial "WebRTC-RFC8888CongestionControlFeedback/force_send:true/"
In the future, ReceiveSideCongestionController::EnablSendCongestionControlFeedbackAccordingToRfc8888 if RFC 8888 has been negotiated.

Bug: webrtc:42225697
Change-Id: Ib09066aa89ca7b3fffc551da541090c69ab8d75f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/352720
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42413}
2024-05-30 14:20:39 +00:00
Per K
c78f25b7f0 Rename RemoteEstimatorProxy to TransportSequenceNumberFeedbackGenenerator
This is done to better reflect the responsibility of the class.
The implementation implement a new interface FeedbackGeneratorInterface. The purpose of the interface is to allow a new implementation that supports RFC 8888.

Bug: webrtc:42225697
Change-Id: Id087dd7422abbcd6016693c076a65f4c4efd5712
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/351280
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42366}
2024-05-22 15:31:19 +00:00
Danil Chapovalov
b84097e139 Delete deprecated ReceiveSideCongestionController constructor
This makes Environment and thus field trials a required parameter, thus
RemoteBitrateEstimators member no longer need to fallback to the global field trial string.

Bug: webrtc:42220378
Change-Id: Ieb6ff442d5fde5fa9715573c758a7e078f0ceea4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349922
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42314}
2024-05-15 14:32:01 +00:00
Danil Chapovalov
2ee83c1784 Provide Environment for ReceiveSideConfestionController construction
Environment includes propagated field trials that can be later passed to
RemoteBitrateEstimators member, and would allow not to rely on the global field trial string

Bug: webrtc:42220378
Change-Id: Icf75a433c20352b2c22829c2148c92f69a2517aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349645
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42242}
2024-05-07 08:02:36 +00:00
Danil Chapovalov
deb25d2f45 Cleanup ReceiveSideCongestionController api from OnReceivedPacket taking legacy RTPHeader
Bug: webrtc:14859
Change-Id: I595859c021c2cd0adcf60af0f560e30010bae7a5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300261
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39770}
2023-04-05 17:07:27 +00:00
Danil Chapovalov
1391f821fa Cleanup ReceiveSideCongestionController internal dependency on RTPHeader
Bug: webrtc:14859
Change-Id: Ic7d1c904cfd0a68b3ec45e5cee6eace95667b239
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/296824
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39532}
2023-03-10 14:50:45 +00:00
Per K
dad91a69bf Send periodic TransportFeedback based on extension version
Today, behaviour is decided based on if transport sequence number v2 is
in the SDP answer. But it might be better to decide based on received
packets since it is valid to negotiate both extensions.

Another bonus With this solution is that Call does not need to know
about receive header exensions.
This is an alternative to https://webrtc-review.googlesource.com/c/src/+/291337

Bug: webrtc:7135
Change-Id: Ib75474127d6e2e2029557b8bb2528eaac66979f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291525
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39226}
2023-01-30 12:59:54 +00:00
Danil Chapovalov
c19ec96bd7 Delete WebRTC-Bwe-TransportWideFeedbackIntervals as unused
Bug: webrtc:14179
Change-Id: Id8ab9467293a2ea53a411d217024c64e9f48da85
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/285640
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38779}
2022-11-30 17:14:35 +00:00
Danil Chapovalov
8743db9865 Cleanup congestion controller min bitrate
Replace helper functions with the constant

Remove option to set min bitrate in RemoteBitrateEstimator as unused:
ReceivedSideCongestionController is the only user of the
RemoteBitrateEstimator interface, and it always sets the same value
right after construction that RemoteBitreateEstimators already use.

Bug: None
Change-Id: If179fdd72b1ded6ad1fd0a6dfffc97b302153322
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269383
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37613}
2022-07-25 17:31:28 +00:00
Danil Chapovalov
56257afe10 Cleanup ReceiveSideCongestionController: remove inner wrapper helper
Bug: None
Change-Id: Iff388a56176d90e300e0c12b34414ee21fa26bc8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267406
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37429}
2022-07-05 08:28:55 +00:00
Danil Chapovalov
74680c0234 Cleanup RemoteBitrateEstimate::LatestEstimate function
Return the bitrate estimate as DataRate type
Remove list of affected ssrcs as unused

Bug: None
Change-Id: Ie31dce591d861624736d834194f90eb6c93f70f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267280
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37397}
2022-07-01 13:05:05 +00:00
Danil Chapovalov
2bc41bc980 Detach RemoteBitrateEstimator interface from Module
Bug: webrtc:7219
Change-Id: I8302c5044582d73b0918013a0df89b9390788728
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267140
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37393}
2022-07-01 10:17:40 +00:00
Danil Chapovalov
3a08d2a42d Reland "Detach RemoteEstimatorProxy from RemoteBitrateEstimator interface"
This reverts commit 6769e95bbc0e4f29c482ee1356b3e250df1fde3b.

Reason for revert: downstream code adjusted

Original change's description:
> Revert "Detach RemoteEstimatorProxy from RemoteBitrateEstimator interface"
>
> This reverts commit 08c7e7589218da1f26e9621e703dd790b4e7e7d7.
>
> Reason for revert: breaks downstream tests
>
> Original change's description:
> > Detach RemoteEstimatorProxy from RemoteBitrateEstimator interface
> >
> > Bug: None
> > Change-Id: I47b7c83320b0c7327c0d2ee59f7a0a30704cd331
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266540
> > Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> > Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#37354}
>
> Bug: None
> Change-Id: Ia355be085890856141fc943432f6e2edef1c0900
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267065
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37361}

Bug: None
Change-Id: Ifaf8ff84a37a768b388b1f79c8c7829390d1905e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267104
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37367}
2022-06-29 09:38:16 +00:00
Danil Chapovalov
6769e95bbc Revert "Detach RemoteEstimatorProxy from RemoteBitrateEstimator interface"
This reverts commit 08c7e7589218da1f26e9621e703dd790b4e7e7d7.

Reason for revert: breaks downstream tests

Original change's description:
> Detach RemoteEstimatorProxy from RemoteBitrateEstimator interface
>
> Bug: None
> Change-Id: I47b7c83320b0c7327c0d2ee59f7a0a30704cd331
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266540
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37354}

Bug: None
Change-Id: Ia355be085890856141fc943432f6e2edef1c0900
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267065
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37361}
2022-06-28 17:07:44 +00:00
Danil Chapovalov
08c7e75892 Detach RemoteEstimatorProxy from RemoteBitrateEstimator interface
Bug: None
Change-Id: I47b7c83320b0c7327c0d2ee59f7a0a30704cd331
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266540
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37354}
2022-06-28 11:31:23 +00:00
Danil Chapovalov
0ed3a2b6cb Avoid exposing RemoteBitrateEstimator in ReceiveSideCongestionController
Making RemoteBitrateEstimator to be ReceiveSideCC implementation detail allows code to be cleaner.

Bug: None
Change-Id: I1d3327c44b364c6c2a1005391cf1dc468e0cc8ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266482
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37305}
2022-06-22 13:41:21 +00:00
Danil Chapovalov
675dfb4a1f Move receive side congestion controller periodic task to worker thread
This way call no longer needs dedicated process thread

Bug: webrtc:7219
Change-Id: I8ab677b1e6b909eeb726aefed5e6d10ce4bc43b7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265921
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37279}
2022-06-20 16:26:51 +00:00
Per Kjellander
f6934c3f7d Add method ReceiveSideCongestionController::SetTransportOverhead
The method can be used to ensure packets reported to NetworkStateEstimator include transport overhead.

Change-Id: I30f0271aac82633893660c61ea59e3b7c2cf9f31
Bug: webrtc:10742
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265405
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37179}
2022-06-10 13:52:34 +00:00
Artem Titov
6f4b4fa18b Use backticks not vertical bars to denote variables in comments for /modules/congestion_controller
Bug: webrtc:12338
Change-Id: Id46786886f13266177dd7fa8f1fb30c097df1373
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227094
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34622}
2021-08-02 11:09:20 +00:00
Per Kjellander
fe2063ebc7 Remove REMB throttling funcionality from PacketRouter
This removes PacketRouter inheritance from  RemoteBitrateObserver and TransportFeedbackSenderInterface.
Call binds methods for sending REMB and transport feedback messages from RemoteCongestionController to PacketRouter.
This is needed until the RTCPTranseiver is used instead of the RTP modules.

Bug: webrtc:12693
Change-Id: I7088de497cd6d1e15c98788ff3e6b0a2c8897ea8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215965
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33993}
2021-05-12 11:24:58 +00:00
Per Kjellander
898f091eeb Replace interfaces for sending RTCP with std::functions in ReceiveSideCongestionController
Logic for throttling how often REMB messages are sent is added to ReceiveSideCongestionController as well as a new method SetMaxDesiredReceiveBitrate. These are based on the logic in PacketRouter. The logic for throttling REMB and setting the max REMB will be removed from PacketRouter in a follow up cl.
The purpose is to eventually decouple PacketRouter from sending RTCP messages when RtcpTransceiver is used.

Bug: webrtc:12693
Change-Id: I9fb5cbcd14bb17d977e76d329a906fc0a9abc276
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215685
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33801}
2021-04-21 13:10:44 +00:00
Niels Möller
de95329daa Delete macros RTC_DISALLOW_ASSIGN and RTC_DISALLOW_IMPLICIT_CONSTRUCTORS
The former was unused, the latter is replaced with the explicit C++11
deletions. The related RTC_DISALLOW_COPY_AND_ASSIGN is left for now,
it is used in a lot more places.

Bug: None
Change-Id: I49503e7f2b9ff43c6285f8695833479bbc18c380
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185500
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32224}
2020-09-29 10:19:20 +00:00
Markus Handell
9c96250dd5 Migrate modules/congestion_controller to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: I284eaebf863e0c63d2aa162a5df56380f9cf4838
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178841
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31659}
2020-07-08 08:35:42 +00:00
Per Kjellander
52f7ae7c89 Make NetworkStateEstimator injectable in RemoteBitrateEstimator
The NetworkStateEstimator is updated on every incoming RTP packet if available.

A rtcp::RemoteEstimate packet is sent every time a rtcp::TransportFeedback packet is sent.

BUG=webrtc:10742

Change-Id: I4cd8e9d85d35faf76aeefd2e26c2a9fe1a62ca3b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152161
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29143}
2019-09-10 18:47:36 +00:00
Sebastian Jansson
4ad51d8b31 Removes SendSideCongestionController.
Bug: webrtc:9586
Change-Id: Id6f3508eb19f277d74c34edfbcaeb8a22320b030
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140286
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28222}
2019-06-11 11:09:24 +00:00
Erik Språng
30a276b5d7 Add RTP sequence number to TransportFeedbackObserver::AddPacket()
With this change, both the normal RTP and the transport-wide sequence
numbers are propagated with with AddPacket() call via a new
RtpPacketSendInfo struct, replacing the previous set of parameters.

The intent with this is that SendTimeHistory can hold a mapping from
transport-wide to rtp sequence numbers, and then via callbacks let the
RTP modules know when packets have been received by the remote end.

Bug: webrtc:8975
Change-Id: I6a24fc6282cbb041393752d39593c2867b242192
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133021
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27708}
2019-04-23 11:02:56 +00:00
Niels Möller
decc07679d Expose send parameters for RemoteEstimatorProxy for field trial.
Bug: None
Change-Id: I14c74f55ed534fff19042423dad63641bd0fa047
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133187
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27662}
2019-04-17 12:45:47 +00:00
Christoffer Rodbro
412dc5f27e Clean-up of unused PacingBufferPushback feature.
Bug: webrtc:8171
Change-Id: I2804d6c87fe8b645e6c65784bbc525050c74a375
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131387
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27517}
2019-04-09 12:07:03 +00:00
Johannes Kron
f59666b3b2 Fix potential bug due to malformed input
A reasonable amount of incoming packets could generate feedback
for millions of packets.

Bug: chromium:949020
Change-Id: I7f3e6b75b683af5b2732c472cc92c6788540486b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131333
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27481}
2019-04-08 11:46:47 +00:00
Niels Möller
9d8eaac4ee Delete unneeded direct includes of common_types.h
And delete corresponding dependencies on :webrtc_common. After this
change, common_types.h is included directly only from code in the
following directories:

api/
api/video/
api/video_codecs/
common_video/libyuv/include/
media/base/
modules/remote_bitrate_estimator/
modules/rtp_rtcp/source/
modules/video_coding/codecs/vp9/

There remains plenty of indirect dependencies on the types declared in
common_types.h, but the fewer direct dependencies should make it
easier to find the proper place for each type.

Bug: webrtc:5876
Change-Id: I93e8f214025ecb613c19fdec2015bd3f96c59aae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130501
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27376}
2019-04-01 07:18:13 +00:00
Johannes Kron
7ff164e6e1 Plumbing of feedback on request setting
Bug: webrtc:10263
Change-Id: I23c09e680d6381598e4172b76025ff84f33aa4de
Reviewed-on: https://webrtc-review.googlesource.com/c/121422
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26606}
2019-02-08 10:54:21 +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
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
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
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
Mirko Bonadei
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
Sebastian Jansson
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
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
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
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