From 2373bb9799c1f4ea751767a87cbdd6f13d523d98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Spr=C3=A5ng?= Date: Fri, 6 Aug 2021 15:22:28 +0200 Subject: [PATCH] Default-enable deferred sequence numbering for audio. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:11340 Change-Id: I5aa2a1e35b007c6d4c039f42f09c48fd7871f6ab Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227775 Reviewed-by: Danil Chapovalov Reviewed-by: Per Åhgren Commit-Queue: Erik Språng Cr-Commit-Position: refs/heads/master@{#34681} --- audio/channel_send.cc | 2 ++ modules/rtp_rtcp/source/rtp_rtcp_impl2.cc | 4 +++- modules/rtp_rtcp/source/rtp_sender_audio.cc | 8 ++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/audio/channel_send.cc b/audio/channel_send.cc index 06e9238ce8..ee6f0c54cd 100644 --- a/audio/channel_send.cc +++ b/audio/channel_send.cc @@ -502,6 +502,8 @@ ChannelSend::ChannelSend( configuration.rtcp_packet_type_counter_observer = this; configuration.local_media_ssrc = ssrc; + configuration.use_deferred_sequencing = + !field_trial::IsDisabled("WebRTC-Audio-DeferredSequencing"); rtp_rtcp_ = ModuleRtpRtcpImpl2::Create(configuration); rtp_rtcp_->SetSendingMediaStatus(false); diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc index 536e5d43a8..f20fe876a5 100644 --- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc +++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc @@ -384,7 +384,9 @@ bool ModuleRtpRtcpImpl2::TrySendPacket(RtpPacketToSend* packet, RTC_DCHECK(rtp_sender_); RTC_DCHECK_RUN_ON(&pacer_thread_checker_); if (rtp_sender_->deferred_sequencing_) { - RTC_DCHECK(rtp_sender_->packet_generator.SendingMedia()); + if (!rtp_sender_->packet_generator.SendingMedia()) { + return false; + } if (packet->packet_type() == RtpPacketMediaType::kPadding && packet->Ssrc() == rtp_sender_->packet_generator.SSRC() && !rtp_sender_->sequencer_.CanSendPaddingOnMediaSsrc()) { diff --git a/modules/rtp_rtcp/source/rtp_sender_audio.cc b/modules/rtp_rtcp/source/rtp_sender_audio.cc index 4d72211b7c..c23e81a06a 100644 --- a/modules/rtp_rtcp/source/rtp_sender_audio.cc +++ b/modules/rtp_rtcp/source/rtp_sender_audio.cc @@ -304,8 +304,10 @@ bool RTPSenderAudio::SendAudio(AudioFrameType frame_type, return false; memcpy(payload, payload_data, payload_size); - if (!rtp_sender_->AssignSequenceNumber(packet.get())) + if (!rtp_sender_->deferred_sequence_numbering() && + !rtp_sender_->AssignSequenceNumber(packet.get())) { return false; + } { MutexLock lock(&send_audio_mutex_); @@ -374,8 +376,10 @@ bool RTPSenderAudio::SendTelephoneEventPacket(bool ended, packet->SetSsrc(rtp_sender_->SSRC()); packet->SetTimestamp(dtmf_timestamp); packet->set_capture_time_ms(clock_->TimeInMilliseconds()); - if (!rtp_sender_->AssignSequenceNumber(packet.get())) + if (!rtp_sender_->deferred_sequence_numbering() && + !rtp_sender_->AssignSequenceNumber(packet.get())) { return false; + } // Create DTMF data. uint8_t* dtmfbuffer = packet->AllocatePayload(kDtmfSize);