Always keep abs send time extension.
This makes the WebRTC-KeepAbsSendTimeExtension field trial
always enabled. This means that we no longer avoid sending the
abs-send-time extension if we have negotiated sending of transport
wide sequence numbers.
The field trial WebRTC-FilterAbsSendTimeExtension is introduced to allow
reverting to the previous behavior.
Bug: webrtc:10234
Change-Id: Ifd9761d84dd1fe79af840f98ad0882a2e5adf0b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159181
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Konrad Hofbauer <hofbauer@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29999}
diff --git a/media/engine/webrtc_media_engine.cc b/media/engine/webrtc_media_engine.cc
index 4f274d4..751b729 100644
--- a/media/engine/webrtc_media_engine.cc
+++ b/media/engine/webrtc_media_engine.cc
@@ -45,13 +45,6 @@
}
namespace {
-// If this FieldTrial is enabled, we will not filter out the abs-send-time
-// header extension when the TWCC extensions were also negotiated, but keep
-// kAbsSendTimeUri also if kTransportSequenceNumberUri is present.
-bool IsKeepAbsSendTimeExtensionFieldTrialEnabled() {
- return webrtc::field_trial::IsEnabled("WebRTC-KeepAbsSendTimeExtension");
-}
-
// Remove mutually exclusive extensions with lower priority.
void DiscardRedundantExtensions(
std::vector<webrtc::RtpExtension>* extensions,
@@ -128,14 +121,14 @@
result.erase(it, result.end());
// Keep just the highest priority extension of any in the following lists.
- if (IsKeepAbsSendTimeExtensionFieldTrialEnabled()) {
+ if (webrtc::field_trial::IsEnabled("WebRTC-FilterAbsSendTimeExtension")) {
static const char* const kBweExtensionPriorities[] = {
+ webrtc::RtpExtension::kTransportSequenceNumberUri,
webrtc::RtpExtension::kAbsSendTimeUri,
webrtc::RtpExtension::kTimestampOffsetUri};
DiscardRedundantExtensions(&result, kBweExtensionPriorities);
} else {
static const char* const kBweExtensionPriorities[] = {
- webrtc::RtpExtension::kTransportSequenceNumberUri,
webrtc::RtpExtension::kAbsSendTimeUri,
webrtc::RtpExtension::kTimestampOffsetUri};
DiscardRedundantExtensions(&result, kBweExtensionPriorities);
diff --git a/media/engine/webrtc_media_engine_unittest.cc b/media/engine/webrtc_media_engine_unittest.cc
index 525e0d1..461effc 100644
--- a/media/engine/webrtc_media_engine_unittest.cc
+++ b/media/engine/webrtc_media_engine_unittest.cc
@@ -182,6 +182,8 @@
}
TEST(WebRtcMediaEngineTest, FilterRtpExtensions_RemoveRedundantBwe_1) {
+ webrtc::test::ScopedFieldTrials override_field_trials_(
+ "WebRTC-FilterAbsSendTimeExtension/Enabled/");
std::vector<RtpExtension> extensions;
extensions.push_back(
RtpExtension(RtpExtension::kTransportSequenceNumberUri, 3));
@@ -199,8 +201,6 @@
TEST(WebRtcMediaEngineTest,
FilterRtpExtensions_RemoveRedundantBwe_1_KeepAbsSendTime) {
std::vector<RtpExtension> extensions;
- webrtc::test::ScopedFieldTrials override_field_trials_(
- "WebRTC-KeepAbsSendTimeExtension/Enabled/");
extensions.push_back(
RtpExtension(RtpExtension::kTransportSequenceNumberUri, 3));
extensions.push_back(RtpExtension(RtpExtension::kTimestampOffsetUri, 9));
@@ -216,6 +216,8 @@
}
TEST(WebRtcMediaEngineTest, FilterRtpExtensions_RemoveRedundantBweEncrypted_1) {
+ webrtc::test::ScopedFieldTrials override_field_trials_(
+ "WebRTC-FilterAbsSendTimeExtension/Enabled/");
std::vector<RtpExtension> extensions;
extensions.push_back(
RtpExtension(RtpExtension::kTransportSequenceNumberUri, 3));
@@ -239,8 +241,6 @@
TEST(WebRtcMediaEngineTest,
FilterRtpExtensions_RemoveRedundantBweEncrypted_1_KeepAbsSendTime) {
std::vector<RtpExtension> extensions;
- webrtc::test::ScopedFieldTrials override_field_trials_(
- "WebRTC-KeepAbsSendTimeExtension/Enabled/");
extensions.push_back(
RtpExtension(RtpExtension::kTransportSequenceNumberUri, 3));
extensions.push_back(
diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc
index d07042c..2c6b524 100644
--- a/media/engine/webrtc_video_engine_unittest.cc
+++ b/media/engine/webrtc_video_engine_unittest.cc
@@ -2655,6 +2655,8 @@
}
TEST_F(WebRtcVideoChannelTest, FiltersExtensionsPicksTransportSeqNum) {
+ webrtc::test::ScopedFieldTrials override_field_trials_(
+ "WebRTC-FilterAbsSendTimeExtension/Enabled/");
// Enable three redundant extensions.
std::vector<std::string> extensions;
extensions.push_back(RtpExtension::kAbsSendTimeUri);
diff --git a/test/peer_scenario/tests/remote_estimate_test.cc b/test/peer_scenario/tests/remote_estimate_test.cc
index 9988532..75f41b6 100644
--- a/test/peer_scenario/tests/remote_estimate_test.cc
+++ b/test/peer_scenario/tests/remote_estimate_test.cc
@@ -71,7 +71,6 @@
}
TEST(RemoteEstimateEndToEnd, AudioUsesAbsSendTimeExtension) {
- ScopedFieldTrials trials("WebRTC-KeepAbsSendTimeExtension/Enabled/");
// Defined before PeerScenario so it gets destructed after, to avoid use after free.
rtc::Event received_abs_send_time;
PeerScenario s(*test_info_);