webrtc/modules/rtp_rtcp
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
..
include Implement the mixer-to-client per CSRC audio level extension (RFC 6465). 2021-05-24 14:11:28 +00:00
mocks Delete RtpRtcp::RemoteRTCPStat in favor of GetLatestReportBlockData 2021-03-16 10:31:35 +00:00
source Remove synchronization from VideoSendStream construction. 2021-06-03 19:13:45 +00:00
test/testFec Use rtc::CopyOnWriteBuffer::MutableData through webrtc 2021-01-11 11:31:33 +00:00
BUILD.gn Use the injected clock in rtcp_transciever. 2021-05-21 17:34:33 +00:00
DEPS Replace field trials with WebRtcKeyValueConfig in RtpRtcpModule 2019-02-21 14:25:34 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00