webrtc/modules
Tommi 1050fbca91 Remove synchronization from VideoSendStream construction.
* Make VideoSendStream and VideoSendStreamImpl construction non-blocking.
* Move ownership of the rtp video sender to VideoSendStream.
* Most state is constructed in initializer lists.
* More state is now const (including VideoSendStreamImpl ptr)
* Adding thread checks to classes that appear to have had a race before
  E.g. RtpTransportControllerSend. The change in threading now actually
  fixes an issue we weren't aware of.
* Moved from using weak_ptr to safety flag and made some PostTask calls
  cancellable that could potentially have been problematic. Initalizing
  the flag without thread synchronization is also simpler.

This should speed up renegotiation significantly when there are
multiple channels. A follow-up change will improve SetSend as well
which is another costly step during renegotiation.

Bug: webrtc:12840
Change-Id: If4b28da5a085643ce132c7cfcf80a62cd1a625c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221105
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34224}
2021-06-03 19:13:45 +00:00
..
async_audio_processing Use SequenceChecker from public API 2021-02-10 15:04:55 +00:00
audio_coding Delete unused test method in neteq that uses RtcpStatistics 2021-05-17 12:43:44 +00:00
audio_device Reland "Refactor the PlatformThread API." 2021-05-07 14:14:43 +00:00
audio_mixer Include all RTP packet infos from the mix list when updating the audio frame for mixing. 2021-05-18 11:05:37 +00:00
audio_processing Integrate ClippingPredictor into AudioProcessingImpl and AgcManagerDirect 2021-06-03 02:35:05 +00:00
congestion_controller Add a function to check if the packet in a PacketResult has been received. 2021-06-03 12:42:49 +00:00
desktop_capture Add DesktopCaptureOption enumerate_current_process_windows to avoid hang 2021-06-01 18:20:50 +00:00
include Delete RTPFragmentationHeader as no longer used 2020-09-03 00:01:27 +00:00
pacing Remove REMB throttling funcionality from PacketRouter 2021-05-12 11:24:58 +00:00
remote_bitrate_estimator Modernize style in RemoteBitrateEstimatorAbsSendTime implementation 2021-06-03 14:37:33 +00:00
rtp_rtcp Remove synchronization from VideoSendStream construction. 2021-06-03 19:13:45 +00:00
third_party Use source_sets in component builds and static_library in release builds. 2019-10-17 21:17:18 +00:00
utility Add event traces to interesting places in WebRTC. 2021-06-02 13:06:04 +00:00
video_capture Reland "Refactor the PlatformThread API." 2021-05-07 14:14:43 +00:00
video_coding Add event traces to interesting places in WebRTC. 2021-06-02 13:06:04 +00:00
video_processing Delete unneeded dependencies on the Module abstraction 2020-12-21 09:09:57 +00:00
BUILD.gn Remove from chromium build targets that are not compatible with it. 2021-02-01 13:46:19 +00:00
module_common_types_unittest.cc