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

Side by Side Diff: media/cast/logging/logging_impl.cc

Issue 69603002: Incorporating logging into Cast (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: clean up Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/debug/trace_event.h" 5 #include "base/debug/trace_event.h"
6 #include "base/metrics/histogram.h" 6 #include "base/metrics/histogram.h"
7 #include "media/cast/logging/logging_impl.h" 7 #include "media/cast/logging/logging_impl.h"
8 8
9 namespace media { 9 namespace media {
10 namespace cast { 10 namespace cast {
11 11
12 LoggingImpl::LoggingImpl(base::TickClock* clock, 12 LoggingImpl::LoggingImpl(base::TickClock* clock,
13 scoped_refptr<base::TaskRunner> main_thread_proxy,
13 bool enable_data_collection, 14 bool enable_data_collection,
14 bool enable_uma_stats, 15 bool enable_uma_stats,
15 bool enable_tracing) 16 bool enable_tracing)
16 : enable_data_collection_(enable_data_collection), 17 : main_thread_proxy_(main_thread_proxy),
18 enable_data_collection_(enable_data_collection),
17 enable_uma_stats_(enable_uma_stats), 19 enable_uma_stats_(enable_uma_stats),
18 enable_tracing_(enable_tracing), 20 enable_tracing_(enable_tracing),
19 raw_(clock), 21 raw_(clock),
20 stats_(clock) {} 22 stats_(clock) {}
21 23
22 LoggingImpl::~LoggingImpl() {} 24 LoggingImpl::~LoggingImpl() {}
23 25
24 void LoggingImpl::InsertFrameEvent(CastLoggingEvent event, 26 void LoggingImpl::InsertFrameEvent(CastLoggingEvent event,
25 uint32 rtp_timestamp, 27 uint32 rtp_timestamp,
26 uint8 frame_id) { 28 uint8 frame_id) {
29 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
27 if (enable_data_collection_) { 30 if (enable_data_collection_) {
28 raw_.InsertFrameEvent(event, rtp_timestamp, frame_id); 31 raw_.InsertFrameEvent(event, rtp_timestamp, frame_id);
29 stats_.InsertFrameEvent(event, rtp_timestamp, frame_id); 32 stats_.InsertFrameEvent(event, rtp_timestamp, frame_id);
30 } 33 }
31 if (enable_tracing_) { 34 if (enable_tracing_) {
32 std::string event_string = CastLoggingToString(event); 35 std::string event_string = CastLoggingToString(event);
33 TRACE_EVENT_INSTANT2(event_string.c_str(), "FE", 36 TRACE_EVENT_INSTANT2(event_string.c_str(), "FE",
34 TRACE_EVENT_SCOPE_THREAD, "rtp_timestamp", rtp_timestamp, "frame_id", 37 TRACE_EVENT_SCOPE_THREAD, "rtp_timestamp", rtp_timestamp, "frame_id",
35 frame_id); 38 frame_id);
36 } 39 }
37 } 40 }
38 41
39 void LoggingImpl::InsertFrameEventWithSize(CastLoggingEvent event, 42 void LoggingImpl::InsertFrameEventWithSize(CastLoggingEvent event,
40 uint32 rtp_timestamp, 43 uint32 rtp_timestamp,
41 uint8 frame_id, 44 uint8 frame_id,
42 int frame_size) { 45 int frame_size) {
46 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
43 if (enable_data_collection_) { 47 if (enable_data_collection_) {
44 raw_.InsertFrameEventWithSize(event, rtp_timestamp, frame_id, frame_size); 48 raw_.InsertFrameEventWithSize(event, rtp_timestamp, frame_id, frame_size);
45 stats_.InsertFrameEventWithSize(event, rtp_timestamp, frame_id, frame_size); 49 stats_.InsertFrameEventWithSize(event, rtp_timestamp, frame_id, frame_size);
46 } 50 }
47 if (enable_uma_stats_) { 51 if (enable_uma_stats_) {
48 UMA_HISTOGRAM_COUNTS(CastLoggingToString(event), frame_size); 52 UMA_HISTOGRAM_COUNTS(CastLoggingToString(event), frame_size);
49 } 53 }
50 if (enable_tracing_) { 54 if (enable_tracing_) {
51 std::string event_string = CastLoggingToString(event); 55 std::string event_string = CastLoggingToString(event);
52 TRACE_EVENT_INSTANT2(event_string.c_str(), "FES", 56 TRACE_EVENT_INSTANT2(event_string.c_str(), "FES",
53 TRACE_EVENT_SCOPE_THREAD, "rtp_timestamp", rtp_timestamp, "frame_size", 57 TRACE_EVENT_SCOPE_THREAD, "rtp_timestamp", rtp_timestamp, "frame_size",
54 frame_size); 58 frame_size);
55 } 59 }
56 60
57 } 61 }
58 62
59 void LoggingImpl::InsertFrameEventWithDelay(CastLoggingEvent event, 63 void LoggingImpl::InsertFrameEventWithDelay(CastLoggingEvent event,
60 uint32 rtp_timestamp, 64 uint32 rtp_timestamp,
61 uint8 frame_id, 65 uint8 frame_id,
62 base::TimeDelta delay) { 66 base::TimeDelta delay) {
67 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
63 if (enable_data_collection_) { 68 if (enable_data_collection_) {
64 raw_.InsertFrameEventWithDelay(event, rtp_timestamp, frame_id, delay); 69 raw_.InsertFrameEventWithDelay(event, rtp_timestamp, frame_id, delay);
65 stats_.InsertFrameEventWithDelay(event, rtp_timestamp, frame_id, delay); 70 stats_.InsertFrameEventWithDelay(event, rtp_timestamp, frame_id, delay);
66 } 71 }
67 if (enable_uma_stats_) { 72 if (enable_uma_stats_) {
68 UMA_HISTOGRAM_TIMES(CastLoggingToString(event), delay); 73 UMA_HISTOGRAM_TIMES(CastLoggingToString(event), delay);
69 } 74 }
70 if (enable_tracing_) { 75 if (enable_tracing_) {
71 std::string event_string = CastLoggingToString(event); 76 std::string event_string = CastLoggingToString(event);
72 TRACE_EVENT_INSTANT2(event_string.c_str(), "FED", 77 TRACE_EVENT_INSTANT2(event_string.c_str(), "FED",
73 TRACE_EVENT_SCOPE_THREAD, "rtp_timestamp", rtp_timestamp, "delay", 78 TRACE_EVENT_SCOPE_THREAD, "rtp_timestamp", rtp_timestamp, "delay",
74 delay.InMilliseconds()); 79 delay.InMilliseconds());
75 } 80 }
76 } 81 }
77 82
78 void LoggingImpl::InsertPacketEvent(CastLoggingEvent event, 83 void LoggingImpl::InsertPacketEvent(CastLoggingEvent event,
79 uint32 rtp_timestamp, 84 uint32 rtp_timestamp,
80 uint8 frame_id, 85 uint8 frame_id,
81 uint16 packet_id, 86 uint16 packet_id,
82 uint16 max_packet_id, 87 uint16 max_packet_id,
83 int size) { 88 size_t size) {
89 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
84 if (enable_data_collection_) { 90 if (enable_data_collection_) {
85 raw_.InsertPacketEvent(event, rtp_timestamp, frame_id, packet_id, 91 raw_.InsertPacketEvent(event, rtp_timestamp, frame_id, packet_id,
86 max_packet_id, size); 92 max_packet_id, size);
87 stats_.InsertPacketEvent(event, rtp_timestamp, frame_id, packet_id, 93 stats_.InsertPacketEvent(event, rtp_timestamp, frame_id, packet_id,
88 max_packet_id, size); 94 max_packet_id, size);
89 } 95 }
90 if (enable_tracing_) { 96 if (enable_tracing_) {
91 std::string event_string = CastLoggingToString(event); 97 std::string event_string = CastLoggingToString(event);
92 TRACE_EVENT_INSTANT2(event_string.c_str(), "PE", 98 TRACE_EVENT_INSTANT2(event_string.c_str(), "PE",
93 TRACE_EVENT_SCOPE_THREAD, "rtp_timestamp", rtp_timestamp, 99 TRACE_EVENT_SCOPE_THREAD, "rtp_timestamp", rtp_timestamp,
94 "packet_id", packet_id); 100 "packet_id", packet_id);
95 } 101 }
96 } 102 }
97 103
98 void LoggingImpl::InsertGenericEvent(CastLoggingEvent event, int value) { 104 void LoggingImpl::InsertGenericEvent(CastLoggingEvent event, int value) {
105 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
99 if (enable_data_collection_) { 106 if (enable_data_collection_) {
100 raw_.InsertGenericEvent(event, value); 107 raw_.InsertGenericEvent(event, value);
101 stats_.InsertGenericEvent(event, value); 108 stats_.InsertGenericEvent(event, value);
102 } 109 }
103 if (enable_uma_stats_) { 110 if (enable_uma_stats_) {
104 UMA_HISTOGRAM_COUNTS(CastLoggingToString(event), value); 111 UMA_HISTOGRAM_COUNTS(CastLoggingToString(event), value);
105 } 112 }
106 if (enable_tracing_) { 113 if (enable_tracing_) {
107 std::string event_string = CastLoggingToString(event); 114 std::string event_string = CastLoggingToString(event);
108 TRACE_EVENT_INSTANT1(event_string.c_str(), "GE", 115 TRACE_EVENT_INSTANT1(event_string.c_str(), "GE",
109 TRACE_EVENT_SCOPE_THREAD, "value", value); 116 TRACE_EVENT_SCOPE_THREAD, "value", value);
110 } 117 }
111 } 118 }
112 119
113 120
114 // should just get the entire class, would be much easier. 121 // should just get the entire class, would be much easier.
115 FrameRawMap LoggingImpl::GetFrameRawData() { 122 FrameRawMap LoggingImpl::GetFrameRawData() {
123 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
116 return raw_.GetFrameData(); 124 return raw_.GetFrameData();
117 } 125 }
118 126
119 PacketRawMap LoggingImpl::GetPacketRawData() { 127 PacketRawMap LoggingImpl::GetPacketRawData() {
120 return raw_.GetPacketData(); 128 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
129 return raw_.GetPacketData();
121 } 130 }
122 131
123 GenericRawMap LoggingImpl::GetGenericRawData() { 132 GenericRawMap LoggingImpl::GetGenericRawData() {
124 return raw_.GetGenericData(); 133 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
134 return raw_.GetGenericData();
125 } 135 }
126 136
127 const FrameStatsMap* LoggingImpl::GetFrameStatsData() { 137 const FrameStatsMap* LoggingImpl::GetFrameStatsData() {
138 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
128 // Get stats data. 139 // Get stats data.
129 const FrameStatsMap* stats = stats_.GetFrameStatsData(); 140 const FrameStatsMap* stats = stats_.GetFrameStatsData();
130 if (enable_uma_stats_) { 141 if (enable_uma_stats_) {
131 FrameStatsMap::const_iterator it; 142 FrameStatsMap::const_iterator it;
132 for (it = stats->begin(); it != stats->end(); ++it) { 143 for (it = stats->begin(); it != stats->end(); ++it) {
133 // Check for an active event. 144 // Check for an active event.
134 if (it->second->framerate_fps > 0) { 145 if (it->second->framerate_fps > 0) {
135 std::string event_string = CastLoggingToString(it->first); 146 std::string event_string = CastLoggingToString(it->first);
136 UMA_HISTOGRAM_COUNTS(event_string.append("_framerate_fps"), 147 UMA_HISTOGRAM_COUNTS(event_string.append("_framerate_fps"),
137 it->second->framerate_fps); 148 it->second->framerate_fps);
(...skipping 14 matching lines...) Expand all
152 it->second->min_delay_ms); 163 it->second->min_delay_ms);
153 UMA_HISTOGRAM_COUNTS(event_string.append("_max_delay_ms"), 164 UMA_HISTOGRAM_COUNTS(event_string.append("_max_delay_ms"),
154 it->second->max_delay_ms); 165 it->second->max_delay_ms);
155 } 166 }
156 } 167 }
157 } 168 }
158 return stats; 169 return stats;
159 } 170 }
160 171
161 const PacketStatsMap* LoggingImpl::GetPacketStatsData() { 172 const PacketStatsMap* LoggingImpl::GetPacketStatsData() {
173 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
162 // Get stats data. 174 // Get stats data.
163 const PacketStatsMap* stats = stats_.GetPacketStatsData(); 175 const PacketStatsMap* stats = stats_.GetPacketStatsData();
164 if (enable_uma_stats_) { 176 if (enable_uma_stats_) {
165 PacketStatsMap::const_iterator it; 177 PacketStatsMap::const_iterator it;
166 for (it = stats->begin(); it != stats->end(); ++it) { 178 for (it = stats->begin(); it != stats->end(); ++it) {
167 if (it->second > 0) { 179 if (it->second > 0) {
168 std::string event_string = CastLoggingToString(it->first); 180 std::string event_string = CastLoggingToString(it->first);
169 UMA_HISTOGRAM_COUNTS(event_string.append("_bitrate_kbps"), it->second); 181 UMA_HISTOGRAM_COUNTS(event_string.append("_bitrate_kbps"), it->second);
170 } 182 }
171 } 183 }
172 } 184 }
173 return stats; 185 return stats;
174 } 186 }
175 187
176 const GenericStatsMap* LoggingImpl::GetGenericStatsData() { 188 const GenericStatsMap* LoggingImpl::GetGenericStatsData() {
189 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
177 // Get stats data. 190 // Get stats data.
178 const GenericStatsMap* stats = stats_.GetGenericStatsData(); 191 const GenericStatsMap* stats = stats_.GetGenericStatsData();
179 if (enable_uma_stats_) { 192 if (enable_uma_stats_) {
180 GenericStatsMap::const_iterator it; 193 GenericStatsMap::const_iterator it;
181 for (it = stats->begin(); it != stats->end(); ++it) { 194 for (it = stats->begin(); it != stats->end(); ++it) {
182 if (it->second > 0) { 195 if (it->second > 0) {
183 UMA_HISTOGRAM_COUNTS(CastLoggingToString(it->first), it->second); 196 UMA_HISTOGRAM_COUNTS(CastLoggingToString(it->first), it->second);
184 } 197 }
185 } 198 }
186 } 199 }
187 return stats; 200 return stats;
188 } 201 }
189 202
190 void LoggingImpl::Reset() { 203 void LoggingImpl::Reset() {
204 DCHECK(main_thread_proxy_->RunsTasksOnCurrentThread());
191 raw_.Reset(); 205 raw_.Reset();
192 stats_.Reset(); 206 stats_.Reset();
193 } 207 }
194 208
195 } // namespace cast 209 } // namespace cast
196 } // namespace media 210 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698