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

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

Issue 2685783014: Replace NULL with nullptr in all C++ files. (Closed)
Patch Set: Fixing android. 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
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 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 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 // Wallclock time in ms. 396 // Wallclock time in ms.
397 double StatsCollector::GetTimeNow() { 397 double StatsCollector::GetTimeNow() {
398 return rtc::TimeUTCMicros() / 398 return rtc::TimeUTCMicros() /
399 static_cast<double>(rtc::kNumMicrosecsPerMillisec); 399 static_cast<double>(rtc::kNumMicrosecsPerMillisec);
400 } 400 }
401 401
402 // Adds a MediaStream with tracks that can be used as a |selector| in a call 402 // Adds a MediaStream with tracks that can be used as a |selector| in a call
403 // to GetStats. 403 // to GetStats.
404 void StatsCollector::AddStream(MediaStreamInterface* stream) { 404 void StatsCollector::AddStream(MediaStreamInterface* stream) {
405 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); 405 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent());
406 RTC_DCHECK(stream != NULL); 406 RTC_DCHECK(stream != nullptr);
407 407
408 CreateTrackReports<AudioTrackVector>(stream->GetAudioTracks(), 408 CreateTrackReports<AudioTrackVector>(stream->GetAudioTracks(),
409 &reports_, track_ids_); 409 &reports_, track_ids_);
410 CreateTrackReports<VideoTrackVector>(stream->GetVideoTracks(), 410 CreateTrackReports<VideoTrackVector>(stream->GetVideoTracks(),
411 &reports_, track_ids_); 411 &reports_, track_ids_);
412 } 412 }
413 413
414 void StatsCollector::AddLocalAudioTrack(AudioTrackInterface* audio_track, 414 void StatsCollector::AddLocalAudioTrack(AudioTrackInterface* audio_track,
415 uint32_t ssrc) { 415 uint32_t ssrc) {
416 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); 416 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent());
417 RTC_DCHECK(audio_track != NULL); 417 RTC_DCHECK(audio_track != nullptr);
418 #if RTC_DCHECK_IS_ON 418 #if RTC_DCHECK_IS_ON
419 for (const auto& track : local_audio_tracks_) 419 for (const auto& track : local_audio_tracks_)
420 RTC_DCHECK(track.first != audio_track || track.second != ssrc); 420 RTC_DCHECK(track.first != audio_track || track.second != ssrc);
421 #endif 421 #endif
422 422
423 local_audio_tracks_.push_back(std::make_pair(audio_track, ssrc)); 423 local_audio_tracks_.push_back(std::make_pair(audio_track, ssrc));
424 424
425 // Create the kStatsReportTypeTrack report for the new track if there is no 425 // Create the kStatsReportTypeTrack report for the new track if there is no
426 // report yet. 426 // report yet.
427 StatsReport::Id id(StatsReport::NewTypedId(StatsReport::kStatsReportTypeTrack, 427 StatsReport::Id id(StatsReport::NewTypedId(StatsReport::kStatsReportTypeTrack,
428 audio_track->id())); 428 audio_track->id()));
429 StatsReport* report = reports_.Find(id); 429 StatsReport* report = reports_.Find(id);
430 if (!report) { 430 if (!report) {
431 report = reports_.InsertNew(id); 431 report = reports_.InsertNew(id);
432 report->AddString(StatsReport::kStatsValueNameTrackId, audio_track->id()); 432 report->AddString(StatsReport::kStatsValueNameTrackId, audio_track->id());
433 } 433 }
434 } 434 }
435 435
436 void StatsCollector::RemoveLocalAudioTrack(AudioTrackInterface* audio_track, 436 void StatsCollector::RemoveLocalAudioTrack(AudioTrackInterface* audio_track,
437 uint32_t ssrc) { 437 uint32_t ssrc) {
438 RTC_DCHECK(audio_track != NULL); 438 RTC_DCHECK(audio_track != nullptr);
439 local_audio_tracks_.erase(std::remove_if(local_audio_tracks_.begin(), 439 local_audio_tracks_.erase(std::remove_if(local_audio_tracks_.begin(),
440 local_audio_tracks_.end(), 440 local_audio_tracks_.end(),
441 [audio_track, ssrc](const LocalAudioTrackVector::value_type& track) { 441 [audio_track, ssrc](const LocalAudioTrackVector::value_type& track) {
442 return track.first == audio_track && track.second == ssrc; 442 return track.first == audio_track && track.second == ssrc;
443 })); 443 }));
444 } 444 }
445 445
446 void StatsCollector::GetStats(MediaStreamTrackInterface* track, 446 void StatsCollector::GetStats(MediaStreamTrackInterface* track,
447 StatsReports* reports) { 447 StatsReports* reports) {
448 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); 448 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent());
449 RTC_DCHECK(reports != NULL); 449 RTC_DCHECK(reports != nullptr);
450 RTC_DCHECK(reports->empty()); 450 RTC_DCHECK(reports->empty());
451 451
452 rtc::Thread::ScopedDisallowBlockingCalls no_blocking_calls; 452 rtc::Thread::ScopedDisallowBlockingCalls no_blocking_calls;
453 453
454 if (!track) { 454 if (!track) {
455 reports->reserve(reports_.size()); 455 reports->reserve(reports_.size());
456 for (auto* r : reports_) 456 for (auto* r : reports_)
457 reports->push_back(r); 457 reports->push_back(r);
458 return; 458 return;
459 } 459 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 StatsReport::Id id(StatsReport::NewIdWithDirection( 523 StatsReport::Id id(StatsReport::NewIdWithDirection(
524 local ? StatsReport::kStatsReportTypeSsrc 524 local ? StatsReport::kStatsReportTypeSsrc
525 : StatsReport::kStatsReportTypeRemoteSsrc, 525 : StatsReport::kStatsReportTypeRemoteSsrc,
526 rtc::ToString<uint32_t>(ssrc), direction)); 526 rtc::ToString<uint32_t>(ssrc), direction));
527 StatsReport* report = reports_.Find(id); 527 StatsReport* report = reports_.Find(id);
528 528
529 // Use the ID of the track that is currently mapped to the SSRC, if any. 529 // Use the ID of the track that is currently mapped to the SSRC, if any.
530 std::string track_id; 530 std::string track_id;
531 if (!GetTrackIdBySsrc(ssrc, &track_id, direction)) { 531 if (!GetTrackIdBySsrc(ssrc, &track_id, direction)) {
532 if (!report) { 532 if (!report) {
533 // The ssrc is not used by any track or existing report, return NULL 533 // The ssrc is not used by any track or existing report, return null
534 // in such case to indicate no report is prepared for the ssrc. 534 // in such case to indicate no report is prepared for the ssrc.
535 return NULL; 535 return nullptr;
536 } 536 }
537 537
538 // The ssrc is not used by any existing track. Keeps the old track id 538 // The ssrc is not used by any existing track. Keeps the old track id
539 // since we want to report the stats for inactive ssrc. 539 // since we want to report the stats for inactive ssrc.
540 const StatsReport::Value* v = 540 const StatsReport::Value* v =
541 report->FindValue(StatsReport::kStatsValueNameTrackId); 541 report->FindValue(StatsReport::kStatsValueNameTrackId);
542 if (v) 542 if (v)
543 track_id = v->string_val(); 543 track_id = v->string_val();
544 } 544 }
545 545
(...skipping 11 matching lines...) Expand all
557 } 557 }
558 558
559 bool StatsCollector::IsValidTrack(const std::string& track_id) { 559 bool StatsCollector::IsValidTrack(const std::string& track_id) {
560 return reports_.Find(StatsReport::NewTypedId( 560 return reports_.Find(StatsReport::NewTypedId(
561 StatsReport::kStatsReportTypeTrack, track_id)) != nullptr; 561 StatsReport::kStatsReportTypeTrack, track_id)) != nullptr;
562 } 562 }
563 563
564 StatsReport* StatsCollector::AddCertificateReports( 564 StatsReport* StatsCollector::AddCertificateReports(
565 const rtc::SSLCertificate* cert) { 565 const rtc::SSLCertificate* cert) {
566 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); 566 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent());
567 RTC_DCHECK(cert != NULL); 567 RTC_DCHECK(cert != nullptr);
568 568
569 std::unique_ptr<rtc::SSLCertificateStats> first_stats = cert->GetStats(); 569 std::unique_ptr<rtc::SSLCertificateStats> first_stats = cert->GetStats();
570 StatsReport* first_report = nullptr; 570 StatsReport* first_report = nullptr;
571 StatsReport* prev_report = nullptr; 571 StatsReport* prev_report = nullptr;
572 for (rtc::SSLCertificateStats* stats = first_stats.get(); stats; 572 for (rtc::SSLCertificateStats* stats = first_stats.get(); stats;
573 stats = stats->issuer.get()) { 573 stats = stats->issuer.get()) {
574 StatsReport::Id id(StatsReport::NewTypedId( 574 StatsReport::Id id(StatsReport::NewTypedId(
575 StatsReport::kStatsReportTypeCertificate, stats->fingerprint)); 575 StatsReport::kStatsReportTypeCertificate, stats->fingerprint));
576 576
577 StatsReport* report = reports_.ReplaceOrAddNew(id); 577 StatsReport* report = reports_.ReplaceOrAddNew(id);
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 902
903 void StatsCollector::UpdateStatsFromExistingLocalAudioTracks() { 903 void StatsCollector::UpdateStatsFromExistingLocalAudioTracks() {
904 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); 904 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent());
905 // Loop through the existing local audio tracks. 905 // Loop through the existing local audio tracks.
906 for (const auto& it : local_audio_tracks_) { 906 for (const auto& it : local_audio_tracks_) {
907 AudioTrackInterface* track = it.first; 907 AudioTrackInterface* track = it.first;
908 uint32_t ssrc = it.second; 908 uint32_t ssrc = it.second;
909 StatsReport* report = 909 StatsReport* report =
910 GetReport(StatsReport::kStatsReportTypeSsrc, 910 GetReport(StatsReport::kStatsReportTypeSsrc,
911 rtc::ToString<uint32_t>(ssrc), StatsReport::kSend); 911 rtc::ToString<uint32_t>(ssrc), StatsReport::kSend);
912 if (report == NULL) { 912 if (report == nullptr) {
913 // This can happen if a local audio track is added to a stream on the 913 // This can happen if a local audio track is added to a stream on the
914 // fly and the report has not been set up yet. Do nothing in this case. 914 // fly and the report has not been set up yet. Do nothing in this case.
915 LOG(LS_ERROR) << "Stats report does not exist for ssrc " << ssrc; 915 LOG(LS_ERROR) << "Stats report does not exist for ssrc " << ssrc;
916 continue; 916 continue;
917 } 917 }
918 918
919 // The same ssrc can be used by both local and remote audio tracks. 919 // The same ssrc can be used by both local and remote audio tracks.
920 const StatsReport::Value* v = 920 const StatsReport::Value* v =
921 report->FindValue(StatsReport::kStatsValueNameTrackId); 921 report->FindValue(StatsReport::kStatsValueNameTrackId);
922 if (!v || v->string_val() != track->id()) 922 if (!v || v->string_val() != track->id())
923 continue; 923 continue;
924 924
925 report->set_timestamp(stats_gathering_started_); 925 report->set_timestamp(stats_gathering_started_);
926 UpdateReportFromAudioTrack(track, report); 926 UpdateReportFromAudioTrack(track, report);
927 } 927 }
928 } 928 }
929 929
930 void StatsCollector::UpdateReportFromAudioTrack(AudioTrackInterface* track, 930 void StatsCollector::UpdateReportFromAudioTrack(AudioTrackInterface* track,
931 StatsReport* report) { 931 StatsReport* report) {
932 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent()); 932 RTC_DCHECK(pc_->session()->signaling_thread()->IsCurrent());
933 RTC_DCHECK(track != NULL); 933 RTC_DCHECK(track != nullptr);
934 934
935 // Don't overwrite report values if they're not available. 935 // Don't overwrite report values if they're not available.
936 int signal_level; 936 int signal_level;
937 if (track->GetSignalLevel(&signal_level)) { 937 if (track->GetSignalLevel(&signal_level)) {
938 RTC_DCHECK_GE(signal_level, 0); 938 RTC_DCHECK_GE(signal_level, 0);
939 report->AddInt(StatsReport::kStatsValueNameAudioInputLevel, signal_level); 939 report->AddInt(StatsReport::kStatsValueNameAudioInputLevel, signal_level);
940 } 940 }
941 941
942 auto audio_processor(track->GetAudioProcessor()); 942 auto audio_processor(track->GetAudioProcessor());
943 943
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
988 StatsReport* report = entry.second; 988 StatsReport* report = entry.second;
989 report->set_timestamp(stats_gathering_started_); 989 report->set_timestamp(stats_gathering_started_);
990 } 990 }
991 } 991 }
992 992
993 void StatsCollector::ClearUpdateStatsCacheForTest() { 993 void StatsCollector::ClearUpdateStatsCacheForTest() {
994 stats_gathering_started_ = 0; 994 stats_gathering_started_ = 0;
995 } 995 }
996 996
997 } // namespace webrtc 997 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698