Default-enable deferred sequence numbering for audio.

Bug: webrtc:11340
Change-Id: I5aa2a1e35b007c6d4c039f42f09c48fd7871f6ab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227775
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34681}
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index 06e9238..ee6f0c5 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -502,6 +502,8 @@
   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 536e5d4..f20fe87 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
@@ -384,7 +384,9 @@
   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 4d72211..c23e81a 100644
--- a/modules/rtp_rtcp/source/rtp_sender_audio.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_audio.cc
@@ -304,8 +304,10 @@
     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 @@
     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);