Revert "RtpTransceiverInterface: introduce SetOfferedRtpHeaderExtensions."
This reverts commit 71db9acc4019b8c9c13b14e6a022cbb3b4255b09. Reason for revert: breaks downstream project. Reason for force push: win bot broken. Original change's description: > RtpTransceiverInterface: introduce SetOfferedRtpHeaderExtensions. > > This change adds exposure of a new transceiver method for > modifying the extensions offered in the next SDP negotiation, > following spec details in https://w3c.github.io/webrtc-extensions/#rtcrtptransceiver-interface. > > Features: > - The interface allows to control the negotiated direction as > per https://tools.ietf.org/html/rfc5285#page-7. > - The interface allows to remove an extension from SDP > negotiation by modifying the direction to > RtpTransceiverDirection::kStopped. > > Note: support for signalling directionality of header extensions > in the SDP isn't implemented yet. > > https://chromestatus.com/feature/5680189201711104. > Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/65YdUi02yZk > > Bug: chromium:1051821 > Change-Id: Iaabc34446f038c46d93c442e90c2a77f77d542d4 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176408 > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > Commit-Queue: Markus Handell <handellm@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#31487} TBR=hta@webrtc.org,handellm@webrtc.org # Not skipping CQ checks because original CL landed > 1 day ago. No-Try: true Bug: chromium:1051821 Change-Id: I70e1a07225d7eeec7480fa5577d8ff647eba6902 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177103 Commit-Queue: Markus Handell <handellm@webrtc.org> Reviewed-by: Markus Handell <handellm@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31516}
This commit is contained in:
committed by
Commit Bot
parent
4d11c02ad3
commit
6f727da62b
@ -33,31 +33,16 @@ class PeerConnectionHeaderExtensionTest
|
||||
: public ::testing::TestWithParam<
|
||||
std::tuple<cricket::MediaType, SdpSemantics>> {
|
||||
protected:
|
||||
PeerConnectionHeaderExtensionTest()
|
||||
: extensions_(
|
||||
{RtpHeaderExtensionCapability("uri1",
|
||||
1,
|
||||
RtpTransceiverDirection::kStopped),
|
||||
RtpHeaderExtensionCapability("uri2",
|
||||
2,
|
||||
RtpTransceiverDirection::kSendOnly),
|
||||
RtpHeaderExtensionCapability("uri3",
|
||||
3,
|
||||
RtpTransceiverDirection::kRecvOnly),
|
||||
RtpHeaderExtensionCapability(
|
||||
"uri4",
|
||||
4,
|
||||
RtpTransceiverDirection::kSendRecv)}) {}
|
||||
|
||||
std::unique_ptr<PeerConnectionWrapper> CreatePeerConnection(
|
||||
cricket::MediaType media_type,
|
||||
absl::optional<SdpSemantics> semantics) {
|
||||
absl::optional<SdpSemantics> semantics,
|
||||
std::vector<RtpHeaderExtensionCapability> extensions) {
|
||||
auto voice = std::make_unique<cricket::FakeVoiceEngine>();
|
||||
auto video = std::make_unique<cricket::FakeVideoEngine>();
|
||||
if (media_type == cricket::MediaType::MEDIA_TYPE_AUDIO)
|
||||
voice->SetRtpHeaderExtensions(extensions_);
|
||||
voice->SetRtpHeaderExtensions(extensions);
|
||||
else
|
||||
video->SetRtpHeaderExtensions(extensions_);
|
||||
video->SetRtpHeaderExtensions(extensions);
|
||||
auto media_engine = std::make_unique<cricket::CompositeMediaEngine>(
|
||||
std::move(voice), std::move(video));
|
||||
PeerConnectionFactoryDependencies factory_dependencies;
|
||||
@ -86,8 +71,6 @@ class PeerConnectionHeaderExtensionTest
|
||||
return std::make_unique<PeerConnectionWrapper>(pc_factory, pc,
|
||||
std::move(observer));
|
||||
}
|
||||
|
||||
std::vector<RtpHeaderExtensionCapability> extensions_;
|
||||
};
|
||||
|
||||
TEST_P(PeerConnectionHeaderExtensionTest, TransceiverOffersHeaderExtensions) {
|
||||
@ -96,10 +79,19 @@ TEST_P(PeerConnectionHeaderExtensionTest, TransceiverOffersHeaderExtensions) {
|
||||
std::tie(media_type, semantics) = GetParam();
|
||||
if (semantics != SdpSemantics::kUnifiedPlan)
|
||||
return;
|
||||
std::vector<RtpHeaderExtensionCapability> extensions(
|
||||
{RtpHeaderExtensionCapability("uri1", 1,
|
||||
RtpTransceiverDirection::kStopped),
|
||||
RtpHeaderExtensionCapability("uri2", 2,
|
||||
RtpTransceiverDirection::kSendOnly),
|
||||
RtpHeaderExtensionCapability("uri3", 3,
|
||||
RtpTransceiverDirection::kRecvOnly),
|
||||
RtpHeaderExtensionCapability("uri4", 4,
|
||||
RtpTransceiverDirection::kSendRecv)});
|
||||
std::unique_ptr<PeerConnectionWrapper> wrapper =
|
||||
CreatePeerConnection(media_type, semantics);
|
||||
CreatePeerConnection(media_type, semantics, extensions);
|
||||
auto transceiver = wrapper->AddTransceiver(media_type);
|
||||
EXPECT_EQ(transceiver->HeaderExtensionsToOffer(), extensions_);
|
||||
EXPECT_EQ(transceiver->HeaderExtensionsToOffer(), extensions);
|
||||
}
|
||||
|
||||
TEST_P(PeerConnectionHeaderExtensionTest,
|
||||
@ -107,14 +99,20 @@ TEST_P(PeerConnectionHeaderExtensionTest,
|
||||
cricket::MediaType media_type;
|
||||
SdpSemantics semantics;
|
||||
std::tie(media_type, semantics) = GetParam();
|
||||
std::unique_ptr<PeerConnectionWrapper> wrapper =
|
||||
CreatePeerConnection(media_type, semantics);
|
||||
std::unique_ptr<PeerConnectionWrapper> wrapper = CreatePeerConnection(
|
||||
media_type, semantics,
|
||||
std::vector<RtpHeaderExtensionCapability>(
|
||||
{RtpHeaderExtensionCapability("uri1", 1,
|
||||
RtpTransceiverDirection::kSendRecv),
|
||||
RtpHeaderExtensionCapability("uri2", 2,
|
||||
RtpTransceiverDirection::kStopped),
|
||||
RtpHeaderExtensionCapability("uri3", 3,
|
||||
RtpTransceiverDirection::kRecvOnly)}));
|
||||
EXPECT_THAT(wrapper->pc_factory()
|
||||
->GetRtpSenderCapabilities(media_type)
|
||||
.header_extensions,
|
||||
ElementsAre(Field(&RtpHeaderExtensionCapability::uri, "uri2"),
|
||||
Field(&RtpHeaderExtensionCapability::uri, "uri3"),
|
||||
Field(&RtpHeaderExtensionCapability::uri, "uri4")));
|
||||
ElementsAre(Field(&RtpHeaderExtensionCapability::uri, "uri1"),
|
||||
Field(&RtpHeaderExtensionCapability::uri, "uri3")));
|
||||
EXPECT_EQ(wrapper->pc_factory()
|
||||
->GetRtpReceiverCapabilities(media_type)
|
||||
.header_extensions,
|
||||
@ -123,49 +121,6 @@ TEST_P(PeerConnectionHeaderExtensionTest,
|
||||
.header_extensions);
|
||||
}
|
||||
|
||||
TEST_P(PeerConnectionHeaderExtensionTest, OffersUnstoppedDefaultExtensions) {
|
||||
cricket::MediaType media_type;
|
||||
SdpSemantics semantics;
|
||||
std::tie(media_type, semantics) = GetParam();
|
||||
if (semantics != SdpSemantics::kUnifiedPlan)
|
||||
return;
|
||||
std::unique_ptr<PeerConnectionWrapper> wrapper =
|
||||
CreatePeerConnection(media_type, semantics);
|
||||
auto transceiver = wrapper->AddTransceiver(media_type);
|
||||
auto session_description = wrapper->CreateOffer();
|
||||
EXPECT_THAT(session_description->description()
|
||||
->contents()[0]
|
||||
.media_description()
|
||||
->rtp_header_extensions(),
|
||||
ElementsAre(Field(&RtpExtension::uri, "uri2"),
|
||||
Field(&RtpExtension::uri, "uri3"),
|
||||
Field(&RtpExtension::uri, "uri4")));
|
||||
}
|
||||
|
||||
TEST_P(PeerConnectionHeaderExtensionTest, OffersUnstoppedModifiedExtensions) {
|
||||
cricket::MediaType media_type;
|
||||
SdpSemantics semantics;
|
||||
std::tie(media_type, semantics) = GetParam();
|
||||
if (semantics != SdpSemantics::kUnifiedPlan)
|
||||
return;
|
||||
std::unique_ptr<PeerConnectionWrapper> wrapper =
|
||||
CreatePeerConnection(media_type, semantics);
|
||||
auto transceiver = wrapper->AddTransceiver(media_type);
|
||||
auto modified_extensions = transceiver->HeaderExtensionsToOffer();
|
||||
modified_extensions[0].direction = RtpTransceiverDirection::kSendRecv;
|
||||
modified_extensions[3].direction = RtpTransceiverDirection::kStopped;
|
||||
EXPECT_TRUE(
|
||||
transceiver->SetOfferedRtpHeaderExtensions(modified_extensions).ok());
|
||||
auto session_description = wrapper->CreateOffer();
|
||||
EXPECT_THAT(session_description->description()
|
||||
->contents()[0]
|
||||
.media_description()
|
||||
->rtp_header_extensions(),
|
||||
ElementsAre(Field(&RtpExtension::uri, "uri1"),
|
||||
Field(&RtpExtension::uri, "uri2"),
|
||||
Field(&RtpExtension::uri, "uri3")));
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(
|
||||
,
|
||||
PeerConnectionHeaderExtensionTest,
|
||||
|
||||
Reference in New Issue
Block a user