aboutsummaryrefslogtreecommitdiff
path: root/talk/app
diff options
context:
space:
mode:
authorguoweis@webrtc.org <guoweis@webrtc.org>2014-12-12 19:21:14 +0000
committerguoweis@webrtc.org <guoweis@webrtc.org>2014-12-12 19:21:14 +0000
commit8c9d79a29d9127d4ff8aa4ae386630c72cfb1808 (patch)
treef42a03944b18db8f581eb6585989bb9b6f67acc1 /talk/app
parentc57310b982cdce138723de91d7b722f8199834ab (diff)
downloadwebrtc-8c9d79a29d9127d4ff8aa4ae386630c72cfb1808.tar.gz
Add adapter_type into Candidate object.
Expose adapter_type from Candidate such that we could add jmidata on top of this. Created a new type of report just for Ice candidate. The candidate's id is used as part of report identifier. This code change only reports the best connection's local candidate's adapter type. There should be cleaning later to move other candidate's attributes to the new report. This is migrated from issue 32599004 BUG= R=juberti@webrtc.org Review URL: https://webrtc-codereview.appspot.com/36379004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7885 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'talk/app')
-rw-r--r--talk/app/webrtc/jsepsessiondescription_unittest.cc3
-rw-r--r--talk/app/webrtc/statscollector.cc40
-rw-r--r--talk/app/webrtc/statscollector.h7
-rw-r--r--talk/app/webrtc/statscollector_unittest.cc102
-rw-r--r--talk/app/webrtc/statstypes.cc24
-rw-r--r--talk/app/webrtc/statstypes.h17
-rw-r--r--talk/app/webrtc/webrtcsdp.cc6
-rw-r--r--talk/app/webrtc/webrtcsdp_unittest.cc120
8 files changed, 239 insertions, 80 deletions
diff --git a/talk/app/webrtc/jsepsessiondescription_unittest.cc b/talk/app/webrtc/jsepsessiondescription_unittest.cc
index cf992c07fe..1c24c1ab2d 100644
--- a/talk/app/webrtc/jsepsessiondescription_unittest.cc
+++ b/talk/app/webrtc/jsepsessiondescription_unittest.cc
@@ -101,8 +101,7 @@ class JsepSessionDescriptionTest : public testing::Test {
int port = 1234;
rtc::SocketAddress address("127.0.0.1", port++);
cricket::Candidate candidate("rtp", cricket::ICE_CANDIDATE_COMPONENT_RTP,
- "udp", address, 1, "",
- "", "local", "eth0", 0, "1");
+ "udp", address, 1, "", "", "local", 0, "1");
candidate_ = candidate;
const std::string session_id =
rtc::ToString(rtc::CreateRandomId64());
diff --git a/talk/app/webrtc/statscollector.cc b/talk/app/webrtc/statscollector.cc
index 296c9cbffa..c0cfeb4a23 100644
--- a/talk/app/webrtc/statscollector.cc
+++ b/talk/app/webrtc/statscollector.cc
@@ -612,6 +612,37 @@ std::string StatsCollector::AddCertificateReports(
return AddOneCertificateReport(cert, issuer_id);
}
+std::string StatsCollector::AddCandidateReport(
+ const cricket::Candidate& candidate,
+ const std::string& report_type) {
+ std::ostringstream ost;
+ ost << "Cand-" << candidate.id();
+ StatsReport* report = reports_.Find(ost.str());
+ if (!report) {
+ report = reports_.InsertNew(ost.str());
+ DCHECK(StatsReport::kStatsReportTypeIceLocalCandidate == report_type ||
+ StatsReport::kStatsReportTypeIceRemoteCandidate == report_type);
+ report->type = report_type;
+ if (report_type == StatsReport::kStatsReportTypeIceLocalCandidate) {
+ report->AddValue(StatsReport::kStatsValueNameCandidateNetworkType,
+ rtc::AdapterTypeToStatsType(candidate.network_type()));
+ }
+ report->timestamp = stats_gathering_started_;
+ report->AddValue(StatsReport::kStatsValueNameCandidateIPAddress,
+ candidate.address().ipaddr().ToString());
+ report->AddValue(StatsReport::kStatsValueNameCandidatePortNumber,
+ candidate.address().PortAsString());
+ report->AddValue(StatsReport::kStatsValueNameCandidatePriority,
+ candidate.priority());
+ report->AddValue(StatsReport::kStatsValueNameCandidateType,
+ cricket::IceCandidateTypeToStatsType(candidate.type()));
+ report->AddValue(StatsReport::kStatsValueNameCandidateTransportType,
+ candidate.protocol());
+ }
+
+ return ost.str();
+}
+
void StatsCollector::ExtractSessionInfo() {
// Extract information from the base session.
StatsReport* report = reports_.ReplaceOrAddNew(
@@ -703,6 +734,15 @@ void StatsCollector::ExtractSessionInfo() {
info.readable);
report->AddBoolean(StatsReport::kStatsValueNameActiveConnection,
info.best_connection);
+ report->AddValue(StatsReport::kStatsValueNameLocalCandidateId,
+ AddCandidateReport(
+ info.local_candidate,
+ StatsReport::kStatsReportTypeIceLocalCandidate));
+ report->AddValue(
+ StatsReport::kStatsValueNameRemoteCandidateId,
+ AddCandidateReport(
+ info.remote_candidate,
+ StatsReport::kStatsReportTypeIceRemoteCandidate));
report->AddValue(StatsReport::kStatsValueNameLocalAddress,
info.local_candidate.address().ToString());
report->AddValue(StatsReport::kStatsValueNameRemoteAddress,
diff --git a/talk/app/webrtc/statscollector.h b/talk/app/webrtc/statscollector.h
index db2d78856d..dcd5b6c242 100644
--- a/talk/app/webrtc/statscollector.h
+++ b/talk/app/webrtc/statscollector.h
@@ -93,12 +93,19 @@ class StatsCollector {
void ClearUpdateStatsCache();
private:
+ friend class StatsCollectorTest;
+
bool CopySelectedReports(const std::string& selector, StatsReports* reports);
// Helper method for AddCertificateReports.
std::string AddOneCertificateReport(
const rtc::SSLCertificate* cert, const std::string& issuer_id);
+ // Helper method for creating IceCandidate report. |is_local| indicates
+ // whether this candidate is local or remote.
+ std::string AddCandidateReport(const cricket::Candidate& candidate,
+ const std::string& report_type);
+
// Adds a report for this certificate and every certificate in its chain, and
// returns the leaf certificate's report's ID.
std::string AddCertificateReports(const rtc::SSLCertificate* cert);
diff --git a/talk/app/webrtc/statscollector_unittest.cc b/talk/app/webrtc/statscollector_unittest.cc
index c573a880fe..31d41b8a10 100644
--- a/talk/app/webrtc/statscollector_unittest.cc
+++ b/talk/app/webrtc/statscollector_unittest.cc
@@ -42,6 +42,7 @@
#include "webrtc/base/base64.h"
#include "webrtc/base/fakesslidentity.h"
#include "webrtc/base/gunit.h"
+#include "webrtc/base/network.h"
using cricket::StatsOptions;
using testing::_;
@@ -61,7 +62,7 @@ class FakeDeviceManager;
} // namespace cricket
-namespace {
+namespace webrtc {
// Error return values
const char kNotFound[] = "NOT FOUND";
@@ -501,6 +502,12 @@ class StatsCollectorTest : public testing::Test {
.WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true)));
}
+ std::string AddCandidateReport(StatsCollector* collector,
+ const cricket::Candidate& candidate,
+ const std::string& report_type) {
+ return collector->AddCandidateReport(candidate, report_type);
+ }
+
void SetupAndVerifyAudioTrackStats(
FakeAudioTrack* audio_track,
webrtc::MediaStream* stream,
@@ -1016,6 +1023,97 @@ TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) {
EXPECT_EQ(kRemoteTrackId, track_id);
}
+// This test verifies the Ice Candidate report should contain the correct
+// information from local/remote candidates.
+TEST_F(StatsCollectorTest, IceCandidateReport) {
+ webrtc::StatsCollector stats(&session_); // Implementation under test.
+ StatsReports reports; // returned values.
+
+ const int local_port = 2000;
+ const char local_ip[] = "192.168.0.1";
+ const int remote_port = 2001;
+ const char remote_ip[] = "192.168.0.2";
+
+ rtc::SocketAddress local_address(local_ip, local_port);
+ rtc::SocketAddress remote_address(remote_ip, remote_port);
+ rtc::AdapterType network_type = rtc::ADAPTER_TYPE_ETHERNET;
+ uint32 priority = 1000;
+
+ cricket::Candidate c;
+ const std::string& local_id = rtc::CreateRandomString(8);
+ c.set_id(local_id);
+ c.set_type(cricket::LOCAL_PORT_TYPE);
+ c.set_protocol(cricket::UDP_PROTOCOL_NAME);
+ c.set_address(local_address);
+ c.set_priority(priority);
+ c.set_network_type(network_type);
+ std::string report_id = AddCandidateReport(
+ &stats, c, StatsReport::kStatsReportTypeIceLocalCandidate);
+ EXPECT_EQ("Cand-" + local_id, report_id);
+
+ const std::string& remote_id = rtc::CreateRandomString(8);
+ c.set_id(remote_id);
+ c.set_type(cricket::PRFLX_PORT_TYPE);
+ c.set_address(remote_address);
+ report_id = AddCandidateReport(
+ &stats, c, StatsReport::kStatsReportTypeIceRemoteCandidate);
+ EXPECT_EQ("Cand-" + remote_id, report_id);
+
+ stats.GetStats(NULL, &reports);
+
+ // Verify the local candidate report is populated correctly.
+ EXPECT_EQ(
+ local_ip,
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceLocalCandidate, reports,
+ StatsReport::kStatsValueNameCandidateIPAddress));
+ EXPECT_EQ(
+ rtc::ToString<int>(local_port),
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceLocalCandidate, reports,
+ StatsReport::kStatsValueNameCandidatePortNumber));
+ EXPECT_EQ(
+ cricket::UDP_PROTOCOL_NAME,
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceLocalCandidate, reports,
+ StatsReport::kStatsValueNameCandidateTransportType));
+ EXPECT_EQ(
+ rtc::ToString<int>(priority),
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceLocalCandidate, reports,
+ StatsReport::kStatsValueNameCandidatePriority));
+ EXPECT_EQ(
+ cricket::IceCandidateTypeToStatsType(cricket::LOCAL_PORT_TYPE),
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceLocalCandidate, reports,
+ StatsReport::kStatsValueNameCandidateType));
+ EXPECT_EQ(
+ rtc::AdapterTypeToStatsType(network_type),
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceLocalCandidate, reports,
+ StatsReport::kStatsValueNameCandidateNetworkType));
+
+ // Verify the remote candidate report is populated correctly.
+ EXPECT_EQ(remote_ip,
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceRemoteCandidate,
+ reports,
+ StatsReport::kStatsValueNameCandidateIPAddress));
+ EXPECT_EQ(rtc::ToString<int>(remote_port),
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceRemoteCandidate,
+ reports,
+ StatsReport::kStatsValueNameCandidatePortNumber));
+ EXPECT_EQ(cricket::UDP_PROTOCOL_NAME,
+ ExtractStatsValue(
+ StatsReport::kStatsReportTypeIceRemoteCandidate, reports,
+ StatsReport::kStatsValueNameCandidateTransportType));
+ EXPECT_EQ(rtc::ToString<int>(priority),
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceRemoteCandidate,
+ reports,
+ StatsReport::kStatsValueNameCandidatePriority));
+ EXPECT_EQ(
+ cricket::IceCandidateTypeToStatsType(cricket::PRFLX_PORT_TYPE),
+ ExtractStatsValue(StatsReport::kStatsReportTypeIceRemoteCandidate,
+ reports, StatsReport::kStatsValueNameCandidateType));
+ EXPECT_EQ(kNotFound,
+ ExtractStatsValue(
+ StatsReport::kStatsReportTypeIceRemoteCandidate, reports,
+ StatsReport::kStatsValueNameCandidateNetworkType));
+}
+
// This test verifies that all chained certificates are correctly
// reported
TEST_F(StatsCollectorTest, ChainedCertificateReportsCreated) {
@@ -1461,4 +1559,4 @@ TEST_F(StatsCollectorTest, TwoLocalTracksWithSameSsrc) {
media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports);
}
-} // namespace
+} // namespace webrtc
diff --git a/talk/app/webrtc/statstypes.cc b/talk/app/webrtc/statstypes.cc
index 8547520069..fd96b1070c 100644
--- a/talk/app/webrtc/statstypes.cc
+++ b/talk/app/webrtc/statstypes.cc
@@ -34,7 +34,9 @@ const char StatsReport::kStatsReportTypeBwe[] = "VideoBwe";
const char StatsReport::kStatsReportTypeRemoteSsrc[] = "remoteSsrc";
const char StatsReport::kStatsReportTypeSsrc[] = "ssrc";
const char StatsReport::kStatsReportTypeTrack[] = "googTrack";
-const char StatsReport::kStatsReportTypeIceCandidate[] = "iceCandidate";
+const char StatsReport::kStatsReportTypeIceLocalCandidate[] = "localcandidate";
+const char StatsReport::kStatsReportTypeIceRemoteCandidate[] =
+ "remotecandidate";
const char StatsReport::kStatsReportTypeTransport[] = "googTransport";
const char StatsReport::kStatsReportTypeComponent[] = "googComponent";
const char StatsReport::kStatsReportTypeCandidatePair[] = "googCandidatePair";
@@ -135,6 +137,22 @@ const char* StatsReport::Value::display_name() const {
return "googCaptureJitterMs";
case kStatsValueNameCaptureQueueDelayMsPerS:
return "googCaptureQueueDelayMsPerS";
+
+ // Candidate related attributes. Values are taken from
+ // http://w3c.github.io/webrtc-stats/#rtcstatstype-enum*.
+ case kStatsValueNameCandidateIPAddress:
+ return "ipAddress";
+ case kStatsValueNameCandidateNetworkType:
+ return "networkType";
+ case kStatsValueNameCandidatePortNumber:
+ return "portNumber";
+ case kStatsValueNameCandidatePriority:
+ return "priority";
+ case kStatsValueNameCandidateTransportType:
+ return "transport";
+ case kStatsValueNameCandidateType:
+ return "candidateType";
+
case kStatsValueNameChannelId:
return "googChannelId";
case kStatsValueNameCodecName:
@@ -227,6 +245,8 @@ const char* StatsReport::Value::display_name() const {
return "googJitterReceived";
case kStatsValueNameLocalAddress:
return "googLocalAddress";
+ case kStatsValueNameLocalCandidateId:
+ return "localCandidateId";
case kStatsValueNameLocalCandidateType:
return "googLocalCandidateType";
case kStatsValueNameLocalCertificateId:
@@ -253,6 +273,8 @@ const char* StatsReport::Value::display_name() const {
return "googReceivedPacketGroupPropagationDeltaSumDebug";
case kStatsValueNameRemoteAddress:
return "googRemoteAddress";
+ case kStatsValueNameRemoteCandidateId:
+ return "remoteCandidateId";
case kStatsValueNameRemoteCandidateType:
return "googRemoteCandidateType";
case kStatsValueNameRemoteCertificateId:
diff --git a/talk/app/webrtc/statstypes.h b/talk/app/webrtc/statstypes.h
index d47dc18534..bca771c378 100644
--- a/talk/app/webrtc/statstypes.h
+++ b/talk/app/webrtc/statstypes.h
@@ -97,6 +97,12 @@ class StatsReport {
kStatsValueNameCaptureJitterMs,
kStatsValueNameCaptureQueueDelayMsPerS,
kStatsValueNameCaptureStartNtpTimeMs,
+ kStatsValueNameCandidateIPAddress,
+ kStatsValueNameCandidateNetworkType,
+ kStatsValueNameCandidatePortNumber,
+ kStatsValueNameCandidatePriority,
+ kStatsValueNameCandidateTransportType,
+ kStatsValueNameCandidateType,
kStatsValueNameChannelId,
kStatsValueNameCodecName,
kStatsValueNameComponent,
@@ -138,6 +144,7 @@ class StatsReport {
kStatsValueNameJitterBufferMs,
kStatsValueNameJitterReceived,
kStatsValueNameLocalAddress,
+ kStatsValueNameLocalCandidateId,
kStatsValueNameLocalCandidateType,
kStatsValueNameLocalCertificateId,
kStatsValueNameMaxDecodeMs,
@@ -151,6 +158,7 @@ class StatsReport {
kStatsValueNameRecvPacketGroupPropagationDeltaDebug,
kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug,
kStatsValueNameRemoteAddress,
+ kStatsValueNameRemoteCandidateId,
kStatsValueNameRemoteCandidateType,
kStatsValueNameRemoteCertificateId,
kStatsValueNameRenderDelayMs,
@@ -237,9 +245,12 @@ class StatsReport {
// track. The |id| field is the track id.
static const char kStatsReportTypeTrack[];
- // StatsReport of |type| = "iceCandidate" is statistics on a specific
- // ICE Candidate. It links to its transport.
- static const char kStatsReportTypeIceCandidate[];
+ // StatsReport of |type| = "localcandidate" or "remotecandidate" is attributes
+ // on a specific ICE Candidate. It links to its connection pair by candidate
+ // id. The string value is taken from
+ // http://w3c.github.io/webrtc-stats/#rtcstatstype-enum*.
+ static const char kStatsReportTypeIceLocalCandidate[];
+ static const char kStatsReportTypeIceRemoteCandidate[];
// A StatsReport of |type| = "googCertificate" contains an SSL certificate
// transmitted by one of the endpoints of this connection. The |id| is
diff --git a/talk/app/webrtc/webrtcsdp.cc b/talk/app/webrtc/webrtcsdp.cc
index c7b34c4845..226b8b0f49 100644
--- a/talk/app/webrtc/webrtcsdp.cc
+++ b/talk/app/webrtc/webrtcsdp.cc
@@ -1089,12 +1089,10 @@ bool ParseCandidate(const std::string& message, Candidate* candidate,
}
}
- // Empty string as the candidate id and network name.
const std::string id;
- const std::string network_name;
*candidate = Candidate(id, component_id, cricket::ProtoToString(protocol),
- address, priority, username, password, candidate_type, network_name,
- generation, foundation);
+ address, priority, username, password, candidate_type,
+ generation, foundation);
candidate->set_related_address(related_address);
candidate->set_tcptype(tcptype);
return true;
diff --git a/talk/app/webrtc/webrtcsdp_unittest.cc b/talk/app/webrtc/webrtcsdp_unittest.cc
index 8655487432..cc684d2ce5 100644
--- a/talk/app/webrtc/webrtcsdp_unittest.cc
+++ b/talk/app/webrtc/webrtcsdp_unittest.cc
@@ -588,88 +588,74 @@ class WebRtcSdpTest : public testing::Test {
// v4 host
int port = 1234;
rtc::SocketAddress address("192.168.1.5", port++);
- Candidate candidate1(
- "", ICE_CANDIDATE_COMPONENT_RTP, "udp", address, kCandidatePriority,
- "", "", LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation1);
+ Candidate candidate1("", ICE_CANDIDATE_COMPONENT_RTP, "udp", address,
+ kCandidatePriority, "", "", LOCAL_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation1);
address.SetPort(port++);
- Candidate candidate2(
- "", ICE_CANDIDATE_COMPONENT_RTCP, "udp", address, kCandidatePriority,
- "", "", LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation1);
+ Candidate candidate2("", ICE_CANDIDATE_COMPONENT_RTCP, "udp", address,
+ kCandidatePriority, "", "", LOCAL_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation1);
address.SetPort(port++);
- Candidate candidate3(
- "", ICE_CANDIDATE_COMPONENT_RTCP, "udp", address, kCandidatePriority,
- "", "", LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation1);
+ Candidate candidate3("", ICE_CANDIDATE_COMPONENT_RTCP, "udp", address,
+ kCandidatePriority, "", "", LOCAL_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation1);
address.SetPort(port++);
- Candidate candidate4(
- "", ICE_CANDIDATE_COMPONENT_RTP, "udp", address, kCandidatePriority,
- "", "", LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation1);
+ Candidate candidate4("", ICE_CANDIDATE_COMPONENT_RTP, "udp", address,
+ kCandidatePriority, "", "", LOCAL_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation1);
// v6 host
rtc::SocketAddress v6_address("::1", port++);
- cricket::Candidate candidate5(
- "", cricket::ICE_CANDIDATE_COMPONENT_RTP,
- "udp", v6_address, kCandidatePriority,
- "", "", cricket::LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation2);
+ cricket::Candidate candidate5("", cricket::ICE_CANDIDATE_COMPONENT_RTP,
+ "udp", v6_address, kCandidatePriority, "", "",
+ cricket::LOCAL_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation2);
v6_address.SetPort(port++);
- cricket::Candidate candidate6(
- "", cricket::ICE_CANDIDATE_COMPONENT_RTCP,
- "udp", v6_address, kCandidatePriority,
- "", "", cricket::LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation2);
+ cricket::Candidate candidate6("", cricket::ICE_CANDIDATE_COMPONENT_RTCP,
+ "udp", v6_address, kCandidatePriority, "", "",
+ cricket::LOCAL_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation2);
v6_address.SetPort(port++);
- cricket::Candidate candidate7(
- "", cricket::ICE_CANDIDATE_COMPONENT_RTCP,
- "udp", v6_address, kCandidatePriority,
- "", "", cricket::LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation2);
+ cricket::Candidate candidate7("", cricket::ICE_CANDIDATE_COMPONENT_RTCP,
+ "udp", v6_address, kCandidatePriority, "", "",
+ cricket::LOCAL_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation2);
v6_address.SetPort(port++);
- cricket::Candidate candidate8(
- "", cricket::ICE_CANDIDATE_COMPONENT_RTP,
- "udp", v6_address, kCandidatePriority,
- "", "", cricket::LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation2);
+ cricket::Candidate candidate8("", cricket::ICE_CANDIDATE_COMPONENT_RTP,
+ "udp", v6_address, kCandidatePriority, "", "",
+ cricket::LOCAL_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation2);
// stun
int port_stun = 2345;
rtc::SocketAddress address_stun("74.125.127.126", port_stun++);
rtc::SocketAddress rel_address_stun("192.168.1.5", port_stun++);
- cricket::Candidate candidate9
- ("", cricket::ICE_CANDIDATE_COMPONENT_RTP,
- "udp", address_stun, kCandidatePriority,
- "", "", STUN_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation3);
+ cricket::Candidate candidate9("", cricket::ICE_CANDIDATE_COMPONENT_RTP,
+ "udp", address_stun, kCandidatePriority, "",
+ "", STUN_PORT_TYPE, kCandidateGeneration,
+ kCandidateFoundation3);
candidate9.set_related_address(rel_address_stun);
address_stun.SetPort(port_stun++);
rel_address_stun.SetPort(port_stun++);
- cricket::Candidate candidate10(
- "", cricket::ICE_CANDIDATE_COMPONENT_RTCP,
- "udp", address_stun, kCandidatePriority,
- "", "", STUN_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation3);
+ cricket::Candidate candidate10("", cricket::ICE_CANDIDATE_COMPONENT_RTCP,
+ "udp", address_stun, kCandidatePriority, "",
+ "", STUN_PORT_TYPE, kCandidateGeneration,
+ kCandidateFoundation3);
candidate10.set_related_address(rel_address_stun);
// relay
int port_relay = 3456;
rtc::SocketAddress address_relay("74.125.224.39", port_relay++);
- cricket::Candidate candidate11(
- "", cricket::ICE_CANDIDATE_COMPONENT_RTCP,
- "udp", address_relay, kCandidatePriority,
- "", "",
- cricket::RELAY_PORT_TYPE, "",
- kCandidateGeneration, kCandidateFoundation4);
+ cricket::Candidate candidate11("", cricket::ICE_CANDIDATE_COMPONENT_RTCP,
+ "udp", address_relay, kCandidatePriority, "",
+ "", cricket::RELAY_PORT_TYPE,
+ kCandidateGeneration, kCandidateFoundation4);
address_relay.SetPort(port_relay++);
- cricket::Candidate candidate12(
- "", cricket::ICE_CANDIDATE_COMPONENT_RTP,
- "udp", address_relay, kCandidatePriority,
- "", "",
- RELAY_PORT_TYPE, "",
- kCandidateGeneration, kCandidateFoundation4);
+ cricket::Candidate candidate12("", cricket::ICE_CANDIDATE_COMPONENT_RTP,
+ "udp", address_relay, kCandidatePriority, "",
+ "", RELAY_PORT_TYPE, kCandidateGeneration,
+ kCandidateFoundation4);
// voice
candidates_.push_back(candidate1);
@@ -1642,11 +1628,10 @@ TEST_F(WebRtcSdpTest, SerializeCandidates) {
// TODO(mallinath) : Enable this test once WebRTCSdp capable of parsing
// RFC 6544.
TEST_F(WebRtcSdpTest, SerializeTcpCandidates) {
- Candidate candidate(
- "", ICE_CANDIDATE_COMPONENT_RTP, "tcp",
- rtc::SocketAddress("192.168.1.5", 9), kCandidatePriority,
- "", "", LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation1);
+ Candidate candidate("", ICE_CANDIDATE_COMPONENT_RTP, "tcp",
+ rtc::SocketAddress("192.168.1.5", 9), kCandidatePriority,
+ "", "", LOCAL_PORT_TYPE, kCandidateGeneration,
+ kCandidateFoundation1);
candidate.set_tcptype(cricket::TCPTYPE_ACTIVE_STR);
rtc::scoped_ptr<IceCandidateInterface> jcandidate(
new JsepIceCandidate(std::string("audio_content_name"), 0, candidate));
@@ -1936,11 +1921,10 @@ TEST_F(WebRtcSdpTest, DeserializeCandidate) {
sdp = kSdpTcpActiveCandidate;
EXPECT_TRUE(SdpDeserializeCandidate(sdp, &jcandidate));
// Make a cricket::Candidate equivalent to kSdpTcpCandidate string.
- Candidate candidate(
- "", ICE_CANDIDATE_COMPONENT_RTP, "tcp",
- rtc::SocketAddress("192.168.1.5", 9), kCandidatePriority,
- "", "", LOCAL_PORT_TYPE,
- "", kCandidateGeneration, kCandidateFoundation1);
+ Candidate candidate("", ICE_CANDIDATE_COMPONENT_RTP, "tcp",
+ rtc::SocketAddress("192.168.1.5", 9), kCandidatePriority,
+ "", "", LOCAL_PORT_TYPE, kCandidateGeneration,
+ kCandidateFoundation1);
rtc::scoped_ptr<IceCandidateInterface> jcandidate_template(
new JsepIceCandidate(std::string("audio_content_name"), 0, candidate));
EXPECT_TRUE(jcandidate.candidate().IsEquivalent(