Serialize "a=x-google-flag:conference".

There was a test for deserialization but not serialization. This was
probably always broken and no one noticed. I only noticed while
debugging something else.

BUG=None
TBR=pthatcher@webrtc.org

Review-Url: https://codereview.webrtc.org/3012383002
Cr-Commit-Position: refs/heads/master@{#19875}
This commit is contained in:
deadbeef 2017-09-16 01:24:29 -07:00 committed by Commit Bot
parent 5ada7acf60
commit d45aea8f42
2 changed files with 27 additions and 0 deletions

View File

@ -1508,6 +1508,12 @@ void BuildRtpContentAttributes(const MediaContentDescription* media_desc,
AddLine(os.str(), message);
}
if (media_desc->conference_mode()) {
InitAttrLine(kAttributeXGoogleFlag, &os);
os << kSdpDelimiterColon << kValueConference;
AddLine(os.str(), message);
}
// RFC 4568
// a=crypto:<tag> <crypto-suite> <key-params> [<session-params>]
for (std::vector<CryptoParams>::const_iterator it =

View File

@ -2777,6 +2777,27 @@ TEST_F(WebRtcSdpTest, DeserializeSdpWithConferenceFlag) {
EXPECT_TRUE(video->conference_mode());
}
TEST_F(WebRtcSdpTest, SerializeSdpWithConferenceFlag) {
JsepSessionDescription jdesc(kDummyString);
// We tested deserialization already above, so just test that if we serialize
// and deserialize the flag doesn't disappear.
EXPECT_TRUE(SdpDeserialize(kSdpConferenceString, &jdesc));
std::string reserialized = webrtc::SdpSerialize(jdesc, false);
EXPECT_TRUE(SdpDeserialize(reserialized, &jdesc));
// Verify.
cricket::AudioContentDescription* audio =
static_cast<AudioContentDescription*>(
jdesc.description()->GetContentDescriptionByName(cricket::CN_AUDIO));
EXPECT_TRUE(audio->conference_mode());
cricket::VideoContentDescription* video =
static_cast<VideoContentDescription*>(
jdesc.description()->GetContentDescriptionByName(cricket::CN_VIDEO));
EXPECT_TRUE(video->conference_mode());
}
TEST_F(WebRtcSdpTest, DeserializeBrokenSdp) {
const char kSdpDestroyer[] = "!@#$%^&";
const char kSdpEmptyType[] = " =candidate";