There are some functions in packet_router.cc and modules/congestion_controller that could be used by different threads, but they're protected using rtc::ThreadChecker which doesn't allow them to be called by more than one thread even if the calls are synchronised. This CL replaces those with rtc::RaceChecker, which allows serialized access of the functions from multiple threads.
BUG=webrtc:7826
Review-Url: https://codereview.webrtc.org/2940133003
Cr-Commit-Position: refs/heads/master@{#18628}
Change plotting of detector state from offset and gamma to T and threshold.
BUG=None
Review-Url: https://codereview.webrtc.org/2933243003
Cr-Commit-Position: refs/heads/master@{#18585}
Biggest change is to Remove MediaType as argument to RtcEventLog::LogRtpHeader and RtcEventLog::LogRtcpHeader.
Since the type is used by tools, these tools are rewritten to figure out the media type from the configurations instead.
BUG=webrtc:7538
TBR=solenberg@webrtc.org // For call.cc and voiceengine.cc
Review-Url: https://codereview.webrtc.org/2855143002
Cr-Commit-Position: refs/heads/master@{#18324}
FakeRtpTransportController moves to a common header and its constructor is changed to take a SendSideCongestionController to enable injecting the mock.
BUG=webrtc:7395
Review-Url: https://codereview.webrtc.org/2834663003
Cr-Commit-Position: refs/heads/master@{#18055}
we currently check for bandwidth overuse once for every RTP packet.
This CL creates an experiment to test processing all packets in the RTCP
feedback before checking for overuse. This can be thought of as checking
for overuse per RTCP packet instead of per RTP packet.
The change is not expected to have a large impact, but enabling the
experiment will make the delay-based BWE slightly less sensitive. This means
that we'll be less likely to back down incorrectly after a brief network
transient, at the cost of sometimes missing real overuse (especially when
the network queues are short). In the latter case, the loss-based estimator
is expected to detect the overuse.
The experiment is off by default.
BUG=webrtc:7508
Review-Url: https://codereview.webrtc.org/2835573003
Cr-Commit-Position: refs/heads/master@{#17968}
This target keeps track of .h the files under webrtc/modules/include/
that are not part of any target.
If a .h file is not part of a target the 'gn check' utility is not
able to spot if a target is missing a dependency because even if
it parses '#include' directives it is not able to find a target that
contains these headers.
BUG=webrtc:7513
NOTRY=True
Review-Url: https://codereview.webrtc.org/2838873002
Cr-Commit-Position: refs/heads/master@{#17880}
Make all rtc_source_test target that contains tests that
are included in a test executable only be visible to the
rtc_test target. Doing this exposed a couple of errors and
dependency problems that were resolved. Having this could
have prevented duplicated execution of tests like the case that
was recently fixed by deadbeef@ in
https://codereview.webrtc.org/2820263004
New targets:
* //webrtc/modules/rtp_rtcp:fec_test_helper
* //webrtc/modules/rtp_rtcp:mock_rtp_rtcp
* //webrtc/modules/remote_bitrate_estimator:mock_remote_bitrate_observer
The mock files and targets should probably be moved into webrtc/test in
the future, but that's out of the scope of this CL.
BUG=webrtc:5716
NOTRY=True
Review-Url: https://codereview.webrtc.org/2828793003
Cr-Commit-Position: refs/heads/master@{#17863}
And changed the minimum increase rate in |aimd_rate_control| to prevent the system from overusing on short twcc report send interval.
BUG=webrtc:6514
Review-Url: https://codereview.webrtc.org/2407143002
Cr-Commit-Position: refs/heads/master@{#17794}
in favor of GetPacketStatusCount/GetReceivedPackets
BUG=webrtc:5565
Review-Url: https://codereview.webrtc.org/2822153002
Cr-Commit-Position: refs/heads/master@{#17792}
Instead of using the time on the first callback to Call::OnSentPacket, use the time when the first packet is sent from the pacer (to make sure this packet corresponds to an audio/video RTP packet).
BUG=webrtc:6244
Review-Url: https://codereview.webrtc.org/2825333002
Cr-Commit-Position: refs/heads/master@{#17777}
Remove the ProbingIntervalEstimator and MockAimdRateControl.
BUG=webrtc:7441
Review-Url: https://codereview.webrtc.org/2789233005
Cr-Commit-Position: refs/heads/master@{#17769}
The point of this change is to make it possible to create the congestion
controller as part of creating RtpTransportController, later pass it to the
constructor of Call, and then let Call register itself as an observer.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2795643002
Cr-Commit-Position: refs/heads/master@{#17504}
(The two functions are always called together anyway.)
BUG=None
Review-Url: https://codereview.webrtc.org/2784333005
Cr-Commit-Position: refs/heads/master@{#17502}
Reason for revert:
Looks like this has caused multiple Android webrtc perf build bot failures in RampUpTest.UpDownUpTransportSequenceNumberRtx
Original issue's description:
> Enable the bayesian bitrate estimator by default.
>
> BUG=webrtc:6566, webrtc:7415
>
> Review-Url: https://codereview.webrtc.org/2749803002
> Cr-Commit-Position: refs/heads/master@{#17475}
> Committed: c53a17f28eTBR=terelius@webrtc.org,magjed@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6566, webrtc:7415
Review-Url: https://codereview.webrtc.org/2786913003
Cr-Commit-Position: refs/heads/master@{#17476}
Implementation owned by call, and passed to VideoSendStream and
AudioSendStream.
BUG=webrtc:6847, webrtc:7135
Review-Url: https://codereview.webrtc.org/2685673003
Cr-Commit-Position: refs/heads/master@{#17389}
This CL is one in a series. To finish the work, the following CLs will be added:
1. CL for connecting RPLR as well
2. CL for RPLR-based FecController
3. CL for allowing experiment-driven configuration of the above (through both field-trials and protobuf)
BUG=webrtc:7058
Review-Url: https://codereview.webrtc.org/2638083002
Cr-Commit-Position: refs/heads/master@{#17365}
Reason for revert:
Problem was the rename of the include file. Intend to keep the old name for now, and then reland.
Original issue's description:
> Revert of Delete class MockCongestionController. (patchset #4 id:60001 of https://codereview.webrtc.org/2762023004/ )
>
> Reason for revert:
> This is breaking downstream build.
>
> Original issue's description:
> > Delete class MockCongestionController.
> >
> > It became unused in cl https://codereview.webrtc.org/2516983004.
> >
> > BUG=None
> >
> > Review-Url: https://codereview.webrtc.org/2762023004
> > Cr-Commit-Position: refs/heads/master@{#17325}
> > Committed: d19bcb7116
>
> TBR=stefan@webrtc.org,nisse@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/2762133003
> Cr-Commit-Position: refs/heads/master@{#17330}
> Committed: e27f1e764eTBR=stefan@webrtc.org,skvlad@webrtc.org
BUG=None
Review-Url: https://codereview.webrtc.org/2766133002
Cr-Commit-Position: refs/heads/master@{#17338}
New class ReceiveSideCongestionController, extracted from CongestionController, and responsible for the
OnReceivedPacket processing.
Rest of the CongestionController moved to a new class
SendSideCongestionController.
To avoid breaking applications, CongestionController is redefined
as a union of these two classes, with no intended change in behavior.
With one exception: CongestionController::SetBweBitrates used to call
remote_bitrate_estimator_.SetMinBitrate, but after remote_bitrate_estimator_ was moved to ReceiveSideCongestionController,
it no longer does this.
BUG=webrtc:6847
Review-Url: https://codereview.webrtc.org/2752233002
Cr-Commit-Position: refs/heads/master@{#17321}