Add HeaderExtensions to RtpParameters
Bug: webrtc:7580
Change-Id: I4fcf3e8bc4975a6b2baa6f24a17c254d2bf521d9
Reviewed-on: https://webrtc-review.googlesource.com/78288
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23584}diff --git a/pc/peerconnection_rtp_unittest.cc b/pc/peerconnection_rtp_unittest.cc
index f4a174b..586189e 100644
--- a/pc/peerconnection_rtp_unittest.cc
+++ b/pc/peerconnection_rtp_unittest.cc
@@ -566,6 +566,34 @@
}
}
+TEST_P(PeerConnectionRtpTest, AudioGetParametersHasHeaderExtensions) {
+ auto caller = CreatePeerConnection();
+ auto callee = CreatePeerConnection();
+ auto sender = caller->AddAudioTrack("audio_track");
+ ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
+
+ ASSERT_GT(caller->pc()->GetSenders().size(), 0u);
+ EXPECT_GT(sender->GetParameters().header_extensions.size(), 0u);
+
+ ASSERT_GT(callee->pc()->GetReceivers().size(), 0u);
+ auto receiver = callee->pc()->GetReceivers()[0];
+ EXPECT_GT(receiver->GetParameters().header_extensions.size(), 0u);
+}
+
+TEST_P(PeerConnectionRtpTest, VideoGetParametersHasHeaderExtensions) {
+ auto caller = CreatePeerConnection();
+ auto callee = CreatePeerConnection();
+ auto sender = caller->AddVideoTrack("video_track");
+ ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get()));
+
+ ASSERT_GT(caller->pc()->GetSenders().size(), 0u);
+ EXPECT_GT(sender->GetParameters().header_extensions.size(), 0u);
+
+ ASSERT_GT(callee->pc()->GetReceivers().size(), 0u);
+ auto receiver = callee->pc()->GetReceivers()[0];
+ EXPECT_GT(receiver->GetParameters().header_extensions.size(), 0u);
+}
+
// Invokes SetRemoteDescription() twice in a row without synchronizing the two
// calls and examine the state of the peer connection inside the callbacks to
// ensure that the second call does not occur prematurely, contaminating the
diff --git a/pc/rtpsender.cc b/pc/rtpsender.cc
index b7e48cd..c7fe83f 100644
--- a/pc/rtpsender.cc
+++ b/pc/rtpsender.cc
@@ -68,7 +68,7 @@
// Returns true if any RtpParameters member that isn't implemented contains a
// value.
bool UnimplementedRtpParameterHasValue(const RtpParameters& parameters) {
- if (!parameters.mid.empty() || !parameters.header_extensions.empty() ||
+ if (!parameters.mid.empty() ||
parameters.degradation_preference != DegradationPreference::BALANCED) {
return true;
}
diff --git a/pc/rtpsenderreceiver_unittest.cc b/pc/rtpsenderreceiver_unittest.cc
index be0e975..1575e96 100644
--- a/pc/rtpsenderreceiver_unittest.cc
+++ b/pc/rtpsenderreceiver_unittest.cc
@@ -681,11 +681,6 @@
audio_rtp_sender_->SetParameters(params).type());
params = audio_rtp_sender_->GetParameters();
- params.header_extensions.emplace_back();
- EXPECT_EQ(RTCErrorType::UNSUPPORTED_PARAMETER,
- audio_rtp_sender_->SetParameters(params).type());
- params = audio_rtp_sender_->GetParameters();
-
ASSERT_EQ(DegradationPreference::BALANCED, params.degradation_preference);
params.degradation_preference = DegradationPreference::MAINTAIN_FRAMERATE;
EXPECT_EQ(RTCErrorType::UNSUPPORTED_PARAMETER,
@@ -879,11 +874,6 @@
video_rtp_sender_->SetParameters(params).type());
params = video_rtp_sender_->GetParameters();
- params.header_extensions.emplace_back();
- EXPECT_EQ(RTCErrorType::UNSUPPORTED_PARAMETER,
- video_rtp_sender_->SetParameters(params).type());
- params = video_rtp_sender_->GetParameters();
-
ASSERT_EQ(DegradationPreference::BALANCED, params.degradation_preference);
params.degradation_preference = DegradationPreference::MAINTAIN_FRAMERATE;
EXPECT_EQ(RTCErrorType::UNSUPPORTED_PARAMETER,