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

Side by Side Diff: content/renderer/media/rtc_stats.cc

Issue 2319543002: WebRTCStats added for surfacing RTCStats from WebRTC to Blink. (Closed)
Patch Set: Created 4 years, 3 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
(Empty)
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/renderer/media/rtc_stats.h"
6
7 #include "base/logging.h"
8 #include "third_party/webrtc/api/rtcstats.h"
9
10 namespace content {
11
12 namespace {
13
14 double kMillisecondsPerMicrosecond = 0.001;
perkj_chrome 2016/09/07 14:34:36 I am sure this const exist in a number of places.
hbos_chromium 2016/09/08 08:38:31 Done.
15
16 } // namespace
17
18 RTCStats::RTCStats(const webrtc::RTCStats* stats)
19 : stats_(stats),
20 members_(stats->Members()) {
21 DCHECK(stats_);
22 }
23
24 RTCStats::~RTCStats() {
25 }
26
27 blink::WebString RTCStats::id() const {
28 return blink::WebString::fromUTF8(stats_->id());
29 }
30
31 blink::WebString RTCStats::type() const {
32 return blink::WebString::fromUTF8(stats_->type());
33 }
34
35 double RTCStats::timestamp() const {
36 return stats_->timestamp_us() * kMillisecondsPerMicrosecond;
37 }
38
39 size_t RTCStats::membersCount() const {
40 return members_.size();
41 }
42
43 std::unique_ptr<blink::WebRTCStatsMember> RTCStats::getMember(size_t i) const {
44 DCHECK_LT(i, members_.size());
45 return std::unique_ptr<blink::WebRTCStatsMember>(
46 new RTCStatsMember(members_[i]));
47 }
48
49 RTCStatsMember::RTCStatsMember(const webrtc::RTCStatsMemberInterface* member)
50 : member_(member) {
51 DCHECK(member_);
52 }
53
54 blink::WebString RTCStatsMember::name() const {
55 return blink::WebString::fromUTF8(member_->name());
56 }
57
58 blink::WebRTCStatsMemberType RTCStatsMember::type() const {
59 switch (member_->type()) {
60 case webrtc::RTCStatsMemberInterface::kInt32:
61 return blink::WebRTCStatsMemberTypeInt32;
62 case webrtc::RTCStatsMemberInterface::kUint32:
63 return blink::WebRTCStatsMemberTypeUint32;
64 case webrtc::RTCStatsMemberInterface::kInt64:
65 return blink::WebRTCStatsMemberTypeInt64;
66 case webrtc::RTCStatsMemberInterface::kUint64:
67 return blink::WebRTCStatsMemberTypeUint64;
68 case webrtc::RTCStatsMemberInterface::kDouble:
69 return blink::WebRTCStatsMemberTypeDouble;
70 case webrtc::RTCStatsMemberInterface::kStaticString:
71 return blink::WebRTCStatsMemberTypeStaticString;
72 case webrtc::RTCStatsMemberInterface::kString:
73 return blink::WebRTCStatsMemberTypeString;
74 case webrtc::RTCStatsMemberInterface::kSequenceInt32:
75 return blink::WebRTCStatsMemberTypeSequenceInt32;
76 case webrtc::RTCStatsMemberInterface::kSequenceUint32:
77 return blink::WebRTCStatsMemberTypeSequenceUint32;
78 case webrtc::RTCStatsMemberInterface::kSequenceInt64:
79 return blink::WebRTCStatsMemberTypeSequenceInt64;
80 case webrtc::RTCStatsMemberInterface::kSequenceUint64:
81 return blink::WebRTCStatsMemberTypeSequenceUint64;
82 case webrtc::RTCStatsMemberInterface::kSequenceDouble:
83 return blink::WebRTCStatsMemberTypeSequenceDouble;
84 case webrtc::RTCStatsMemberInterface::kSequenceStaticString:
85 return blink::WebRTCStatsMemberTypeSequenceStaticString;
86 case webrtc::RTCStatsMemberInterface::kSequenceString:
87 return blink::WebRTCStatsMemberTypeSequenceString;
88 default:
89 NOTREACHED();
90 return blink::WebRTCStatsMemberTypeSequenceInt32;
91 }
92 }
93
94 int32_t RTCStatsMember::valueInt32() const {
95 return *member_->cast_to<webrtc::RTCStatsMember<int32_t>>();
96 }
97
98 uint32_t RTCStatsMember::valueUint32() const {
99 return *member_->cast_to<webrtc::RTCStatsMember<uint32_t>>();
100 }
101
102 int64_t RTCStatsMember::valueInt64() const {
103 return *member_->cast_to<webrtc::RTCStatsMember<int64_t>>();
104 }
105
106 uint64_t RTCStatsMember::valueUint64() const {
107 return *member_->cast_to<webrtc::RTCStatsMember<uint64_t>>();
108 }
109
110 double RTCStatsMember::valueDouble() const {
111 return *member_->cast_to<webrtc::RTCStatsMember<double>>();
112 }
113
114 const char* RTCStatsMember::valueStaticString() const {
115 return *member_->cast_to<webrtc::RTCStatsMember<const char*>>();
116 }
117
118 const std::string& RTCStatsMember::valueString() const {
119 return *member_->cast_to<webrtc::RTCStatsMember<std::string>>();
120 }
121
122 const std::vector<int32_t>& RTCStatsMember::valueSequenceInt32() const {
123 return *member_->cast_to<webrtc::RTCStatsMember<std::vector<int32_t>>>();
124 }
125
126 const std::vector<uint32_t>& RTCStatsMember::valueSequenceUint32() const {
127 return *member_->cast_to<webrtc::RTCStatsMember<std::vector<uint32_t>>>();
128 }
129
130 const std::vector<int64_t>& RTCStatsMember::valueSequenceInt64() const {
131 return *member_->cast_to<webrtc::RTCStatsMember<std::vector<int64_t>>>();
132 }
133
134 const std::vector<uint64_t>& RTCStatsMember::valueSequenceUint64() const {
135 return *member_->cast_to<webrtc::RTCStatsMember<std::vector<uint64_t>>>();
136 }
137
138 const std::vector<double>& RTCStatsMember::valueSequenceDouble() const {
139 return *member_->cast_to<webrtc::RTCStatsMember<std::vector<double>>>();
140 }
141
142 const std::vector<const char*>& RTCStatsMember::valueSequenceStaticString()
143 const {
144 return *member_->cast_to<webrtc::RTCStatsMember<std::vector<const char*>>>();
145 }
146
147 const std::vector<std::string>& RTCStatsMember::valueSequenceString() const {
148 return *member_->cast_to<webrtc::RTCStatsMember<std::vector<std::string>>>();
149 }
150
151 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698