Stop overriding extensions in rampup tests
Instead, ensure extensions are registered so that both transport and send streams are aware.

Bug: webrtc:7135,webrtc:14795,b/266658815
Change-Id: I7710113893e2c5e23c1365de6aa3b761e3408308
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291333
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39193}
diff --git a/call/rampup_tests.cc b/call/rampup_tests.cc
index c2848b4..3c89670 100644
--- a/call/rampup_tests.cc
+++ b/call/rampup_tests.cc
@@ -65,7 +65,6 @@
                            size_t num_flexfec_streams,
                            unsigned int start_bitrate_bps,
                            int64_t min_run_time_ms,
-                           absl::string_view extension_type,
                            bool rtx,
                            bool red,
                            bool report_perf_stats,
@@ -87,7 +86,6 @@
       expected_bitrate_bps_(0),
       test_start_ms_(-1),
       ramp_up_finished_ms_(-1),
-      extension_type_(extension_type),
       video_ssrcs_(GenerateSsrcs(num_video_streams_, 100)),
       video_rtx_ssrcs_(GenerateSsrcs(num_video_streams_, 200)),
       audio_ssrcs_(GenerateSsrcs(num_audio_streams_, 300)),
@@ -176,19 +174,6 @@
     }
   }
 
-  send_config->rtp.extensions.clear();
-
-  if (extension_type_ == RtpExtension::kAbsSendTimeUri) {
-    send_config->rtp.extensions.push_back(
-        RtpExtension(extension_type_.c_str(), kAbsSendTimeExtensionId));
-  } else if (extension_type_ == RtpExtension::kTransportSequenceNumberUri) {
-    send_config->rtp.extensions.push_back(RtpExtension(
-        extension_type_.c_str(), kTransportSequenceNumberExtensionId));
-  } else {
-    send_config->rtp.extensions.push_back(RtpExtension(
-        extension_type_.c_str(), kTransmissionTimeOffsetExtensionId));
-  }
-
   send_config->rtp.nack.rtp_history_ms = test::CallTest::kNackRtpHistoryMs;
   send_config->rtp.ssrcs = video_ssrcs_;
   if (rtx_) {
@@ -207,7 +192,6 @@
 
   size_t i = 0;
   for (VideoReceiveStreamInterface::Config& recv_config : *receive_configs) {
-    recv_config.rtp.extensions = send_config->rtp.extensions;
     recv_config.decoders.reserve(1);
     recv_config.decoders[0].payload_type = send_config->rtp.payload_type;
     recv_config.decoders[0].video_format =
@@ -251,24 +235,11 @@
   if (num_audio_streams_ == 0)
     return;
 
-  EXPECT_NE(RtpExtension::kTimestampOffsetUri, extension_type_)
-      << "Audio BWE not supported with toffset.";
-  EXPECT_NE(RtpExtension::kAbsSendTimeUri, extension_type_)
-      << "Audio BWE not supported with abs-send-time.";
-
   send_config->rtp.ssrc = audio_ssrcs_[0];
-  send_config->rtp.extensions.clear();
-
   send_config->min_bitrate_bps = 6000;
   send_config->max_bitrate_bps = 60000;
 
-  if (extension_type_ == RtpExtension::kTransportSequenceNumberUri) {
-    send_config->rtp.extensions.push_back(RtpExtension(
-        extension_type_.c_str(), kTransportSequenceNumberExtensionId));
-  }
-
   for (AudioReceiveStreamInterface::Config& recv_config : *receive_configs) {
-    recv_config.rtp.extensions = send_config->rtp.extensions;
     recv_config.rtp.remote_ssrc = send_config->rtp.ssrc;
   }
 }
@@ -282,13 +253,6 @@
   (*receive_configs)[0].rtp.remote_ssrc = test::CallTest::kFlexfecSendSsrc;
   (*receive_configs)[0].protected_media_ssrcs = {video_ssrcs_[0]};
   (*receive_configs)[0].rtp.local_ssrc = video_ssrcs_[0];
-  if (extension_type_ == RtpExtension::kAbsSendTimeUri) {
-    (*receive_configs)[0].rtp.extensions.push_back(
-        RtpExtension(extension_type_.c_str(), kAbsSendTimeExtensionId));
-  } else if (extension_type_ == RtpExtension::kTransportSequenceNumberUri) {
-    (*receive_configs)[0].rtp.extensions.push_back(RtpExtension(
-        extension_type_.c_str(), kTransportSequenceNumberExtensionId));
-  }
 }
 
 void RampUpTester::OnCallsCreated(Call* sender_call, Call* receiver_call) {
@@ -417,7 +381,6 @@
                                        size_t num_audio_streams,
                                        size_t num_flexfec_streams,
                                        unsigned int start_bitrate_bps,
-                                       absl::string_view extension_type,
                                        bool rtx,
                                        bool red,
                                        const std::vector<int>& loss_rates,
@@ -428,7 +391,6 @@
                    num_flexfec_streams,
                    start_bitrate_bps,
                    0,
-                   extension_type,
                    rtx,
                    red,
                    report_perf_stats,
@@ -627,8 +589,9 @@
 
 TEST_F(RampUpTest, UpDownUpAbsSendTimeSimulcastRedRtx) {
   std::vector<int> loss_rates = {0, 0, 0, 0};
-  RampUpDownUpTester test(3, 0, 0, kStartBitrateBps,
-                          RtpExtension::kAbsSendTimeUri, true, true, loss_rates,
+  RegisterRtpExtension(
+      RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
+  RampUpDownUpTester test(3, 0, 0, kStartBitrateBps, true, true, loss_rates,
                           true, task_queue());
   RunBaseTest(&test);
 }
@@ -643,9 +606,10 @@
 #endif
 TEST_F(RampUpTest, MAYBE_UpDownUpTransportSequenceNumberRtx) {
   std::vector<int> loss_rates = {0, 0, 0, 0};
-  RampUpDownUpTester test(3, 0, 0, kStartBitrateBps,
-                          RtpExtension::kTransportSequenceNumberUri, true,
-                          false, loss_rates, true, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                    kTransportSequenceNumberExtensionId));
+  RampUpDownUpTester test(3, 0, 0, kStartBitrateBps, true, false, loss_rates,
+                          true, task_queue());
   RunBaseTest(&test);
 }
 
@@ -655,9 +619,10 @@
 // platforms. See: crbug.com/webrtc/7919
 TEST_F(RampUpTest, DISABLED_UpDownUpTransportSequenceNumberPacketLoss) {
   std::vector<int> loss_rates = {20, 0, 0, 0};
-  RampUpDownUpTester test(1, 0, 1, kStartBitrateBps,
-                          RtpExtension::kTransportSequenceNumberUri, true,
-                          false, loss_rates, false, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                    kTransportSequenceNumberExtensionId));
+  RampUpDownUpTester test(1, 0, 1, kStartBitrateBps, true, false, loss_rates,
+                          false, task_queue());
   RunBaseTest(&test);
 }
 
@@ -671,60 +636,68 @@
 #endif
 TEST_F(RampUpTest, MAYBE_UpDownUpAudioVideoTransportSequenceNumberRtx) {
   std::vector<int> loss_rates = {0, 0, 0, 0};
-  RampUpDownUpTester test(3, 1, 0, kStartBitrateBps,
-                          RtpExtension::kTransportSequenceNumberUri, true,
-                          false, loss_rates, false, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                    kTransportSequenceNumberExtensionId));
+  RampUpDownUpTester test(3, 1, 0, kStartBitrateBps, true, false, loss_rates,
+                          false, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(RampUpTest, UpDownUpAudioTransportSequenceNumberRtx) {
   std::vector<int> loss_rates = {0, 0, 0, 0};
-  RampUpDownUpTester test(0, 1, 0, kStartBitrateBps,
-                          RtpExtension::kTransportSequenceNumberUri, true,
-                          false, loss_rates, false, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                    kTransportSequenceNumberExtensionId));
+  RampUpDownUpTester test(0, 1, 0, kStartBitrateBps, true, false, loss_rates,
+                          false, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(RampUpTest, TOffsetSimulcastRedRtx) {
-  RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kTimestampOffsetUri, true,
-                    true, true, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTimestampOffsetUri,
+                                    kTransmissionTimeOffsetExtensionId));
+  RampUpTester test(3, 0, 0, 0, 0, true, true, true, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(RampUpTest, AbsSendTime) {
-  RampUpTester test(1, 0, 0, 0, 0, RtpExtension::kAbsSendTimeUri, false, false,
-                    false, task_queue());
+  RegisterRtpExtension(
+      RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
+  RampUpTester test(1, 0, 0, 0, 0, false, false, false, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(RampUpTest, AbsSendTimeSimulcastRedRtx) {
-  RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kAbsSendTimeUri, true, true,
-                    true, task_queue());
+  RegisterRtpExtension(
+      RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
+  RampUpTester test(3, 0, 0, 0, 0, true, true, true, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(RampUpTest, TransportSequenceNumber) {
-  RampUpTester test(1, 0, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri,
-                    false, false, false, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                    kTransportSequenceNumberExtensionId));
+  RampUpTester test(1, 0, 0, 0, 0, false, false, false, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(RampUpTest, TransportSequenceNumberSimulcast) {
-  RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri,
-                    false, false, false, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                    kTransportSequenceNumberExtensionId));
+  RampUpTester test(3, 0, 0, 0, 0, false, false, false, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(RampUpTest, TransportSequenceNumberSimulcastRedRtx) {
-  RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri,
-                    true, true, true, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                    kTransportSequenceNumberExtensionId));
+  RampUpTester test(3, 0, 0, 0, 0, true, true, true, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(RampUpTest, AudioTransportSequenceNumber) {
-  RampUpTester test(0, 1, 0, 300000, 10000,
-                    RtpExtension::kTransportSequenceNumberUri, false, false,
-                    false, task_queue());
+  RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                    kTransportSequenceNumberExtensionId));
+  RampUpTester test(0, 1, 0, 300000, 10000, false, false, false, task_queue());
   RunBaseTest(&test);
 }
 
diff --git a/call/rampup_tests.h b/call/rampup_tests.h
index 952ae6f..ba9989d 100644
--- a/call/rampup_tests.h
+++ b/call/rampup_tests.h
@@ -44,7 +44,6 @@
                size_t num_flexfec_streams,
                unsigned int start_bitrate_bps,
                int64_t min_run_time_ms,
-               absl::string_view extension_type,
                bool rtx,
                bool red,
                bool report_perf_stats,
@@ -115,7 +114,6 @@
   int64_t test_start_ms_;
   int64_t ramp_up_finished_ms_;
 
-  const std::string extension_type_;
   std::vector<uint32_t> video_ssrcs_;
   std::vector<uint32_t> video_rtx_ssrcs_;
   std::vector<uint32_t> audio_ssrcs_;
@@ -131,7 +129,6 @@
                      size_t num_audio_streams,
                      size_t num_flexfec_streams,
                      unsigned int start_bitrate_bps,
-                     absl::string_view extension_type,
                      bool rtx,
                      bool red,
                      const std::vector<int>& loss_rates,
diff --git a/test/call_test.cc b/test/call_test.cc
index 92f8d7d..62d1839 100644
--- a/test/call_test.cc
+++ b/test/call_test.cc
@@ -256,6 +256,10 @@
   video_config->rtp.extmap_allow_mixed = true;
   AddRtpExtensionByUri(RtpExtension::kTransportSequenceNumberUri,
                        &video_config->rtp.extensions);
+  AddRtpExtensionByUri(RtpExtension::kAbsSendTimeUri,
+                       &video_config->rtp.extensions);
+  AddRtpExtensionByUri(RtpExtension::kTimestampOffsetUri,
+                       &video_config->rtp.extensions);
   AddRtpExtensionByUri(RtpExtension::kVideoContentTypeUri,
                        &video_config->rtp.extensions);
   AddRtpExtensionByUri(RtpExtension::kGenericFrameDescriptorUri00,
@@ -283,6 +287,9 @@
   if (num_audio_streams > 0) {
     AudioSendStream::Config audio_send_config(send_transport);
     audio_send_config.rtp.ssrc = kAudioSendSsrc;
+    AddRtpExtensionByUri(RtpExtension::kTransportSequenceNumberUri,
+                         &audio_send_config.rtp.extensions);
+
     audio_send_config.send_codec_spec = AudioSendStream::Config::SendCodecSpec(
         kAudioSendPayloadType, {"opus", 48000, 2, {{"stereo", "1"}}});
     audio_send_config.encoder_factory = audio_encoder_factory_;