diff --git a/pc/media_session.cc b/pc/media_session.cc index 92fe80f3d1..e703b44101 100644 --- a/pc/media_session.cc +++ b/pc/media_session.cc @@ -684,11 +684,8 @@ static bool CreateContentOffer( if (extension_with_id.uri == extension.uri) { // TODO(crbug.com/1051821): Configure the extension direction from // the information in the media_description_options extension - // capability. For now, do not include stopped extensions. - // See also crbug.com/webrtc/7477 about the general lack of direction. - if (extension.direction != RtpTransceiverDirection::kStopped) { - extensions.push_back(extension_with_id); - } + // capability. + extensions.push_back(extension_with_id); } } } diff --git a/pc/media_session_unittest.cc b/pc/media_session_unittest.cc index 6dc6d76021..8f38f6a1b4 100644 --- a/pc/media_session_unittest.cc +++ b/pc/media_session_unittest.cc @@ -2018,7 +2018,7 @@ TEST_F(MediaSessionDescriptionFactoryTest, } TEST_F(MediaSessionDescriptionFactoryTest, - AllowsStoppedExtensionsToBeRemovedFromSubsequentOffer) { + AppendsStoppedExtensionIfKnownAndPresentInTheOffer) { MediaSessionOptions opts; AddMediaDescriptionOptions(MEDIA_TYPE_VIDEO, "video", RtpTransceiverDirection::kSendRecv, kActive, @@ -2043,7 +2043,8 @@ TEST_F(MediaSessionDescriptionFactoryTest, ElementsAre(Property( &ContentInfo::media_description, Pointee(Property(&MediaContentDescription::rtp_header_extensions, - ElementsAre(Field(&RtpExtension::uri, "uri1"))))))); + ElementsAre(Field(&RtpExtension::uri, "uri1"), + Field(&RtpExtension::uri, "uri2"))))))); } TEST_F(MediaSessionDescriptionFactoryTest, diff --git a/pc/peer_connection_header_extension_unittest.cc b/pc/peer_connection_header_extension_unittest.cc index 73a439d8bd..94d4401ca4 100644 --- a/pc/peer_connection_header_extension_unittest.cc +++ b/pc/peer_connection_header_extension_unittest.cc @@ -235,68 +235,6 @@ TEST_P(PeerConnectionHeaderExtensionTest, NegotiatedExtensionsAreAccessible) { RtpTransceiverDirection::kStopped))); } -TEST_P(PeerConnectionHeaderExtensionTest, OfferedExtensionsArePerTransceiver) { - cricket::MediaType media_type; - SdpSemantics semantics; - std::tie(media_type, semantics) = GetParam(); - if (semantics != SdpSemantics::kUnifiedPlan) - return; - std::unique_ptr pc1 = - CreatePeerConnection(media_type, semantics); - auto transceiver1 = pc1->AddTransceiver(media_type); - auto modified_extensions = transceiver1->GetHeaderExtensionsToNegotiate(); - modified_extensions[3].direction = RtpTransceiverDirection::kStopped; - transceiver1->SetHeaderExtensionsToNegotiate(modified_extensions); - auto transceiver2 = pc1->AddTransceiver(media_type); - - auto session_description = pc1->CreateOffer(); - EXPECT_THAT(session_description->description() - ->contents()[0] - .media_description() - ->rtp_header_extensions(), - ElementsAre(Field(&RtpExtension::uri, "uri2"), - Field(&RtpExtension::uri, "uri3"))); - EXPECT_THAT(session_description->description() - ->contents()[1] - .media_description() - ->rtp_header_extensions(), - ElementsAre(Field(&RtpExtension::uri, "uri2"), - Field(&RtpExtension::uri, "uri3"), - Field(&RtpExtension::uri, "uri4"))); -} - -TEST_P(PeerConnectionHeaderExtensionTest, RemovalAfterRenegotiation) { - cricket::MediaType media_type; - SdpSemantics semantics; - std::tie(media_type, semantics) = GetParam(); - if (semantics != SdpSemantics::kUnifiedPlan) - return; - std::unique_ptr pc1 = - CreatePeerConnection(media_type, semantics); - std::unique_ptr pc2 = - CreatePeerConnection(media_type, semantics); - auto transceiver1 = pc1->AddTransceiver(media_type); - - auto offer = pc1->CreateOfferAndSetAsLocal( - PeerConnectionInterface::RTCOfferAnswerOptions()); - pc2->SetRemoteDescription(std::move(offer)); - auto answer = pc2->CreateAnswerAndSetAsLocal( - PeerConnectionInterface::RTCOfferAnswerOptions()); - pc1->SetRemoteDescription(std::move(answer)); - - auto modified_extensions = transceiver1->GetHeaderExtensionsToNegotiate(); - modified_extensions[3].direction = RtpTransceiverDirection::kStopped; - modified_extensions[3].direction = RtpTransceiverDirection::kStopped; - transceiver1->SetHeaderExtensionsToNegotiate(modified_extensions); - auto session_description = pc1->CreateOffer(); - EXPECT_THAT(session_description->description() - ->contents()[0] - .media_description() - ->rtp_header_extensions(), - ElementsAre(Field(&RtpExtension::uri, "uri2"), - Field(&RtpExtension::uri, "uri3"))); -} - TEST_P(PeerConnectionHeaderExtensionTest, StoppedByDefaultExtensionCanBeActivatedByRemoteSdp) { cricket::MediaType media_type;