OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/cast/logging/stats_event_subscriber.h" | 5 #include "media/cast/logging/stats_event_subscriber.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
11 #include "base/format_macros.h" | 11 #include "base/format_macros.h" |
12 #include "base/logging.h" | 12 #include "base/logging.h" |
| 13 #include "base/memory/ptr_util.h" |
13 #include "base/strings/stringprintf.h" | 14 #include "base/strings/stringprintf.h" |
14 #include "base/values.h" | 15 #include "base/values.h" |
15 | 16 |
16 #define STAT_ENUM_TO_STRING(enum) \ | 17 #define STAT_ENUM_TO_STRING(enum) \ |
17 case enum: \ | 18 case enum: \ |
18 return #enum | 19 return #enum |
19 | 20 |
20 namespace media { | 21 namespace media { |
21 namespace cast { | 22 namespace cast { |
22 | 23 |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 if (last_event_time_.is_null()) { | 221 if (last_event_time_.is_null()) { |
221 last_event_time_ = timestamp; | 222 last_event_time_ = timestamp; |
222 } else { | 223 } else { |
223 last_event_time_ = std::max(last_event_time_, timestamp); | 224 last_event_time_ = std::max(last_event_time_, timestamp); |
224 } | 225 } |
225 } | 226 } |
226 | 227 |
227 std::unique_ptr<base::DictionaryValue> StatsEventSubscriber::GetStats() const { | 228 std::unique_ptr<base::DictionaryValue> StatsEventSubscriber::GetStats() const { |
228 StatsMap stats_map; | 229 StatsMap stats_map; |
229 GetStatsInternal(&stats_map); | 230 GetStatsInternal(&stats_map); |
230 std::unique_ptr<base::DictionaryValue> ret(new base::DictionaryValue); | 231 auto ret = base::MakeUnique<base::DictionaryValue>(); |
231 | 232 |
232 std::unique_ptr<base::DictionaryValue> stats(new base::DictionaryValue); | 233 auto stats = base::MakeUnique<base::DictionaryValue>(); |
233 for (StatsMap::const_iterator it = stats_map.begin(); it != stats_map.end(); | 234 for (StatsMap::const_iterator it = stats_map.begin(); it != stats_map.end(); |
234 ++it) { | 235 ++it) { |
235 // Round to 3 digits after the decimal point. | 236 // Round to 3 digits after the decimal point. |
236 stats->SetDouble(CastStatToString(it->first), | 237 stats->SetDouble(CastStatToString(it->first), |
237 round(it->second * 1000.0) / 1000.0); | 238 round(it->second * 1000.0) / 1000.0); |
238 } | 239 } |
239 | 240 |
240 // Populate all histograms. | 241 // Populate all histograms. |
241 for (HistogramMap::const_iterator it = histograms_.begin(); | 242 for (HistogramMap::const_iterator it = histograms_.begin(); |
242 it != histograms_.end(); | 243 it != histograms_.end(); |
243 ++it) { | 244 ++it) { |
244 stats->Set(CastStatToString(it->first), | 245 stats->Set(CastStatToString(it->first), it->second->GetHistogram()); |
245 it->second->GetHistogram().release()); | |
246 } | 246 } |
247 | 247 |
248 ret->Set(event_media_type_ == AUDIO_EVENT ? "audio" : "video", | 248 ret->Set(event_media_type_ == AUDIO_EVENT ? "audio" : "video", |
249 stats.release()); | 249 std::move(stats)); |
250 | 250 |
251 return ret; | 251 return ret; |
252 } | 252 } |
253 | 253 |
254 void StatsEventSubscriber::Reset() { | 254 void StatsEventSubscriber::Reset() { |
255 DCHECK(thread_checker_.CalledOnValidThread()); | 255 DCHECK(thread_checker_.CalledOnValidThread()); |
256 | 256 |
257 frame_stats_.clear(); | 257 frame_stats_.clear(); |
258 packet_stats_.clear(); | 258 packet_stats_.clear(); |
259 total_capture_latency_ = base::TimeDelta(); | 259 total_capture_latency_ = base::TimeDelta(); |
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 : event_counter(0), sum_size(0) {} | 748 : event_counter(0), sum_size(0) {} |
749 StatsEventSubscriber::PacketLogStats::~PacketLogStats() {} | 749 StatsEventSubscriber::PacketLogStats::~PacketLogStats() {} |
750 | 750 |
751 StatsEventSubscriber::FrameInfo::FrameInfo() : encoded(false) { | 751 StatsEventSubscriber::FrameInfo::FrameInfo() : encoded(false) { |
752 } | 752 } |
753 StatsEventSubscriber::FrameInfo::~FrameInfo() { | 753 StatsEventSubscriber::FrameInfo::~FrameInfo() { |
754 } | 754 } |
755 | 755 |
756 } // namespace cast | 756 } // namespace cast |
757 } // namespace media | 757 } // namespace media |
OLD | NEW |