- Filter data channel codecs based on codec name instead of payload type, which may have been remapped.
- Rename the data codec payload types to end with "PlType" instead of "Id", for consistency.
BUG=webrtc:2795
Review-Url: https://codereview.webrtc.org/2397413002
Cr-Commit-Position: refs/heads/master@{#14581}
diff --git a/webrtc/api/webrtcsdp.cc b/webrtc/api/webrtcsdp.cc
index 4df4ef8..28c8be0 100644
--- a/webrtc/api/webrtcsdp.cc
+++ b/webrtc/api/webrtcsdp.cc
@@ -1260,8 +1260,8 @@
for (std::vector<cricket::DataCodec>::const_iterator it =
data_desc->codecs().begin();
it != data_desc->codecs().end(); ++it) {
- if (it->id == cricket::kGoogleSctpDataCodecId &&
- it->GetParam(cricket::kCodecParamPort, &sctp_port)) {
+ if (cricket::CodecNamesEq(it->name, cricket::kGoogleSctpDataCodecName)
+ && it->GetParam(cricket::kCodecParamPort, &sctp_port)) {
break;
}
}
@@ -1651,13 +1651,15 @@
bool AddSctpDataCodec(DataContentDescription* media_desc,
int sctp_port) {
- if (media_desc->HasCodec(cricket::kGoogleSctpDataCodecId)) {
- return ParseFailed("",
- "Can't have multiple sctp port attributes.",
- NULL);
+ for (const auto& codec : media_desc->codecs()) {
+ if (cricket::CodecNamesEq(codec.name, cricket::kGoogleSctpDataCodecName)) {
+ return ParseFailed("",
+ "Can't have multiple sctp port attributes.",
+ NULL);
+ }
}
// Add the SCTP Port number as a pseudo-codec "port" parameter
- cricket::DataCodec codec_port(cricket::kGoogleSctpDataCodecId,
+ cricket::DataCodec codec_port(cricket::kGoogleSctpDataCodecPlType,
cricket::kGoogleSctpDataCodecName);
codec_port.SetParam(cricket::kCodecParamPort, sctp_port);
LOG(INFO) << "AddSctpDataCodec: Got SCTP Port Number "
@@ -2185,9 +2187,7 @@
return;
}
RTC_DCHECK(media_desc->codecs().empty());
- std::vector<int>::const_iterator it = fmts.begin();
- for (; it != fmts.end(); ++it) {
- int payload_type = *it;
+ for (int payload_type : fmts) {
if (!media_desc->HasCodec(payload_type) &&
payload_type >= 0 &&
static_cast<uint32_t>(payload_type) <
diff --git a/webrtc/api/webrtcsdp_unittest.cc b/webrtc/api/webrtcsdp_unittest.cc
index 1672268..2faec7e 100644
--- a/webrtc/api/webrtcsdp_unittest.cc
+++ b/webrtc/api/webrtcsdp_unittest.cc
@@ -1395,7 +1395,7 @@
std::unique_ptr<DataContentDescription> data(new DataContentDescription());
data_desc_ = data.get();
data_desc_->set_protocol(cricket::kMediaProtocolDtlsSctp);
- DataCodec codec(cricket::kGoogleSctpDataCodecId,
+ DataCodec codec(cricket::kGoogleSctpDataCodecPlType,
cricket::kGoogleSctpDataCodecName);
codec.SetParam(cricket::kCodecParamPort, kDefaultSctpPort);
data_desc_->AddCodec(codec);
@@ -1990,7 +1990,7 @@
jsep_desc.description()->GetContentDescriptionByName(kDataContentName));
const int kNewPort = 1234;
- cricket::DataCodec codec(cricket::kGoogleSctpDataCodecId,
+ cricket::DataCodec codec(cricket::kGoogleSctpDataCodecPlType,
cricket::kGoogleSctpDataCodecName);
codec.SetParam(cricket::kCodecParamPort, kNewPort);
dcdesc->AddOrReplaceCodec(codec);
@@ -2605,7 +2605,7 @@
mutant->GetContentDescriptionByName(kDataContentName));
std::vector<cricket::DataCodec> codecs(dcdesc->codecs());
EXPECT_EQ(1U, codecs.size());
- EXPECT_EQ(cricket::kGoogleSctpDataCodecId, codecs[0].id);
+ EXPECT_EQ(cricket::kGoogleSctpDataCodecPlType, codecs[0].id);
codecs[0].SetParam(cricket::kCodecParamPort, kUnusualSctpPort);
dcdesc->set_codecs(codecs);
diff --git a/webrtc/api/webrtcsession_unittest.cc b/webrtc/api/webrtcsession_unittest.cc
index ba9ea2b..800ad3c 100644
--- a/webrtc/api/webrtcsession_unittest.cc
+++ b/webrtc/api/webrtcsession_unittest.cc
@@ -3967,7 +3967,7 @@
int portnum = -1;
ASSERT_TRUE(ch != NULL);
ASSERT_EQ(1UL, ch->send_codecs().size());
- EXPECT_EQ(cricket::kGoogleSctpDataCodecId, ch->send_codecs()[0].id);
+ EXPECT_EQ(cricket::kGoogleSctpDataCodecPlType, ch->send_codecs()[0].id);
EXPECT_EQ(0, strcmp(cricket::kGoogleSctpDataCodecName,
ch->send_codecs()[0].name.c_str()));
EXPECT_TRUE(ch->send_codecs()[0].GetParam(cricket::kCodecParamPort,
@@ -3975,7 +3975,7 @@
EXPECT_EQ(new_send_port, portnum);
ASSERT_EQ(1UL, ch->recv_codecs().size());
- EXPECT_EQ(cricket::kGoogleSctpDataCodecId, ch->recv_codecs()[0].id);
+ EXPECT_EQ(cricket::kGoogleSctpDataCodecPlType, ch->recv_codecs()[0].id);
EXPECT_EQ(0, strcmp(cricket::kGoogleSctpDataCodecName,
ch->recv_codecs()[0].name.c_str()));
EXPECT_TRUE(ch->recv_codecs()[0].GetParam(cricket::kCodecParamPort,