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

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

Issue 270493003: Cast: Deduplicate event types in cast library. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 7 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
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 "base/memory/ref_counted.h" 5 #include "base/memory/ref_counted.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/rand_util.h" 7 #include "base/rand_util.h"
8 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/simple_test_tick_clock.h"
9 #include "base/time/tick_clock.h" 9 #include "base/time/tick_clock.h"
10 #include "media/cast/cast_environment.h" 10 #include "media/cast/cast_environment.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 67
68 TEST_F(StatsEventSubscriberTest, Capture) { 68 TEST_F(StatsEventSubscriberTest, Capture) {
69 Init(VIDEO_EVENT); 69 Init(VIDEO_EVENT);
70 70
71 uint32 rtp_timestamp = 0; 71 uint32 rtp_timestamp = 0;
72 uint32 frame_id = 0; 72 uint32 frame_id = 0;
73 int num_frames = 10; 73 int num_frames = 10;
74 base::TimeTicks start_time = sender_clock_->NowTicks(); 74 base::TimeTicks start_time = sender_clock_->NowTicks();
75 for (int i = 0; i < num_frames; i++) { 75 for (int i = 0; i < num_frames; i++) {
76 cast_environment_->Logging()->InsertFrameEvent(sender_clock_->NowTicks(), 76 cast_environment_->Logging()->InsertFrameEvent(sender_clock_->NowTicks(),
77 kVideoFrameCaptureBegin, 77 FRAME_CAPTURE_BEGIN,
78 VIDEO_EVENT,
78 rtp_timestamp, 79 rtp_timestamp,
79 frame_id); 80 frame_id);
80 81
81 AdvanceClocks(base::TimeDelta::FromMicroseconds(34567)); 82 AdvanceClocks(base::TimeDelta::FromMicroseconds(34567));
82 rtp_timestamp += 90; 83 rtp_timestamp += 90;
83 frame_id++; 84 frame_id++;
84 } 85 }
85 86
86 base::TimeTicks end_time = sender_clock_->NowTicks(); 87 base::TimeTicks end_time = sender_clock_->NowTicks();
87 88
(...skipping 16 matching lines...) Expand all
104 uint32 rtp_timestamp = 0; 105 uint32 rtp_timestamp = 0;
105 uint32 frame_id = 0; 106 uint32 frame_id = 0;
106 int num_frames = 10; 107 int num_frames = 10;
107 base::TimeTicks start_time = sender_clock_->NowTicks(); 108 base::TimeTicks start_time = sender_clock_->NowTicks();
108 int total_size = 0; 109 int total_size = 0;
109 for (int i = 0; i < num_frames; i++) { 110 for (int i = 0; i < num_frames; i++) {
110 int size = 1000 + base::RandInt(-100, 100); 111 int size = 1000 + base::RandInt(-100, 100);
111 total_size += size; 112 total_size += size;
112 cast_environment_->Logging()->InsertEncodedFrameEvent( 113 cast_environment_->Logging()->InsertEncodedFrameEvent(
113 sender_clock_->NowTicks(), 114 sender_clock_->NowTicks(),
114 kVideoFrameEncoded, 115 FRAME_ENCODED, VIDEO_EVENT,
115 rtp_timestamp, 116 rtp_timestamp,
116 frame_id, 117 frame_id,
117 size, 118 size,
118 true, 119 true,
119 5678); 120 5678);
120 121
121 AdvanceClocks(base::TimeDelta::FromMicroseconds(35678)); 122 AdvanceClocks(base::TimeDelta::FromMicroseconds(35678));
122 rtp_timestamp += 90; 123 rtp_timestamp += 90;
123 frame_id++; 124 frame_id++;
124 } 125 }
(...skipping 21 matching lines...) Expand all
146 147
147 TEST_F(StatsEventSubscriberTest, Decode) { 148 TEST_F(StatsEventSubscriberTest, Decode) {
148 Init(VIDEO_EVENT); 149 Init(VIDEO_EVENT);
149 150
150 uint32 rtp_timestamp = 0; 151 uint32 rtp_timestamp = 0;
151 uint32 frame_id = 0; 152 uint32 frame_id = 0;
152 int num_frames = 10; 153 int num_frames = 10;
153 base::TimeTicks start_time = sender_clock_->NowTicks(); 154 base::TimeTicks start_time = sender_clock_->NowTicks();
154 for (int i = 0; i < num_frames; i++) { 155 for (int i = 0; i < num_frames; i++) {
155 cast_environment_->Logging()->InsertFrameEvent(receiver_clock_.NowTicks(), 156 cast_environment_->Logging()->InsertFrameEvent(receiver_clock_.NowTicks(),
156 kVideoFrameDecoded, 157 FRAME_DECODED, VIDEO_EVENT,
157 rtp_timestamp, 158 rtp_timestamp,
158 frame_id); 159 frame_id);
159 160
160 AdvanceClocks(base::TimeDelta::FromMicroseconds(36789)); 161 AdvanceClocks(base::TimeDelta::FromMicroseconds(36789));
161 rtp_timestamp += 90; 162 rtp_timestamp += 90;
162 frame_id++; 163 frame_id++;
163 } 164 }
164 165
165 base::TimeTicks end_time = sender_clock_->NowTicks(); 166 base::TimeTicks end_time = sender_clock_->NowTicks();
166 167
(...skipping 16 matching lines...) Expand all
183 uint32 rtp_timestamp = 0; 184 uint32 rtp_timestamp = 0;
184 uint32 frame_id = 0; 185 uint32 frame_id = 0;
185 int num_frames = 10; 186 int num_frames = 10;
186 int total_delay_ms = 0; 187 int total_delay_ms = 0;
187 for (int i = 0; i < num_frames; i++) { 188 for (int i = 0; i < num_frames; i++) {
188 int delay_ms = base::RandInt(-50, 50); 189 int delay_ms = base::RandInt(-50, 50);
189 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_ms); 190 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_ms);
190 total_delay_ms += delay_ms; 191 total_delay_ms += delay_ms;
191 cast_environment_->Logging()->InsertFrameEventWithDelay( 192 cast_environment_->Logging()->InsertFrameEventWithDelay(
192 receiver_clock_.NowTicks(), 193 receiver_clock_.NowTicks(),
193 kVideoRenderDelay, 194 FRAME_PLAYOUT,
195 VIDEO_EVENT,
194 rtp_timestamp, 196 rtp_timestamp,
195 frame_id, 197 frame_id,
196 delay); 198 delay);
197 199
198 AdvanceClocks(base::TimeDelta::FromMicroseconds(37890)); 200 AdvanceClocks(base::TimeDelta::FromMicroseconds(37890));
199 rtp_timestamp += 90; 201 rtp_timestamp += 90;
200 frame_id++; 202 frame_id++;
201 } 203 }
202 204
203 StatsEventSubscriber::StatsMap stats_map; 205 StatsEventSubscriber::StatsMap stats_map;
204 subscriber_->GetStatsInternal(&stats_map); 206 subscriber_->GetStatsInternal(&stats_map);
205 207
206 StatsEventSubscriber::StatsMap::iterator it = 208 StatsEventSubscriber::StatsMap::iterator it =
207 stats_map.find(StatsEventSubscriber::AVG_PLAYOUT_DELAY_MS); 209 stats_map.find(StatsEventSubscriber::AVG_PLAYOUT_DELAY_MS);
208 ASSERT_NE(it, stats_map.end()); 210 ASSERT_NE(it, stats_map.end());
209 211
210 EXPECT_DOUBLE_EQ( 212 EXPECT_DOUBLE_EQ(
211 it->second, static_cast<double>(total_delay_ms) / num_frames); 213 it->second, static_cast<double>(total_delay_ms) / num_frames);
212 } 214 }
213 215
214 TEST_F(StatsEventSubscriberTest, E2ELatency) { 216 TEST_F(StatsEventSubscriberTest, E2ELatency) {
215 Init(VIDEO_EVENT); 217 Init(VIDEO_EVENT);
216 218
217 uint32 rtp_timestamp = 0; 219 uint32 rtp_timestamp = 0;
218 uint32 frame_id = 0; 220 uint32 frame_id = 0;
219 int num_frames = 10; 221 int num_frames = 10;
220 base::TimeDelta total_latency; 222 base::TimeDelta total_latency;
221 for (int i = 0; i < num_frames; i++) { 223 for (int i = 0; i < num_frames; i++) {
222 cast_environment_->Logging()->InsertFrameEvent(sender_clock_->NowTicks(), 224 cast_environment_->Logging()->InsertFrameEvent(sender_clock_->NowTicks(),
223 kVideoFrameCaptureBegin, 225 FRAME_CAPTURE_BEGIN,
226 VIDEO_EVENT,
224 rtp_timestamp, 227 rtp_timestamp,
225 frame_id); 228 frame_id);
226 229
227 int latency_micros = 100000 + base::RandInt(-5000, 50000); 230 int latency_micros = 100000 + base::RandInt(-5000, 50000);
228 base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros); 231 base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros);
229 AdvanceClocks(latency); 232 AdvanceClocks(latency);
230 233
231 int delay_micros = base::RandInt(-50000, 50000); 234 int delay_micros = base::RandInt(-50000, 50000);
232 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_micros); 235 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_micros);
233 total_latency += latency + delay; 236 total_latency += latency + delay;
234 237
235 cast_environment_->Logging()->InsertFrameEventWithDelay( 238 cast_environment_->Logging()->InsertFrameEventWithDelay(
236 receiver_clock_.NowTicks(), 239 receiver_clock_.NowTicks(),
237 kVideoRenderDelay, 240 FRAME_PLAYOUT,
241 VIDEO_EVENT,
238 rtp_timestamp, 242 rtp_timestamp,
239 frame_id, 243 frame_id,
240 delay); 244 delay);
241 245
242 rtp_timestamp += 90; 246 rtp_timestamp += 90;
243 frame_id++; 247 frame_id++;
244 } 248 }
245 249
246 StatsEventSubscriber::StatsMap stats_map; 250 StatsEventSubscriber::StatsMap stats_map;
247 subscriber_->GetStatsInternal(&stats_map); 251 subscriber_->GetStatsInternal(&stats_map);
(...skipping 19 matching lines...) Expand all
267 int num_packets_sent = 0; 271 int num_packets_sent = 0;
268 int num_packets_retransmitted = 0; 272 int num_packets_retransmitted = 0;
269 // Every 2nd packet will be retransmitted once. 273 // Every 2nd packet will be retransmitted once.
270 // Every 4th packet will be retransmitted twice. 274 // Every 4th packet will be retransmitted twice.
271 // Every 8th packet will be retransmitted 3 times. 275 // Every 8th packet will be retransmitted 3 times.
272 for (int i = 0; i < num_packets; i++) { 276 for (int i = 0; i < num_packets; i++) {
273 int size = 1000 + base::RandInt(-100, 100); 277 int size = 1000 + base::RandInt(-100, 100);
274 total_size += size; 278 total_size += size;
275 279
276 cast_environment_->Logging()->InsertPacketEvent(sender_clock_->NowTicks(), 280 cast_environment_->Logging()->InsertPacketEvent(sender_clock_->NowTicks(),
277 kVideoPacketSentToNetwork, 281 PACKET_SENT_TO_NETWORK,
282 VIDEO_EVENT,
278 rtp_timestamp, 283 rtp_timestamp,
279 0, 284 0,
280 i, 285 i,
281 num_packets - 1, 286 num_packets - 1,
282 size); 287 size);
283 num_packets_sent++; 288 num_packets_sent++;
284 289
285 int latency_micros = 20000 + base::RandInt(-10000, 10000); 290 int latency_micros = 20000 + base::RandInt(-10000, 10000);
286 base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros); 291 base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros);
287 // Latency is only recorded for packets that aren't retransmitted. 292 // Latency is only recorded for packets that aren't retransmitted.
288 if (i % 2 != 0) { 293 if (i % 2 != 0) {
289 total_latency += latency; 294 total_latency += latency;
290 num_latency_recorded_packets++; 295 num_latency_recorded_packets++;
291 } 296 }
292 297
293 AdvanceClocks(latency); 298 AdvanceClocks(latency);
294 299
295 base::TimeTicks received_time = receiver_clock_.NowTicks(); 300 base::TimeTicks received_time = receiver_clock_.NowTicks();
296 301
297 // Retransmission 1. 302 // Retransmission 1.
298 AdvanceClocks(base::TimeDelta::FromMicroseconds(12345)); 303 AdvanceClocks(base::TimeDelta::FromMicroseconds(12345));
299 if (i % 2 == 0) { 304 if (i % 2 == 0) {
300 cast_environment_->Logging()->InsertPacketEvent( 305 cast_environment_->Logging()->InsertPacketEvent(
301 receiver_clock_.NowTicks(), 306 receiver_clock_.NowTicks(),
302 kVideoPacketRetransmitted, 307 PACKET_RETRANSMITTED,
308 VIDEO_EVENT,
303 rtp_timestamp, 309 rtp_timestamp,
304 0, 310 0,
305 i, 311 i,
306 num_packets - 1, 312 num_packets - 1,
307 size); 313 size);
308 retransmit_total_size += size; 314 retransmit_total_size += size;
309 num_packets_sent++; 315 num_packets_sent++;
310 num_packets_retransmitted++; 316 num_packets_retransmitted++;
311 } 317 }
312 318
313 // Retransmission 2. 319 // Retransmission 2.
314 AdvanceClocks(base::TimeDelta::FromMicroseconds(13456)); 320 AdvanceClocks(base::TimeDelta::FromMicroseconds(13456));
315 if (i % 4 == 0) { 321 if (i % 4 == 0) {
316 cast_environment_->Logging()->InsertPacketEvent( 322 cast_environment_->Logging()->InsertPacketEvent(
317 receiver_clock_.NowTicks(), 323 receiver_clock_.NowTicks(),
318 kVideoPacketRetransmitted, 324 PACKET_RETRANSMITTED,
325 VIDEO_EVENT,
319 rtp_timestamp, 326 rtp_timestamp,
320 0, 327 0,
321 i, 328 i,
322 num_packets - 1, 329 num_packets - 1,
323 size); 330 size);
324 retransmit_total_size += size; 331 retransmit_total_size += size;
325 num_packets_sent++; 332 num_packets_sent++;
326 num_packets_retransmitted++; 333 num_packets_retransmitted++;
327 } 334 }
328 335
329 // Retransmission 3. 336 // Retransmission 3.
330 AdvanceClocks(base::TimeDelta::FromMicroseconds(14567)); 337 AdvanceClocks(base::TimeDelta::FromMicroseconds(14567));
331 if (i % 8 == 0) { 338 if (i % 8 == 0) {
332 cast_environment_->Logging()->InsertPacketEvent( 339 cast_environment_->Logging()->InsertPacketEvent(
333 receiver_clock_.NowTicks(), 340 receiver_clock_.NowTicks(),
334 kVideoPacketRetransmitted, 341 PACKET_RETRANSMITTED,
342 VIDEO_EVENT,
335 rtp_timestamp, 343 rtp_timestamp,
336 0, 344 0,
337 i, 345 i,
338 num_packets - 1, 346 num_packets - 1,
339 size); 347 size);
340 retransmit_total_size += size; 348 retransmit_total_size += size;
341 num_packets_sent++; 349 num_packets_sent++;
342 num_packets_retransmitted++; 350 num_packets_retransmitted++;
343 } 351 }
344 352
345 cast_environment_->Logging()->InsertPacketEvent(received_time, 353 cast_environment_->Logging()->InsertPacketEvent(received_time,
346 kVideoPacketReceived, 354 PACKET_RECEIVED,
355 VIDEO_EVENT,
347 rtp_timestamp, 356 rtp_timestamp,
348 0, 357 0,
349 i, 358 i,
350 num_packets - 1, 359 num_packets - 1,
351 size); 360 size);
352 } 361 }
353 362
354 base::TimeTicks end_time = sender_clock_->NowTicks(); 363 base::TimeTicks end_time = sender_clock_->NowTicks();
355 base::TimeDelta duration = end_time - start_time; 364 base::TimeDelta duration = end_time - start_time;
356 365
(...skipping 26 matching lines...) Expand all
383 it = stats_map.find(StatsEventSubscriber::PACKET_LOSS_FRACTION); 392 it = stats_map.find(StatsEventSubscriber::PACKET_LOSS_FRACTION);
384 ASSERT_NE(it, stats_map.end()); 393 ASSERT_NE(it, stats_map.end());
385 394
386 EXPECT_DOUBLE_EQ( 395 EXPECT_DOUBLE_EQ(
387 it->second, 396 it->second,
388 static_cast<double>(num_packets_retransmitted) / num_packets_sent); 397 static_cast<double>(num_packets_retransmitted) / num_packets_sent);
389 } 398 }
390 399
391 } // namespace cast 400 } // namespace cast
392 } // namespace media 401 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/logging/stats_event_subscriber.cc ('k') | media/cast/rtcp/receiver_rtcp_event_subscriber.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698