diff --git a/webrtc/api/webrtcsdp.cc b/webrtc/api/webrtcsdp.cc index 4df4ef8566..28c8be07e2 100644 --- a/webrtc/api/webrtcsdp.cc +++ b/webrtc/api/webrtcsdp.cc @@ -1260,8 +1260,8 @@ void BuildMediaDescription(const ContentInfo* content_info, for (std::vector::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 @@ void AddRtcpFbLines(const T& codec, std::string* message) { 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 @@ void MaybeCreateStaticPayloadAudioCodecs( return; } RTC_DCHECK(media_desc->codecs().empty()); - std::vector::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(payload_type) < diff --git a/webrtc/api/webrtcsdp_unittest.cc b/webrtc/api/webrtcsdp_unittest.cc index 16722689a2..2faec7e4fe 100644 --- a/webrtc/api/webrtcsdp_unittest.cc +++ b/webrtc/api/webrtcsdp_unittest.cc @@ -1395,7 +1395,7 @@ class WebRtcSdpTest : public testing::Test { std::unique_ptr 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 @@ TEST_F(WebRtcSdpTest, SerializeWithSctpDataChannelAndNewPort) { 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 @@ TEST_F(WebRtcSdpTest, DeserializeSdpWithSctpDataChannelAndNewPort) { mutant->GetContentDescriptionByName(kDataContentName)); std::vector 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 ba9ea2b438..800ad3c715 100644 --- a/webrtc/api/webrtcsession_unittest.cc +++ b/webrtc/api/webrtcsession_unittest.cc @@ -3967,7 +3967,7 @@ TEST_P(WebRtcSessionTest, TestSctpDataChannelSendPortParsing) { 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 @@ TEST_P(WebRtcSessionTest, TestSctpDataChannelSendPortParsing) { 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, diff --git a/webrtc/media/base/mediaconstants.cc b/webrtc/media/base/mediaconstants.cc index 640c67e893..557732e193 100644 --- a/webrtc/media/base/mediaconstants.cc +++ b/webrtc/media/base/mediaconstants.cc @@ -83,10 +83,10 @@ const char kCodecParamStartBitrate[] = "x-google-start-bitrate"; const char kCodecParamMaxQuantization[] = "x-google-max-quantization"; const char kCodecParamPort[] = "x-google-port"; -const int kGoogleRtpDataCodecId = 101; +const int kGoogleRtpDataCodecPlType = 109; const char kGoogleRtpDataCodecName[] = "google-data"; -const int kGoogleSctpDataCodecId = 108; +const int kGoogleSctpDataCodecPlType = 108; const char kGoogleSctpDataCodecName[] = "google-sctp-data"; const char kComfortNoiseCodecName[] = "CN"; diff --git a/webrtc/media/base/mediaconstants.h b/webrtc/media/base/mediaconstants.h index 506308a9ee..28fd5e088a 100644 --- a/webrtc/media/base/mediaconstants.h +++ b/webrtc/media/base/mediaconstants.h @@ -106,13 +106,13 @@ extern const char kCodecParamPort[]; // We put the data codec names here so callers of // DataEngine::CreateChannel don't have to import rtpdataengine.h or // sctpdataengine.h to get the codec names they want to pass in. -extern const int kGoogleRtpDataCodecId; +extern const int kGoogleRtpDataCodecPlType; extern const char kGoogleRtpDataCodecName[]; // TODO(pthatcher): Find an id that won't conflict with anything. On // the other hand, it really shouldn't matter since the id won't be // used on the wire. -extern const int kGoogleSctpDataCodecId; +extern const int kGoogleSctpDataCodecPlType; extern const char kGoogleSctpDataCodecName[]; extern const char kComfortNoiseCodecName[]; diff --git a/webrtc/media/base/rtpdataengine.cc b/webrtc/media/base/rtpdataengine.cc index 99aa3b14a5..6c3837d70d 100644 --- a/webrtc/media/base/rtpdataengine.cc +++ b/webrtc/media/base/rtpdataengine.cc @@ -35,7 +35,7 @@ static const size_t kMaxSrtpHmacOverhead = 16; RtpDataEngine::RtpDataEngine() { data_codecs_.push_back( - DataCodec(kGoogleRtpDataCodecId, kGoogleRtpDataCodecName)); + DataCodec(kGoogleRtpDataCodecPlType, kGoogleRtpDataCodecName)); } DataMediaChannel* RtpDataEngine::CreateChannel( @@ -84,7 +84,7 @@ void RtpClock::Tick(double now, int* seq_num, uint32_t* timestamp) { } const DataCodec* FindUnknownCodec(const std::vector& codecs) { - DataCodec data_codec(kGoogleRtpDataCodecId, kGoogleRtpDataCodecName); + DataCodec data_codec(kGoogleRtpDataCodecPlType, kGoogleRtpDataCodecName); std::vector::const_iterator iter; for (iter = codecs.begin(); iter != codecs.end(); ++iter) { if (!iter->Matches(data_codec)) { @@ -95,7 +95,7 @@ const DataCodec* FindUnknownCodec(const std::vector& codecs) { } const DataCodec* FindKnownCodec(const std::vector& codecs) { - DataCodec data_codec(kGoogleRtpDataCodecId, kGoogleRtpDataCodecName); + DataCodec data_codec(kGoogleRtpDataCodecPlType, kGoogleRtpDataCodecName); std::vector::const_iterator iter; for (iter = codecs.begin(); iter != codecs.end(); ++iter) { if (iter->Matches(data_codec)) { diff --git a/webrtc/media/sctp/sctpdataengine.cc b/webrtc/media/sctp/sctpdataengine.cc index 0804fed769..79754251e3 100644 --- a/webrtc/media/sctp/sctpdataengine.cc +++ b/webrtc/media/sctp/sctpdataengine.cc @@ -320,7 +320,7 @@ void DecrementUsrSctpUsageCount() { } DataCodec GetSctpDataCodec() { - DataCodec codec(kGoogleSctpDataCodecId, kGoogleSctpDataCodecName); + DataCodec codec(kGoogleSctpDataCodecPlType, kGoogleSctpDataCodecName); codec.SetParam(kCodecParamPort, kSctpDefaultPort); return codec; } @@ -985,14 +985,14 @@ static bool GetCodecIntParameter(const std::vector& codecs, bool SctpDataMediaChannel::SetSendCodecs(const std::vector& codecs) { return GetCodecIntParameter( - codecs, kGoogleSctpDataCodecId, kGoogleSctpDataCodecName, kCodecParamPort, - &remote_port_); + codecs, kGoogleSctpDataCodecPlType, kGoogleSctpDataCodecName, + kCodecParamPort, &remote_port_); } bool SctpDataMediaChannel::SetRecvCodecs(const std::vector& codecs) { return GetCodecIntParameter( - codecs, kGoogleSctpDataCodecId, kGoogleSctpDataCodecName, kCodecParamPort, - &local_port_); + codecs, kGoogleSctpDataCodecPlType, kGoogleSctpDataCodecName, + kCodecParamPort, &local_port_); } void SctpDataMediaChannel::OnPacketFromSctpToNetwork( diff --git a/webrtc/pc/mediasession.cc b/webrtc/pc/mediasession.cc index bfb5692f0f..ebba9acbcb 100644 --- a/webrtc/pc/mediasession.cc +++ b/webrtc/pc/mediasession.cc @@ -302,10 +302,11 @@ static void GetCurrentStreamParams(const SessionDescription* sdesc, // Filters the data codecs for the data channel type. void FilterDataCodecs(std::vector* codecs, bool sctp) { // Filter RTP codec for SCTP and vice versa. - int codec_id = sctp ? kGoogleRtpDataCodecId : kGoogleSctpDataCodecId; + const char* codec_name = + sctp ? kGoogleRtpDataCodecName : kGoogleSctpDataCodecName; for (std::vector::iterator iter = codecs->begin(); iter != codecs->end();) { - if (iter->id == codec_id) { + if (CodecNamesEq(iter->name, codec_name)) { iter = codecs->erase(iter); } else { ++iter;