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}
This commit is contained in:
parent
b810646c54
commit
41462d58b2
@ -45,13 +45,6 @@ std::unique_ptr<MediaEngineInterface> CreateMediaEngine(
|
||||
}
|
||||
|
||||
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 @@ std::vector<webrtc::RtpExtension> FilterRtpExtensions(
|
||||
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);
|
||||
|
||||
@ -182,6 +182,8 @@ TEST(WebRtcMediaEngineTest, FilterRtpExtensions_RemoveRedundantEncrypted_2) {
|
||||
}
|
||||
|
||||
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) {
|
||||
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,
|
||||
}
|
||||
|
||||
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) {
|
||||
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(
|
||||
|
||||
@ -2655,6 +2655,8 @@ TEST_F(WebRtcVideoChannelTest, RecvAbsoluteSendTimeHeaderExtensions) {
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
@ -71,7 +71,6 @@ TEST(RemoteEstimateEndToEnd, OfferedCapabilityIsInAnswer) {
|
||||
}
|
||||
|
||||
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_);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user