Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Side by Side Diff: webrtc/pc/rtcstatscollector.cc

Issue 2670343002: Refactor and clean-up relating to RTCCodecStats. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/api/stats/rtcstats_objects.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 18 matching lines...) Expand all
29 namespace webrtc { 29 namespace webrtc {
30 30
31 namespace { 31 namespace {
32 32
33 std::string RTCCertificateIDFromFingerprint(const std::string& fingerprint) { 33 std::string RTCCertificateIDFromFingerprint(const std::string& fingerprint) {
34 return "RTCCertificate_" + fingerprint; 34 return "RTCCertificate_" + fingerprint;
35 } 35 }
36 36
37 std::string RTCCodecStatsIDFromDirectionMediaAndPayload( 37 std::string RTCCodecStatsIDFromDirectionMediaAndPayload(
38 bool inbound, bool audio, uint32_t payload_type) { 38 bool inbound, bool audio, uint32_t payload_type) {
39 // TODO(hbos): When we are able to handle multiple m= lines of the same media 39 // TODO(hbos): The present codec ID assignment is not sufficient to support
40 // type (and multiple BaseChannels for the same type is possible?) this needs 40 // Unified Plan or unbundled connections in all cases. When we are able to
41 // to be updated to differentiate the transport being used, and stats need to 41 // handle multiple m= lines of the same media type (and multiple BaseChannels
42 // be collected for all of them. crbug.com/659117 42 // for the same type is possible?) this needs to be updated to differentiate
43 // the transport being used, and stats need to be collected for all of them.
43 if (inbound) { 44 if (inbound) {
44 return audio ? "RTCCodec_InboundAudio_" + rtc::ToString<>(payload_type) 45 return audio ? "RTCCodec_InboundAudio_" + rtc::ToString<>(payload_type)
45 : "RTCCodec_InboundVideo_" + rtc::ToString<>(payload_type); 46 : "RTCCodec_InboundVideo_" + rtc::ToString<>(payload_type);
46 } 47 }
47 return audio ? "RTCCodec_OutboundAudio_" + rtc::ToString<>(payload_type) 48 return audio ? "RTCCodec_OutboundAudio_" + rtc::ToString<>(payload_type)
48 : "RTCCodec_OutboundVideo_" + rtc::ToString<>(payload_type); 49 : "RTCCodec_OutboundVideo_" + rtc::ToString<>(payload_type);
49 } 50 }
50 51
51 std::string RTCIceCandidatePairStatsIDFromConnectionInfo( 52 std::string RTCIceCandidatePairStatsIDFromConnectionInfo(
52 const cricket::ConnectionInfo& info) { 53 const cricket::ConnectionInfo& info) {
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 } 189 }
189 190
190 // Provides the media independent counters (both audio and video). 191 // Provides the media independent counters (both audio and video).
191 void SetInboundRTPStreamStatsFromMediaReceiverInfo( 192 void SetInboundRTPStreamStatsFromMediaReceiverInfo(
192 const cricket::MediaReceiverInfo& media_receiver_info, 193 const cricket::MediaReceiverInfo& media_receiver_info,
193 RTCInboundRTPStreamStats* inbound_stats) { 194 RTCInboundRTPStreamStats* inbound_stats) {
194 RTC_DCHECK(inbound_stats); 195 RTC_DCHECK(inbound_stats);
195 inbound_stats->ssrc = rtc::ToString<>(media_receiver_info.ssrc()); 196 inbound_stats->ssrc = rtc::ToString<>(media_receiver_info.ssrc());
196 // TODO(hbos): Support the remote case. crbug.com/657855 197 // TODO(hbos): Support the remote case. crbug.com/657855
197 inbound_stats->is_remote = false; 198 inbound_stats->is_remote = false;
198 // TODO(hbos): Set |codec_id| when we have |RTCCodecStats|. Maybe relevant:
199 // |media_receiver_info.codec_name|. crbug.com/657854, 657855, 659117
hbos 2017/02/03 15:18:32 This is an old TODO that has already been resolved
200 inbound_stats->packets_received = 199 inbound_stats->packets_received =
201 static_cast<uint32_t>(media_receiver_info.packets_rcvd); 200 static_cast<uint32_t>(media_receiver_info.packets_rcvd);
202 inbound_stats->bytes_received = 201 inbound_stats->bytes_received =
203 static_cast<uint64_t>(media_receiver_info.bytes_rcvd); 202 static_cast<uint64_t>(media_receiver_info.bytes_rcvd);
204 inbound_stats->packets_lost = 203 inbound_stats->packets_lost =
205 static_cast<uint32_t>(media_receiver_info.packets_lost); 204 static_cast<uint32_t>(media_receiver_info.packets_lost);
206 inbound_stats->fraction_lost = 205 inbound_stats->fraction_lost =
207 static_cast<double>(media_receiver_info.fraction_lost); 206 static_cast<double>(media_receiver_info.fraction_lost);
208 } 207 }
209 208
210 void SetInboundRTPStreamStatsFromVoiceReceiverInfo( 209 void SetInboundRTPStreamStatsFromVoiceReceiverInfo(
211 const cricket::VoiceReceiverInfo& voice_receiver_info, 210 const cricket::VoiceReceiverInfo& voice_receiver_info,
212 RTCInboundRTPStreamStats* inbound_audio) { 211 RTCInboundRTPStreamStats* inbound_audio) {
213 SetInboundRTPStreamStatsFromMediaReceiverInfo( 212 SetInboundRTPStreamStatsFromMediaReceiverInfo(
214 voice_receiver_info, inbound_audio); 213 voice_receiver_info, inbound_audio);
215 inbound_audio->media_type = "audio"; 214 inbound_audio->media_type = "audio";
215 if (voice_receiver_info.codec_payload_type) {
216 inbound_audio->codec_id =
217 RTCCodecStatsIDFromDirectionMediaAndPayload(
218 true, true, *voice_receiver_info.codec_payload_type);
219 }
hbos 2017/02/03 15:18:32 The refactoring was to move this to here. Previous
216 inbound_audio->jitter = 220 inbound_audio->jitter =
217 static_cast<double>(voice_receiver_info.jitter_ms) / 221 static_cast<double>(voice_receiver_info.jitter_ms) /
218 rtc::kNumMillisecsPerSec; 222 rtc::kNumMillisecsPerSec;
219 // |fir_count|, |pli_count| and |sli_count| are only valid for video and are 223 // |fir_count|, |pli_count| and |sli_count| are only valid for video and are
220 // purposefully left undefined for audio. 224 // purposefully left undefined for audio.
221 } 225 }
222 226
223 void SetInboundRTPStreamStatsFromVideoReceiverInfo( 227 void SetInboundRTPStreamStatsFromVideoReceiverInfo(
224 const cricket::VideoReceiverInfo& video_receiver_info, 228 const cricket::VideoReceiverInfo& video_receiver_info,
225 RTCInboundRTPStreamStats* inbound_video) { 229 RTCInboundRTPStreamStats* inbound_video) {
226 SetInboundRTPStreamStatsFromMediaReceiverInfo( 230 SetInboundRTPStreamStatsFromMediaReceiverInfo(
227 video_receiver_info, inbound_video); 231 video_receiver_info, inbound_video);
228 inbound_video->media_type = "video"; 232 inbound_video->media_type = "video";
233 if (video_receiver_info.codec_payload_type) {
234 inbound_video->codec_id =
235 RTCCodecStatsIDFromDirectionMediaAndPayload(
236 true, false, *video_receiver_info.codec_payload_type);
237 }
229 inbound_video->fir_count = 238 inbound_video->fir_count =
230 static_cast<uint32_t>(video_receiver_info.firs_sent); 239 static_cast<uint32_t>(video_receiver_info.firs_sent);
231 inbound_video->pli_count = 240 inbound_video->pli_count =
232 static_cast<uint32_t>(video_receiver_info.plis_sent); 241 static_cast<uint32_t>(video_receiver_info.plis_sent);
233 inbound_video->nack_count = 242 inbound_video->nack_count =
234 static_cast<uint32_t>(video_receiver_info.nacks_sent); 243 static_cast<uint32_t>(video_receiver_info.nacks_sent);
235 inbound_video->frames_decoded = video_receiver_info.frames_decoded; 244 inbound_video->frames_decoded = video_receiver_info.frames_decoded;
236 } 245 }
237 246
238 // Provides the media independent counters (both audio and video). 247 // Provides the media independent counters (both audio and video).
239 void SetOutboundRTPStreamStatsFromMediaSenderInfo( 248 void SetOutboundRTPStreamStatsFromMediaSenderInfo(
240 const cricket::MediaSenderInfo& media_sender_info, 249 const cricket::MediaSenderInfo& media_sender_info,
241 RTCOutboundRTPStreamStats* outbound_stats) { 250 RTCOutboundRTPStreamStats* outbound_stats) {
242 RTC_DCHECK(outbound_stats); 251 RTC_DCHECK(outbound_stats);
243 outbound_stats->ssrc = rtc::ToString<>(media_sender_info.ssrc()); 252 outbound_stats->ssrc = rtc::ToString<>(media_sender_info.ssrc());
244 // TODO(hbos): Support the remote case. crbug.com/657856 253 // TODO(hbos): Support the remote case. crbug.com/657856
245 outbound_stats->is_remote = false; 254 outbound_stats->is_remote = false;
246 // TODO(hbos): Set |codec_id| when we have |RTCCodecStats|. Maybe relevant:
247 // |media_sender_info.codec_name|. crbug.com/657854, 657856, 659117
248 outbound_stats->packets_sent = 255 outbound_stats->packets_sent =
249 static_cast<uint32_t>(media_sender_info.packets_sent); 256 static_cast<uint32_t>(media_sender_info.packets_sent);
250 outbound_stats->bytes_sent = 257 outbound_stats->bytes_sent =
251 static_cast<uint64_t>(media_sender_info.bytes_sent); 258 static_cast<uint64_t>(media_sender_info.bytes_sent);
252 if (media_sender_info.rtt_ms >= 0) { 259 if (media_sender_info.rtt_ms >= 0) {
253 outbound_stats->round_trip_time = static_cast<double>( 260 outbound_stats->round_trip_time = static_cast<double>(
254 media_sender_info.rtt_ms) / rtc::kNumMillisecsPerSec; 261 media_sender_info.rtt_ms) / rtc::kNumMillisecsPerSec;
255 } 262 }
256 } 263 }
257 264
258 void SetOutboundRTPStreamStatsFromVoiceSenderInfo( 265 void SetOutboundRTPStreamStatsFromVoiceSenderInfo(
259 const cricket::VoiceSenderInfo& voice_sender_info, 266 const cricket::VoiceSenderInfo& voice_sender_info,
260 RTCOutboundRTPStreamStats* outbound_audio) { 267 RTCOutboundRTPStreamStats* outbound_audio) {
261 SetOutboundRTPStreamStatsFromMediaSenderInfo( 268 SetOutboundRTPStreamStatsFromMediaSenderInfo(
262 voice_sender_info, outbound_audio); 269 voice_sender_info, outbound_audio);
263 outbound_audio->media_type = "audio"; 270 outbound_audio->media_type = "audio";
271 if (voice_sender_info.codec_payload_type) {
272 outbound_audio->codec_id =
273 RTCCodecStatsIDFromDirectionMediaAndPayload(
274 false, true, *voice_sender_info.codec_payload_type);
275 }
264 // |fir_count|, |pli_count| and |sli_count| are only valid for video and are 276 // |fir_count|, |pli_count| and |sli_count| are only valid for video and are
265 // purposefully left undefined for audio. 277 // purposefully left undefined for audio.
266 } 278 }
267 279
268 void SetOutboundRTPStreamStatsFromVideoSenderInfo( 280 void SetOutboundRTPStreamStatsFromVideoSenderInfo(
269 const cricket::VideoSenderInfo& video_sender_info, 281 const cricket::VideoSenderInfo& video_sender_info,
270 RTCOutboundRTPStreamStats* outbound_video) { 282 RTCOutboundRTPStreamStats* outbound_video) {
271 SetOutboundRTPStreamStatsFromMediaSenderInfo( 283 SetOutboundRTPStreamStatsFromMediaSenderInfo(
272 video_sender_info, outbound_video); 284 video_sender_info, outbound_video);
273 outbound_video->media_type = "video"; 285 outbound_video->media_type = "video";
286 if (video_sender_info.codec_payload_type) {
287 outbound_video->codec_id =
288 RTCCodecStatsIDFromDirectionMediaAndPayload(
289 false, false, *video_sender_info.codec_payload_type);
290 }
274 outbound_video->fir_count = 291 outbound_video->fir_count =
275 static_cast<uint32_t>(video_sender_info.firs_rcvd); 292 static_cast<uint32_t>(video_sender_info.firs_rcvd);
276 outbound_video->pli_count = 293 outbound_video->pli_count =
277 static_cast<uint32_t>(video_sender_info.plis_rcvd); 294 static_cast<uint32_t>(video_sender_info.plis_rcvd);
278 outbound_video->nack_count = 295 outbound_video->nack_count =
279 static_cast<uint32_t>(video_sender_info.nacks_rcvd); 296 static_cast<uint32_t>(video_sender_info.nacks_rcvd);
280 if (video_sender_info.qp_sum) 297 if (video_sender_info.qp_sum)
281 outbound_video->qp_sum = *video_sender_info.qp_sum; 298 outbound_video->qp_sum = *video_sender_info.qp_sum;
282 outbound_video->frames_encoded = video_sender_info.frames_encoded; 299 outbound_video->frames_encoded = video_sender_info.frames_encoded;
283 } 300 }
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 if (audio_track) { 948 if (audio_track) {
932 RTC_DCHECK(track_to_id_.find(audio_track.get()) != track_to_id_.end()); 949 RTC_DCHECK(track_to_id_.find(audio_track.get()) != track_to_id_.end());
933 inbound_audio->track_id = 950 inbound_audio->track_id =
934 RTCMediaStreamTrackStatsIDFromTrackKindIDAndSsrc( 951 RTCMediaStreamTrackStatsIDFromTrackKindIDAndSsrc(
935 false, 952 false,
936 MediaStreamTrackInterface::kAudioKind, 953 MediaStreamTrackInterface::kAudioKind,
937 track_to_id_.find(audio_track.get())->second, 954 track_to_id_.find(audio_track.get())->second,
938 voice_receiver_info.ssrc()); 955 voice_receiver_info.ssrc());
939 } 956 }
940 inbound_audio->transport_id = transport_id; 957 inbound_audio->transport_id = transport_id;
941 if (voice_receiver_info.codec_payload_type) {
942 inbound_audio->codec_id =
943 RTCCodecStatsIDFromDirectionMediaAndPayload(
944 true, true, *voice_receiver_info.codec_payload_type);
945 }
946 report->AddStats(std::move(inbound_audio)); 958 report->AddStats(std::move(inbound_audio));
947 } 959 }
948 // Outbound 960 // Outbound
949 for (const cricket::VoiceSenderInfo& voice_sender_info : 961 for (const cricket::VoiceSenderInfo& voice_sender_info :
950 track_media_info_map.voice_media_info()->senders) { 962 track_media_info_map.voice_media_info()->senders) {
951 // TODO(nisse): SSRC == 0 currently means none. Delete check when that 963 // TODO(nisse): SSRC == 0 currently means none. Delete check when that
952 // is fixed. 964 // is fixed.
953 if (voice_sender_info.ssrc() == 0) 965 if (voice_sender_info.ssrc() == 0)
954 continue; 966 continue;
955 std::unique_ptr<RTCOutboundRTPStreamStats> outbound_audio( 967 std::unique_ptr<RTCOutboundRTPStreamStats> outbound_audio(
956 new RTCOutboundRTPStreamStats( 968 new RTCOutboundRTPStreamStats(
957 RTCOutboundRTPStreamStatsIDFromSSRC( 969 RTCOutboundRTPStreamStatsIDFromSSRC(
958 true, voice_sender_info.ssrc()), 970 true, voice_sender_info.ssrc()),
959 timestamp_us)); 971 timestamp_us));
960 SetOutboundRTPStreamStatsFromVoiceSenderInfo( 972 SetOutboundRTPStreamStatsFromVoiceSenderInfo(
961 voice_sender_info, outbound_audio.get()); 973 voice_sender_info, outbound_audio.get());
962 rtc::scoped_refptr<AudioTrackInterface> audio_track = 974 rtc::scoped_refptr<AudioTrackInterface> audio_track =
963 track_media_info_map_->GetAudioTrack(voice_sender_info); 975 track_media_info_map_->GetAudioTrack(voice_sender_info);
964 if (audio_track) { 976 if (audio_track) {
965 RTC_DCHECK(track_to_id_.find(audio_track.get()) != track_to_id_.end()); 977 RTC_DCHECK(track_to_id_.find(audio_track.get()) != track_to_id_.end());
966 outbound_audio->track_id = 978 outbound_audio->track_id =
967 RTCMediaStreamTrackStatsIDFromTrackKindIDAndSsrc( 979 RTCMediaStreamTrackStatsIDFromTrackKindIDAndSsrc(
968 true, 980 true,
969 MediaStreamTrackInterface::kAudioKind, 981 MediaStreamTrackInterface::kAudioKind,
970 track_to_id_.find(audio_track.get())->second, 982 track_to_id_.find(audio_track.get())->second,
971 voice_sender_info.ssrc()); 983 voice_sender_info.ssrc());
972 } 984 }
973 outbound_audio->transport_id = transport_id; 985 outbound_audio->transport_id = transport_id;
974 if (voice_sender_info.codec_payload_type) {
975 outbound_audio->codec_id =
976 RTCCodecStatsIDFromDirectionMediaAndPayload(
977 false, true, *voice_sender_info.codec_payload_type);
978 }
979 report->AddStats(std::move(outbound_audio)); 986 report->AddStats(std::move(outbound_audio));
980 } 987 }
981 } 988 }
982 // Video 989 // Video
983 if (track_media_info_map.video_media_info()) { 990 if (track_media_info_map.video_media_info()) {
984 std::string transport_id = RTCTransportStatsIDFromBaseChannel( 991 std::string transport_id = RTCTransportStatsIDFromBaseChannel(
985 session_stats.proxy_to_transport, *pc_->session()->video_channel()); 992 session_stats.proxy_to_transport, *pc_->session()->video_channel());
986 RTC_DCHECK(!transport_id.empty()); 993 RTC_DCHECK(!transport_id.empty());
987 // Inbound 994 // Inbound
988 for (const cricket::VideoReceiverInfo& video_receiver_info : 995 for (const cricket::VideoReceiverInfo& video_receiver_info :
(...skipping 14 matching lines...) Expand all
1003 if (video_track) { 1010 if (video_track) {
1004 RTC_DCHECK(track_to_id_.find(video_track.get()) != track_to_id_.end()); 1011 RTC_DCHECK(track_to_id_.find(video_track.get()) != track_to_id_.end());
1005 inbound_video->track_id = 1012 inbound_video->track_id =
1006 RTCMediaStreamTrackStatsIDFromTrackKindIDAndSsrc( 1013 RTCMediaStreamTrackStatsIDFromTrackKindIDAndSsrc(
1007 false, 1014 false,
1008 MediaStreamTrackInterface::kVideoKind, 1015 MediaStreamTrackInterface::kVideoKind,
1009 track_to_id_.find(video_track.get())->second, 1016 track_to_id_.find(video_track.get())->second,
1010 video_receiver_info.ssrc()); 1017 video_receiver_info.ssrc());
1011 } 1018 }
1012 inbound_video->transport_id = transport_id; 1019 inbound_video->transport_id = transport_id;
1013 if (video_receiver_info.codec_payload_type) {
1014 inbound_video->codec_id =
1015 RTCCodecStatsIDFromDirectionMediaAndPayload(
1016 true, false, *video_receiver_info.codec_payload_type);
1017 }
1018 report->AddStats(std::move(inbound_video)); 1020 report->AddStats(std::move(inbound_video));
1019 } 1021 }
1020 // Outbound 1022 // Outbound
1021 for (const cricket::VideoSenderInfo& video_sender_info : 1023 for (const cricket::VideoSenderInfo& video_sender_info :
1022 track_media_info_map.video_media_info()->senders) { 1024 track_media_info_map.video_media_info()->senders) {
1023 // TODO(nisse): SSRC == 0 currently means none. Delete check when that 1025 // TODO(nisse): SSRC == 0 currently means none. Delete check when that
1024 // is fixed. 1026 // is fixed.
1025 if (video_sender_info.ssrc() == 0) 1027 if (video_sender_info.ssrc() == 0)
1026 continue; 1028 continue;
1027 std::unique_ptr<RTCOutboundRTPStreamStats> outbound_video( 1029 std::unique_ptr<RTCOutboundRTPStreamStats> outbound_video(
1028 new RTCOutboundRTPStreamStats( 1030 new RTCOutboundRTPStreamStats(
1029 RTCOutboundRTPStreamStatsIDFromSSRC( 1031 RTCOutboundRTPStreamStatsIDFromSSRC(
1030 false, video_sender_info.ssrc()), 1032 false, video_sender_info.ssrc()),
1031 timestamp_us)); 1033 timestamp_us));
1032 SetOutboundRTPStreamStatsFromVideoSenderInfo( 1034 SetOutboundRTPStreamStatsFromVideoSenderInfo(
1033 video_sender_info, outbound_video.get()); 1035 video_sender_info, outbound_video.get());
1034 rtc::scoped_refptr<VideoTrackInterface> video_track = 1036 rtc::scoped_refptr<VideoTrackInterface> video_track =
1035 track_media_info_map_->GetVideoTrack(video_sender_info); 1037 track_media_info_map_->GetVideoTrack(video_sender_info);
1036 if (video_track) { 1038 if (video_track) {
1037 RTC_DCHECK(track_to_id_.find(video_track.get()) != track_to_id_.end()); 1039 RTC_DCHECK(track_to_id_.find(video_track.get()) != track_to_id_.end());
1038 outbound_video->track_id = 1040 outbound_video->track_id =
1039 RTCMediaStreamTrackStatsIDFromTrackKindIDAndSsrc( 1041 RTCMediaStreamTrackStatsIDFromTrackKindIDAndSsrc(
1040 true, 1042 true,
1041 MediaStreamTrackInterface::kVideoKind, 1043 MediaStreamTrackInterface::kVideoKind,
1042 track_to_id_.find(video_track.get())->second, 1044 track_to_id_.find(video_track.get())->second,
1043 video_sender_info.ssrc()); 1045 video_sender_info.ssrc());
1044 } 1046 }
1045 outbound_video->transport_id = transport_id; 1047 outbound_video->transport_id = transport_id;
1046 if (video_sender_info.codec_payload_type) {
1047 outbound_video->codec_id =
1048 RTCCodecStatsIDFromDirectionMediaAndPayload(
1049 false, false, *video_sender_info.codec_payload_type);
1050 }
1051 report->AddStats(std::move(outbound_video)); 1048 report->AddStats(std::move(outbound_video));
1052 } 1049 }
1053 } 1050 }
1054 } 1051 }
1055 1052
1056 void RTCStatsCollector::ProduceTransportStats_n( 1053 void RTCStatsCollector::ProduceTransportStats_n(
1057 int64_t timestamp_us, const SessionStats& session_stats, 1054 int64_t timestamp_us, const SessionStats& session_stats,
1058 const std::map<std::string, CertificateStatsPair>& transport_cert_stats, 1055 const std::map<std::string, CertificateStatsPair>& transport_cert_stats,
1059 RTCStatsReport* report) const { 1056 RTCStatsReport* report) const {
1060 RTC_DCHECK(network_thread_->IsCurrent()); 1057 RTC_DCHECK(network_thread_->IsCurrent());
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1222 const std::string& type) { 1219 const std::string& type) {
1223 return CandidateTypeToRTCIceCandidateType(type); 1220 return CandidateTypeToRTCIceCandidateType(type);
1224 } 1221 }
1225 1222
1226 const char* DataStateToRTCDataChannelStateForTesting( 1223 const char* DataStateToRTCDataChannelStateForTesting(
1227 DataChannelInterface::DataState state) { 1224 DataChannelInterface::DataState state) {
1228 return DataStateToRTCDataChannelState(state); 1225 return DataStateToRTCDataChannelState(state);
1229 } 1226 }
1230 1227
1231 } // namespace webrtc 1228 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/api/stats/rtcstats_objects.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698