Register audio send stream in packet router on Start().
Currently, the RtpRtcp module of AudioSendStream is (de)registered in the packet router on calls to (Register|Reset)SenderCongestionControlObjects. This CL changes that to happen on Start/Stop instead, which allows us to safely call (Get|Set)RtpState on suspend/resume without the need for extra locking in the rtp module. See also https://webrtc-review.googlesource.com/c/src/+/228430 Bug: webrtc:11340 Change-Id: I54243a9ace8a7659924269418468b49b967b9465 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228433 Reviewed-by: Per Åhgren <peah@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34738}
This commit is contained in:

committed by
WebRTC LUCI CQ

parent
8b18304e66
commit
69dd142797
@ -537,9 +537,12 @@ void ChannelSend::StartSend() {
|
||||
RTC_DCHECK(!sending_);
|
||||
sending_ = true;
|
||||
|
||||
RTC_DCHECK(packet_router_);
|
||||
packet_router_->AddSendRtpModule(rtp_rtcp_.get(), /*remb_candidate=*/false);
|
||||
rtp_rtcp_->SetSendingMediaStatus(true);
|
||||
int ret = rtp_rtcp_->SetSendingStatus(true);
|
||||
RTC_DCHECK_EQ(0, ret);
|
||||
|
||||
// It is now OK to start processing on the encoder task queue.
|
||||
encoder_queue_.PostTask([this] {
|
||||
RTC_DCHECK_RUN_ON(&encoder_queue_);
|
||||
@ -568,6 +571,9 @@ void ChannelSend::StopSend() {
|
||||
RTC_DLOG(LS_ERROR) << "StartSend() RTP/RTCP failed to stop sending";
|
||||
}
|
||||
rtp_rtcp_->SetSendingMediaStatus(false);
|
||||
|
||||
RTC_DCHECK(packet_router_);
|
||||
packet_router_->RemoveSendRtpModule(rtp_rtcp_.get());
|
||||
}
|
||||
|
||||
void ChannelSend::SetEncoder(int payload_type,
|
||||
@ -723,8 +729,6 @@ void ChannelSend::RegisterSenderCongestionControlObjects(
|
||||
rtcp_observer_->SetBandwidthObserver(bandwidth_observer);
|
||||
rtp_packet_pacer_proxy_->SetPacketPacer(rtp_packet_pacer);
|
||||
rtp_rtcp_->SetStorePacketsStatus(true, 600);
|
||||
constexpr bool remb_candidate = false;
|
||||
packet_router->AddSendRtpModule(rtp_rtcp_.get(), remb_candidate);
|
||||
packet_router_ = packet_router;
|
||||
}
|
||||
|
||||
@ -733,7 +737,6 @@ void ChannelSend::ResetSenderCongestionControlObjects() {
|
||||
RTC_DCHECK(packet_router_);
|
||||
rtp_rtcp_->SetStorePacketsStatus(false, 600);
|
||||
rtcp_observer_->SetBandwidthObserver(nullptr);
|
||||
packet_router_->RemoveSendRtpModule(rtp_rtcp_.get());
|
||||
packet_router_ = nullptr;
|
||||
rtp_packet_pacer_proxy_->SetPacketPacer(nullptr);
|
||||
}
|
||||
|
Reference in New Issue
Block a user