diff --git a/audio/channel_send.cc b/audio/channel_send.cc index 37a14b711a..6fd216144a 100644 --- a/audio/channel_send.cc +++ b/audio/channel_send.cc @@ -502,8 +502,6 @@ 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/call/rtp_video_sender.cc b/call/rtp_video_sender.cc index f95c74337a..b778563cdd 100644 --- a/call/rtp_video_sender.cc +++ b/call/rtp_video_sender.cc @@ -231,8 +231,6 @@ std::vector CreateRtpStreamSenders( crypto_options.sframe.require_frame_encryption; configuration.extmap_allow_mixed = rtp_config.extmap_allow_mixed; configuration.rtcp_report_interval_ms = rtcp_report_interval_ms; - configuration.use_deferred_sequencing = !absl::StartsWith( - trials.Lookup("WebRTC-Video-DeferredSequencing"), "Disabled"); configuration.field_trials = &trials; std::vector rtp_streams; diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h index c1a44fa4df..df5593cc54 100644 --- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h +++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h @@ -146,10 +146,6 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface { // https://tools.ietf.org/html/rfc3611#section-4.4 and #section-4.5 bool non_sender_rtt_measurement = false; - // If true, sequence numbers are not assigned until after the pacer stage, - // in RtpSenderEgress. - bool use_deferred_sequencing = false; - private: RTC_DISALLOW_COPY_AND_ASSIGN(Configuration); }; diff --git a/modules/rtp_rtcp/source/rtp_sender_egress.cc b/modules/rtp_rtcp/source/rtp_sender_egress.cc index f2a74e196c..89c5597c1b 100644 --- a/modules/rtp_rtcp/source/rtp_sender_egress.cc +++ b/modules/rtp_rtcp/source/rtp_sender_egress.cc @@ -86,7 +86,6 @@ RtpSenderEgress::RtpSenderEgress(const RtpRtcpInterface::Configuration& config, !IsTrialSetTo(config.field_trials, "WebRTC-SendSideBwe-WithOverhead", "Disabled")), - deferred_sequencing_(config.use_deferred_sequencing), clock_(config.clock), packet_history_(packet_history), transport_(config.outgoing_transport), @@ -134,23 +133,19 @@ void RtpSenderEgress::SendPacket(RtpPacketToSend* packet, RTC_DCHECK_RUN_ON(&pacer_checker_); RTC_DCHECK(packet); - if (deferred_sequencing_) { - // Strict increasing of sequence numbers can only be guaranteed with - // deferred sequencing due to raciness with the pacer. - if (packet->Ssrc() == ssrc_ && - packet->packet_type() != RtpPacketMediaType::kRetransmission) { - if (last_sent_seq_.has_value()) { - RTC_DCHECK_EQ(static_cast(*last_sent_seq_ + 1), - packet->SequenceNumber()); - } - last_sent_seq_ = packet->SequenceNumber(); - } else if (packet->Ssrc() == rtx_ssrc_) { - if (last_sent_rtx_seq_.has_value()) { - RTC_DCHECK_EQ(static_cast(*last_sent_rtx_seq_ + 1), - packet->SequenceNumber()); - } - last_sent_rtx_seq_ = packet->SequenceNumber(); + if (packet->Ssrc() == ssrc_ && + packet->packet_type() != RtpPacketMediaType::kRetransmission) { + if (last_sent_seq_.has_value()) { + RTC_DCHECK_EQ(static_cast(*last_sent_seq_ + 1), + packet->SequenceNumber()); } + last_sent_seq_ = packet->SequenceNumber(); + } else if (packet->Ssrc() == rtx_ssrc_) { + if (last_sent_rtx_seq_.has_value()) { + RTC_DCHECK_EQ(static_cast(*last_sent_rtx_seq_ + 1), + packet->SequenceNumber()); + } + last_sent_rtx_seq_ = packet->SequenceNumber(); } RTC_DCHECK(packet->packet_type().has_value()); diff --git a/modules/rtp_rtcp/source/rtp_sender_egress.h b/modules/rtp_rtcp/source/rtp_sender_egress.h index bf9076d9f2..1fd7128966 100644 --- a/modules/rtp_rtcp/source/rtp_sender_egress.h +++ b/modules/rtp_rtcp/source/rtp_sender_egress.h @@ -134,7 +134,6 @@ class RtpSenderEgress { const absl::optional flexfec_ssrc_; const bool populate_network2_timestamp_; const bool send_side_bwe_with_overhead_; - const bool deferred_sequencing_; Clock* const clock_; RtpPacketHistory* const packet_history_; Transport* const transport_; diff --git a/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc index 4f3990cc3e..d95a639e21 100644 --- a/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc +++ b/modules/rtp_rtcp/source/rtp_sender_egress_unittest.cc @@ -587,6 +587,7 @@ TEST_P(RtpSenderEgressTest, StreamDataCountersCallbacks) { // Send a media packet. std::unique_ptr media_packet = BuildRtpPacket(); media_packet->SetPayloadSize(6); + media_packet->SetSequenceNumber(kStartSequenceNumber); expected_transmitted_counter.packets += 1; expected_transmitted_counter.payload_bytes += media_packet->payload_size(); expected_transmitted_counter.header_bytes += media_packet->headers_size(); @@ -606,8 +607,9 @@ TEST_P(RtpSenderEgressTest, StreamDataCountersCallbacks) { // and retransmitted packet statistics. std::unique_ptr retransmission_packet = BuildRtpPacket(); retransmission_packet->set_packet_type(RtpPacketMediaType::kRetransmission); + retransmission_packet->SetSequenceNumber(kStartSequenceNumber); retransmission_packet->set_retransmitted_sequence_number( - retransmission_packet->SequenceNumber()); + kStartSequenceNumber); media_packet->SetPayloadSize(7); expected_transmitted_counter.packets += 1; expected_transmitted_counter.payload_bytes += @@ -636,6 +638,7 @@ TEST_P(RtpSenderEgressTest, StreamDataCountersCallbacks) { std::unique_ptr padding_packet = BuildRtpPacket(); padding_packet->set_packet_type(RtpPacketMediaType::kPadding); padding_packet->SetPadding(224); + padding_packet->SetSequenceNumber(kStartSequenceNumber + 1); expected_transmitted_counter.packets += 1; expected_transmitted_counter.padding_bytes += padding_packet->padding_size(); expected_transmitted_counter.header_bytes += padding_packet->headers_size();