Reland "introduce an unsupported content description type"

This is a reland of 239f92ecf7fc8ca27e0376dd192b33ce33377b3c

Original change's description:
> introduce an unsupported content description type
>
> This carries around unsupported content descriptions
> (i.e. things where webrtc does not understand the media type
> or protocol) in a special data type so that a rejected content or
> mediasection is added to the answer SDP.
>
> BUG=webrtc:3513
>
> Change-Id: Ifc4168eae11e899f2504649de5e1eecb6801a9fb
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179082
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
> Cr-Commit-Position: refs/heads/master@{#32410}

Bug: webrtc:3513
Change-Id: I48e338100f829f1df5b8165217c89b5ef860fe79
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188820
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32457}
This commit is contained in:
Philipp Hancke
2020-10-13 12:43:15 +02:00
committed by Commit Bot
parent f5a3d2b650
commit 4e8c115960
14 changed files with 291 additions and 29 deletions

View File

@ -2991,7 +2991,8 @@ TEST_F(WebRtcSdpTest, DeserializeSdpWithSctpDataChannelsButWrongMediaType) {
JsepSessionDescription jdesc_output(kDummyType);
EXPECT_TRUE(SdpDeserialize(sdp, &jdesc_output));
EXPECT_EQ(0u, jdesc_output.description()->contents().size());
EXPECT_EQ(1u, jdesc_output.description()->contents().size());
EXPECT_TRUE(jdesc_output.description()->contents()[0].rejected);
}
// Helper function to set the max-message-size parameter in the
@ -4725,21 +4726,32 @@ TEST_F(WebRtcSdpTest, DeserializeSessionDescriptionWithoutCname) {
}
TEST_F(WebRtcSdpTest, DeserializeSdpWithUnsupportedMediaType) {
bool use_sctpmap = true;
AddSctpDataChannel(use_sctpmap);
JsepSessionDescription jdesc(kDummyType);
ASSERT_TRUE(jdesc.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
std::string sdp = kSdpSessionString;
sdp +=
"m=bogus 9 RTP/SAVPF 0 8\r\n"
"c=IN IP4 0.0.0.0\r\n";
"c=IN IP4 0.0.0.0\r\n"
"a=mid:bogusmid\r\n";
sdp +=
"m=audio/something 9 RTP/SAVPF 0 8\r\n"
"c=IN IP4 0.0.0.0\r\n";
"c=IN IP4 0.0.0.0\r\n"
"a=mid:somethingmid\r\n";
JsepSessionDescription jdesc_output(kDummyType);
EXPECT_TRUE(SdpDeserialize(sdp, &jdesc_output));
EXPECT_EQ(0u, jdesc_output.description()->contents().size());
ASSERT_EQ(2u, jdesc_output.description()->contents().size());
ASSERT_NE(nullptr, jdesc_output.description()
->contents()[0]
.media_description()
->as_unsupported());
ASSERT_NE(nullptr, jdesc_output.description()
->contents()[1]
.media_description()
->as_unsupported());
EXPECT_TRUE(jdesc_output.description()->contents()[0].rejected);
EXPECT_TRUE(jdesc_output.description()->contents()[1].rejected);
EXPECT_EQ(jdesc_output.description()->contents()[0].name, "bogusmid");
EXPECT_EQ(jdesc_output.description()->contents()[1].name, "somethingmid");
}