OLD | NEW |
---|---|
(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 | |
OLD | NEW |