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

Unified Diff: content/renderer/media/remote_media_stream_impl.cc

Issue 183973021: Add metrics to track the duration of tracks received over a PeerConnection. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/remote_media_stream_impl.cc
diff --git a/content/renderer/media/remote_media_stream_impl.cc b/content/renderer/media/remote_media_stream_impl.cc
index 66bdb60821d460328d74c65a2bb76744a013e93a..4e85e60c7325b35110ff1c15c2e35c0cd1083711 100644
--- a/content/renderer/media/remote_media_stream_impl.cc
+++ b/content/renderer/media/remote_media_stream_impl.cc
@@ -7,7 +7,9 @@
#include <string>
#include "base/logging.h"
+#include "base/metrics/histogram.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/time/time.h"
#include "content/renderer/media/media_stream.h"
#include "content/renderer/media/media_stream_dependency_factory.h"
#include "third_party/WebKit/public/platform/WebString.h"
@@ -38,6 +40,10 @@ class RemoteMediaStreamTrackObserver
scoped_refptr<webrtc::MediaStreamTrackInterface> webrtc_track_;
blink::WebMediaStreamTrack webkit_track_;
+ // Used to calculate duration of the track for a metric logged at
+ // destruction time.
+ base::TimeTicks creation_time_;
+
DISALLOW_COPY_AND_ASSIGN(RemoteMediaStreamTrackObserver);
};
@@ -78,11 +84,28 @@ RemoteMediaStreamTrackObserver::RemoteMediaStreamTrackObserver(
const blink::WebMediaStreamTrack& webkit_track)
: state_(webrtc_track->state()),
webrtc_track_(webrtc_track),
- webkit_track_(webkit_track) {
+ webkit_track_(webkit_track),
+ creation_time_(base::TimeTicks::Now()) {
webrtc_track->RegisterObserver(this);
}
RemoteMediaStreamTrackObserver::~RemoteMediaStreamTrackObserver() {
perkj_chrome 2014/03/05 09:39:17 If you close a tab - which I guess is very common
+ // Emit the duration of the track to a histogram (one for audio, one
+ // for video).
+ base::TimeDelta duration = base::TimeTicks::Now() - creation_time_;
+ std::string histogram_name = "WebRTC.ReceivedVideoTrackDuration";
+ if (webkit_track_.source().type() == blink::WebMediaStreamSource::TypeAudio) {
+ histogram_name = "WebRTC.ReceivedAudioTrackDuration";
+ } else {
+ DCHECK(webkit_track_.source().type() ==
+ blink::WebMediaStreamSource::TypeVideo);
+ }
+ UMA_HISTOGRAM_CUSTOM_TIMES(histogram_name,
Ami GONE FROM CHROMIUM 2014/03/05 08:44:27 This is a bug - the name parameter to UMA macros m
Alexei Svitkine (slow) 2014/03/05 14:23:37 The histogram macros cache the Histogram object af
+ duration,
+ base::TimeDelta::FromMilliseconds(100),
+ base::TimeDelta::FromHours(16),
+ 50);
+
webrtc_track_->UnregisterObserver(this);
}
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698