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
@ -25,7 +25,6 @@ using ::testing::ElementsAre;
|
||||
using ::testing::Eq;
|
||||
using ::testing::Field;
|
||||
using ::testing::Not;
|
||||
using ::testing::Property;
|
||||
using ::testing::Return;
|
||||
using ::testing::ReturnRef;
|
||||
|
||||
@ -79,95 +78,27 @@ TEST(RtpTransceiverTest, CanUnsetChannelOnStoppedTransceiver) {
|
||||
EXPECT_EQ(nullptr, transceiver.channel());
|
||||
}
|
||||
|
||||
class RtpTransceiverTestForHeaderExtensions : public ::testing::Test {
|
||||
public:
|
||||
RtpTransceiverTestForHeaderExtensions()
|
||||
: channel_manager_(std::make_unique<cricket::FakeMediaEngine>(),
|
||||
std::make_unique<cricket::FakeDataEngine>(),
|
||||
rtc::Thread::Current(),
|
||||
rtc::Thread::Current()),
|
||||
extensions_(
|
||||
{RtpHeaderExtensionCapability("uri1",
|
||||
1,
|
||||
RtpTransceiverDirection::kSendOnly),
|
||||
RtpHeaderExtensionCapability("uri2",
|
||||
2,
|
||||
RtpTransceiverDirection::kRecvOnly),
|
||||
RtpHeaderExtensionCapability(RtpExtension::kMidUri,
|
||||
3,
|
||||
RtpTransceiverDirection::kSendRecv),
|
||||
RtpHeaderExtensionCapability(RtpExtension::kVideoRotationUri,
|
||||
4,
|
||||
RtpTransceiverDirection::kSendRecv)}),
|
||||
transceiver_(RtpSenderProxyWithInternal<RtpSenderInternal>::Create(
|
||||
rtc::Thread::Current(),
|
||||
new rtc::RefCountedObject<MockRtpSenderInternal>()),
|
||||
RtpReceiverProxyWithInternal<RtpReceiverInternal>::Create(
|
||||
rtc::Thread::Current(),
|
||||
new rtc::RefCountedObject<MockRtpReceiverInternal>()),
|
||||
&channel_manager_,
|
||||
extensions_) {}
|
||||
|
||||
cricket::ChannelManager channel_manager_;
|
||||
std::vector<RtpHeaderExtensionCapability> extensions_;
|
||||
RtpTransceiver transceiver_;
|
||||
};
|
||||
|
||||
TEST_F(RtpTransceiverTestForHeaderExtensions, OffersChannelManagerList) {
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), extensions_);
|
||||
}
|
||||
|
||||
TEST_F(RtpTransceiverTestForHeaderExtensions, ModifiesDirection) {
|
||||
auto modified_extensions = extensions_;
|
||||
modified_extensions[0].direction = RtpTransceiverDirection::kSendOnly;
|
||||
EXPECT_TRUE(
|
||||
transceiver_.SetOfferedRtpHeaderExtensions(modified_extensions).ok());
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), modified_extensions);
|
||||
modified_extensions[0].direction = RtpTransceiverDirection::kRecvOnly;
|
||||
EXPECT_TRUE(
|
||||
transceiver_.SetOfferedRtpHeaderExtensions(modified_extensions).ok());
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), modified_extensions);
|
||||
modified_extensions[0].direction = RtpTransceiverDirection::kSendRecv;
|
||||
EXPECT_TRUE(
|
||||
transceiver_.SetOfferedRtpHeaderExtensions(modified_extensions).ok());
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), modified_extensions);
|
||||
modified_extensions[0].direction = RtpTransceiverDirection::kInactive;
|
||||
EXPECT_TRUE(
|
||||
transceiver_.SetOfferedRtpHeaderExtensions(modified_extensions).ok());
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), modified_extensions);
|
||||
}
|
||||
|
||||
TEST_F(RtpTransceiverTestForHeaderExtensions, AcceptsStoppedExtension) {
|
||||
auto modified_extensions = extensions_;
|
||||
modified_extensions[0].direction = RtpTransceiverDirection::kStopped;
|
||||
EXPECT_TRUE(
|
||||
transceiver_.SetOfferedRtpHeaderExtensions(modified_extensions).ok());
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), modified_extensions);
|
||||
}
|
||||
|
||||
TEST_F(RtpTransceiverTestForHeaderExtensions, RejectsUnsupportedExtension) {
|
||||
std::vector<RtpHeaderExtensionCapability> modified_extensions(
|
||||
{RtpHeaderExtensionCapability("uri3", 1,
|
||||
RtpTransceiverDirection::kSendRecv)});
|
||||
EXPECT_THAT(transceiver_.SetOfferedRtpHeaderExtensions(modified_extensions),
|
||||
Property(&RTCError::type, RTCErrorType::INVALID_PARAMETER));
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), extensions_);
|
||||
}
|
||||
|
||||
TEST_F(RtpTransceiverTestForHeaderExtensions,
|
||||
RejectsStoppedMandatoryExtensions) {
|
||||
std::vector<RtpHeaderExtensionCapability> modified_extensions = extensions_;
|
||||
// Attempting to stop the mandatory MID extension.
|
||||
modified_extensions[2].direction = RtpTransceiverDirection::kStopped;
|
||||
EXPECT_THAT(transceiver_.SetOfferedRtpHeaderExtensions(modified_extensions),
|
||||
Property(&RTCError::type, RTCErrorType::INVALID_MODIFICATION));
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), extensions_);
|
||||
modified_extensions = extensions_;
|
||||
// Attempting to stop the mandatory video orientation extension.
|
||||
modified_extensions[3].direction = RtpTransceiverDirection::kStopped;
|
||||
EXPECT_THAT(transceiver_.SetOfferedRtpHeaderExtensions(modified_extensions),
|
||||
Property(&RTCError::type, RTCErrorType::INVALID_MODIFICATION));
|
||||
EXPECT_EQ(transceiver_.HeaderExtensionsToOffer(), extensions_);
|
||||
TEST(RtpTransceiverTest,
|
||||
InitsWithChannelManagerRtpHeaderExtensionCapabilities) {
|
||||
cricket::ChannelManager channel_manager(
|
||||
std::make_unique<cricket::FakeMediaEngine>(),
|
||||
std::make_unique<cricket::FakeDataEngine>(), rtc::Thread::Current(),
|
||||
rtc::Thread::Current());
|
||||
std::vector<RtpHeaderExtensionCapability> extensions({
|
||||
RtpHeaderExtensionCapability("uri1", 1,
|
||||
RtpTransceiverDirection::kSendRecv),
|
||||
RtpHeaderExtensionCapability("uri2", 2,
|
||||
RtpTransceiverDirection::kRecvOnly),
|
||||
});
|
||||
RtpTransceiver transceiver(
|
||||
RtpSenderProxyWithInternal<RtpSenderInternal>::Create(
|
||||
rtc::Thread::Current(),
|
||||
new rtc::RefCountedObject<MockRtpSenderInternal>()),
|
||||
RtpReceiverProxyWithInternal<RtpReceiverInternal>::Create(
|
||||
rtc::Thread::Current(),
|
||||
new rtc::RefCountedObject<MockRtpReceiverInternal>()),
|
||||
&channel_manager, extensions);
|
||||
EXPECT_EQ(transceiver.HeaderExtensionsToOffer(), extensions);
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
Reference in New Issue
Block a user