Adds support for abs send time extension in scenario tests.

Bug: webrtc:10742
Change-Id: I2fba97b23691b27c05dce17ca17c5cd13076616b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141871
Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28291}
diff --git a/test/scenario/audio_stream.cc b/test/scenario/audio_stream.cc
index d9f0dd9..4ff3593 100644
--- a/test/scenario/audio_stream.cc
+++ b/test/scenario/audio_stream.cc
@@ -26,6 +26,11 @@
 namespace webrtc {
 namespace test {
 namespace {
+enum : int {  // The first valid value is 1.
+  kTransportSequenceNumberExtensionId = 1,
+  kAbsSendTimeExtensionId
+};
+
 absl::optional<std::string> CreateAdaptationString(
     AudioStreamConfig::NetworkAdaptation config) {
 #if WEBRTC_ENABLE_PROTOBUF
@@ -115,8 +120,12 @@
 
   if (config.stream.in_bandwidth_estimation) {
     send_config.send_codec_spec->transport_cc_enabled = true;
-    send_config.rtp.extensions = {
-        {RtpExtension::kTransportSequenceNumberUri, 8}};
+    send_config.rtp.extensions = {{RtpExtension::kTransportSequenceNumberUri,
+                                   kTransportSequenceNumberExtensionId}};
+  }
+  if (config.stream.abs_send_time) {
+    send_config.rtp.extensions.push_back(
+        {RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId});
   }
 
   if (config.encoder.priority_rate) {
diff --git a/test/scenario/scenario_config.h b/test/scenario/scenario_config.h
index 151e9f1..ff925e7 100644
--- a/test/scenario/scenario_config.h
+++ b/test/scenario/scenario_config.h
@@ -156,6 +156,7 @@
     Stream();
     Stream(const Stream&);
     ~Stream();
+    bool abs_send_time = false;
     bool packet_feedback = true;
     bool use_rtx = true;
     DataRate pad_to_rate = DataRate::Zero();
@@ -208,6 +209,7 @@
     Stream();
     Stream(const Stream&);
     ~Stream();
+    bool abs_send_time = false;
     bool in_bandwidth_estimation = false;
   } stream;
   struct Rendering {
diff --git a/test/scenario/video_stream.cc b/test/scenario/video_stream.cc
index 00521ea..c516ddf 100644
--- a/test/scenario/video_stream.cc
+++ b/test/scenario/video_stream.cc
@@ -29,6 +29,7 @@
 namespace {
 enum : int {  // The first valid value is 1.
   kTransportSequenceNumberExtensionId = 1,
+  kAbsSendTimeExtensionId,
   kVideoContentTypeExtensionId,
   kVideoRotationRtpExtensionId,
 };
@@ -97,6 +98,10 @@
     res.push_back(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
                                kTransportSequenceNumberExtensionId));
   }
+  if (config.stream.abs_send_time) {
+    res.push_back(
+        RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeExtensionId));
+  }
   return res;
 }