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

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

Issue 1905763002: Convert //media/cast from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « media/cast/logging/stats_event_subscriber.cc ('k') | media/cast/net/cast_transport.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "media/cast/logging/stats_event_subscriber.h" 5 #include "media/cast/logging/stats_event_subscriber.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9
10 #include <memory>
9 #include <utility> 11 #include <utility>
10 12
11 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "base/rand_util.h" 14 #include "base/rand_util.h"
14 #include "base/test/simple_test_tick_clock.h" 15 #include "base/test/simple_test_tick_clock.h"
15 #include "base/time/tick_clock.h" 16 #include "base/time/tick_clock.h"
16 #include "base/values.h" 17 #include "base/values.h"
17 #include "media/base/fake_single_thread_task_runner.h" 18 #include "media/base/fake_single_thread_task_runner.h"
18 #include "media/cast/cast_environment.h" 19 #include "media/cast/cast_environment.h"
19 #include "media/cast/logging/logging_defines.h" 20 #include "media/cast/logging/logging_defines.h"
20 #include "media/cast/test/fake_receiver_time_offset_estimator.h" 21 #include "media/cast/test/fake_receiver_time_offset_estimator.h"
21 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
22 23
23 namespace { 24 namespace {
24 const int kReceiverOffsetSecs = 100; 25 const int kReceiverOffsetSecs = 100;
25 } 26 }
26 27
27 namespace media { 28 namespace media {
28 namespace cast { 29 namespace cast {
29 30
30 class StatsEventSubscriberTest : public ::testing::Test { 31 class StatsEventSubscriberTest : public ::testing::Test {
31 protected: 32 protected:
32 StatsEventSubscriberTest() 33 StatsEventSubscriberTest()
33 : sender_clock_(new base::SimpleTestTickClock()), 34 : sender_clock_(new base::SimpleTestTickClock()),
34 task_runner_(new FakeSingleThreadTaskRunner(sender_clock_)), 35 task_runner_(new FakeSingleThreadTaskRunner(sender_clock_)),
35 cast_environment_( 36 cast_environment_(
36 new CastEnvironment(scoped_ptr<base::TickClock>(sender_clock_), 37 new CastEnvironment(std::unique_ptr<base::TickClock>(sender_clock_),
37 task_runner_, 38 task_runner_,
38 task_runner_, 39 task_runner_,
39 task_runner_)), 40 task_runner_)),
40 fake_offset_estimator_( 41 fake_offset_estimator_(
41 base::TimeDelta::FromSeconds(kReceiverOffsetSecs)) { 42 base::TimeDelta::FromSeconds(kReceiverOffsetSecs)) {
42 receiver_clock_.Advance(base::TimeDelta::FromSeconds(kReceiverOffsetSecs)); 43 receiver_clock_.Advance(base::TimeDelta::FromSeconds(kReceiverOffsetSecs));
43 cast_environment_->logger()->Subscribe(&fake_offset_estimator_); 44 cast_environment_->logger()->Subscribe(&fake_offset_estimator_);
44 } 45 }
45 46
46 ~StatsEventSubscriberTest() override { 47 ~StatsEventSubscriberTest() override {
(...skipping 12 matching lines...) Expand all
59 subscriber_.reset(new StatsEventSubscriber( 60 subscriber_.reset(new StatsEventSubscriber(
60 event_media_type, cast_environment_->Clock(), &fake_offset_estimator_)); 61 event_media_type, cast_environment_->Clock(), &fake_offset_estimator_));
61 cast_environment_->logger()->Subscribe(subscriber_.get()); 62 cast_environment_->logger()->Subscribe(subscriber_.get());
62 } 63 }
63 64
64 base::SimpleTestTickClock* sender_clock_; // Owned by CastEnvironment. 65 base::SimpleTestTickClock* sender_clock_; // Owned by CastEnvironment.
65 base::SimpleTestTickClock receiver_clock_; 66 base::SimpleTestTickClock receiver_clock_;
66 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_; 67 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_;
67 scoped_refptr<CastEnvironment> cast_environment_; 68 scoped_refptr<CastEnvironment> cast_environment_;
68 test::FakeReceiverTimeOffsetEstimator fake_offset_estimator_; 69 test::FakeReceiverTimeOffsetEstimator fake_offset_estimator_;
69 scoped_ptr<StatsEventSubscriber> subscriber_; 70 std::unique_ptr<StatsEventSubscriber> subscriber_;
70 }; 71 };
71 72
72 TEST_F(StatsEventSubscriberTest, CaptureEncode) { 73 TEST_F(StatsEventSubscriberTest, CaptureEncode) {
73 Init(VIDEO_EVENT); 74 Init(VIDEO_EVENT);
74 75
75 RtpTimeTicks rtp_timestamp; 76 RtpTimeTicks rtp_timestamp;
76 uint32_t frame_id = 0; 77 uint32_t frame_id = 0;
77 int extra_frames = 50; 78 int extra_frames = 50;
78 // Only the first |extra_frames| frames logged will be taken into account 79 // Only the first |extra_frames| frames logged will be taken into account
79 // when computing dropped frames. 80 // when computing dropped frames.
80 int num_frames = StatsEventSubscriber::kMaxFrameInfoMapSize + 50; 81 int num_frames = StatsEventSubscriber::kMaxFrameInfoMapSize + 50;
81 int dropped_frames = 0; 82 int dropped_frames = 0;
82 base::TimeTicks start_time = sender_clock_->NowTicks(); 83 base::TimeTicks start_time = sender_clock_->NowTicks();
83 // Drop half the frames during the encode step. 84 // Drop half the frames during the encode step.
84 for (int i = 0; i < num_frames; i++) { 85 for (int i = 0; i < num_frames; i++) {
85 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 86 std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent());
86 capture_begin_event->timestamp = sender_clock_->NowTicks(); 87 capture_begin_event->timestamp = sender_clock_->NowTicks();
87 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 88 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
88 capture_begin_event->media_type = VIDEO_EVENT; 89 capture_begin_event->media_type = VIDEO_EVENT;
89 capture_begin_event->rtp_timestamp = rtp_timestamp; 90 capture_begin_event->rtp_timestamp = rtp_timestamp;
90 cast_environment_->logger()->DispatchFrameEvent( 91 cast_environment_->logger()->DispatchFrameEvent(
91 std::move(capture_begin_event)); 92 std::move(capture_begin_event));
92 93
93 AdvanceClocks(base::TimeDelta::FromMicroseconds(10)); 94 AdvanceClocks(base::TimeDelta::FromMicroseconds(10));
94 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); 95 std::unique_ptr<FrameEvent> capture_end_event(new FrameEvent());
95 capture_end_event->timestamp = sender_clock_->NowTicks(); 96 capture_end_event->timestamp = sender_clock_->NowTicks();
96 capture_end_event->type = FRAME_CAPTURE_END; 97 capture_end_event->type = FRAME_CAPTURE_END;
97 capture_end_event->media_type = VIDEO_EVENT; 98 capture_end_event->media_type = VIDEO_EVENT;
98 capture_end_event->rtp_timestamp = rtp_timestamp; 99 capture_end_event->rtp_timestamp = rtp_timestamp;
99 cast_environment_->logger()->DispatchFrameEvent( 100 cast_environment_->logger()->DispatchFrameEvent(
100 std::move(capture_end_event)); 101 std::move(capture_end_event));
101 102
102 if (i % 2 == 0) { 103 if (i % 2 == 0) {
103 AdvanceClocks(base::TimeDelta::FromMicroseconds(10)); 104 AdvanceClocks(base::TimeDelta::FromMicroseconds(10));
104 scoped_ptr<FrameEvent> encode_event(new FrameEvent()); 105 std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
105 encode_event->timestamp = sender_clock_->NowTicks(); 106 encode_event->timestamp = sender_clock_->NowTicks();
106 encode_event->type = FRAME_ENCODED; 107 encode_event->type = FRAME_ENCODED;
107 encode_event->media_type = VIDEO_EVENT; 108 encode_event->media_type = VIDEO_EVENT;
108 encode_event->rtp_timestamp = rtp_timestamp; 109 encode_event->rtp_timestamp = rtp_timestamp;
109 encode_event->frame_id = frame_id; 110 encode_event->frame_id = frame_id;
110 encode_event->size = 1024; 111 encode_event->size = 1024;
111 encode_event->key_frame = true; 112 encode_event->key_frame = true;
112 encode_event->target_bitrate = 5678; 113 encode_event->target_bitrate = 5678;
113 encode_event->encoder_cpu_utilization = 9.10; 114 encode_event->encoder_cpu_utilization = 9.10;
114 encode_event->idealized_bitrate_utilization = 11.12; 115 encode_event->idealized_bitrate_utilization = 11.12;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 uint32_t frame_id = 0; 159 uint32_t frame_id = 0;
159 int num_frames = 10; 160 int num_frames = 10;
160 base::TimeTicks start_time = sender_clock_->NowTicks(); 161 base::TimeTicks start_time = sender_clock_->NowTicks();
161 AdvanceClocks(base::TimeDelta::FromMicroseconds(35678)); 162 AdvanceClocks(base::TimeDelta::FromMicroseconds(35678));
162 base::TimeTicks first_event_time = sender_clock_->NowTicks(); 163 base::TimeTicks first_event_time = sender_clock_->NowTicks();
163 base::TimeTicks last_event_time; 164 base::TimeTicks last_event_time;
164 int total_size = 0; 165 int total_size = 0;
165 for (int i = 0; i < num_frames; i++) { 166 for (int i = 0; i < num_frames; i++) {
166 int size = 1000 + base::RandInt(-100, 100); 167 int size = 1000 + base::RandInt(-100, 100);
167 total_size += size; 168 total_size += size;
168 scoped_ptr<FrameEvent> encode_event(new FrameEvent()); 169 std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
169 encode_event->timestamp = sender_clock_->NowTicks(); 170 encode_event->timestamp = sender_clock_->NowTicks();
170 encode_event->type = FRAME_ENCODED; 171 encode_event->type = FRAME_ENCODED;
171 encode_event->media_type = VIDEO_EVENT; 172 encode_event->media_type = VIDEO_EVENT;
172 encode_event->rtp_timestamp = rtp_timestamp; 173 encode_event->rtp_timestamp = rtp_timestamp;
173 encode_event->frame_id = frame_id; 174 encode_event->frame_id = frame_id;
174 encode_event->size = size; 175 encode_event->size = size;
175 encode_event->key_frame = true; 176 encode_event->key_frame = true;
176 encode_event->target_bitrate = 5678; 177 encode_event->target_bitrate = 5678;
177 encode_event->encoder_cpu_utilization = 9.10; 178 encode_event->encoder_cpu_utilization = 9.10;
178 encode_event->idealized_bitrate_utilization = 11.12; 179 encode_event->idealized_bitrate_utilization = 11.12;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 } 221 }
221 222
222 TEST_F(StatsEventSubscriberTest, Decode) { 223 TEST_F(StatsEventSubscriberTest, Decode) {
223 Init(VIDEO_EVENT); 224 Init(VIDEO_EVENT);
224 225
225 RtpTimeTicks rtp_timestamp; 226 RtpTimeTicks rtp_timestamp;
226 uint32_t frame_id = 0; 227 uint32_t frame_id = 0;
227 int num_frames = 10; 228 int num_frames = 10;
228 base::TimeTicks start_time = sender_clock_->NowTicks(); 229 base::TimeTicks start_time = sender_clock_->NowTicks();
229 for (int i = 0; i < num_frames; i++) { 230 for (int i = 0; i < num_frames; i++) {
230 scoped_ptr<FrameEvent> decode_event(new FrameEvent()); 231 std::unique_ptr<FrameEvent> decode_event(new FrameEvent());
231 decode_event->timestamp = receiver_clock_.NowTicks(); 232 decode_event->timestamp = receiver_clock_.NowTicks();
232 decode_event->type = FRAME_DECODED; 233 decode_event->type = FRAME_DECODED;
233 decode_event->media_type = VIDEO_EVENT; 234 decode_event->media_type = VIDEO_EVENT;
234 decode_event->rtp_timestamp = rtp_timestamp; 235 decode_event->rtp_timestamp = rtp_timestamp;
235 decode_event->frame_id = frame_id; 236 decode_event->frame_id = frame_id;
236 cast_environment_->logger()->DispatchFrameEvent(std::move(decode_event)); 237 cast_environment_->logger()->DispatchFrameEvent(std::move(decode_event));
237 238
238 AdvanceClocks(base::TimeDelta::FromMicroseconds(36789)); 239 AdvanceClocks(base::TimeDelta::FromMicroseconds(36789));
239 rtp_timestamp += RtpTimeDelta::FromTicks(90); 240 rtp_timestamp += RtpTimeDelta::FromTicks(90);
240 frame_id++; 241 frame_id++;
(...skipping 18 matching lines...) Expand all
259 Init(VIDEO_EVENT); 260 Init(VIDEO_EVENT);
260 261
261 RtpTimeTicks rtp_timestamp; 262 RtpTimeTicks rtp_timestamp;
262 uint32_t frame_id = 0; 263 uint32_t frame_id = 0;
263 int num_frames = 10; 264 int num_frames = 10;
264 int late_frames = 0; 265 int late_frames = 0;
265 for (int i = 0, delay_ms = -50; i < num_frames; i++, delay_ms += 10) { 266 for (int i = 0, delay_ms = -50; i < num_frames; i++, delay_ms += 10) {
266 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_ms); 267 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_ms);
267 if (delay_ms > 0) 268 if (delay_ms > 0)
268 late_frames++; 269 late_frames++;
269 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 270 std::unique_ptr<FrameEvent> playout_event(new FrameEvent());
270 playout_event->timestamp = receiver_clock_.NowTicks(); 271 playout_event->timestamp = receiver_clock_.NowTicks();
271 playout_event->type = FRAME_PLAYOUT; 272 playout_event->type = FRAME_PLAYOUT;
272 playout_event->media_type = VIDEO_EVENT; 273 playout_event->media_type = VIDEO_EVENT;
273 playout_event->rtp_timestamp = rtp_timestamp; 274 playout_event->rtp_timestamp = rtp_timestamp;
274 playout_event->frame_id = frame_id; 275 playout_event->frame_id = frame_id;
275 playout_event->delay_delta = delay; 276 playout_event->delay_delta = delay;
276 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event)); 277 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
277 278
278 AdvanceClocks(base::TimeDelta::FromMicroseconds(37890)); 279 AdvanceClocks(base::TimeDelta::FromMicroseconds(37890));
279 rtp_timestamp += RtpTimeDelta::FromTicks(90); 280 rtp_timestamp += RtpTimeDelta::FromTicks(90);
(...skipping 11 matching lines...) Expand all
291 } 292 }
292 293
293 TEST_F(StatsEventSubscriberTest, E2ELatency) { 294 TEST_F(StatsEventSubscriberTest, E2ELatency) {
294 Init(VIDEO_EVENT); 295 Init(VIDEO_EVENT);
295 296
296 RtpTimeTicks rtp_timestamp; 297 RtpTimeTicks rtp_timestamp;
297 uint32_t frame_id = 0; 298 uint32_t frame_id = 0;
298 int num_frames = 10; 299 int num_frames = 10;
299 base::TimeDelta total_latency; 300 base::TimeDelta total_latency;
300 for (int i = 0; i < num_frames; i++) { 301 for (int i = 0; i < num_frames; i++) {
301 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 302 std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent());
302 capture_begin_event->timestamp = sender_clock_->NowTicks(); 303 capture_begin_event->timestamp = sender_clock_->NowTicks();
303 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 304 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
304 capture_begin_event->media_type = VIDEO_EVENT; 305 capture_begin_event->media_type = VIDEO_EVENT;
305 capture_begin_event->rtp_timestamp = rtp_timestamp; 306 capture_begin_event->rtp_timestamp = rtp_timestamp;
306 cast_environment_->logger()->DispatchFrameEvent( 307 cast_environment_->logger()->DispatchFrameEvent(
307 std::move(capture_begin_event)); 308 std::move(capture_begin_event));
308 309
309 int latency_micros = 100000 + base::RandInt(-5000, 50000); 310 int latency_micros = 100000 + base::RandInt(-5000, 50000);
310 base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros); 311 base::TimeDelta latency = base::TimeDelta::FromMicroseconds(latency_micros);
311 AdvanceClocks(latency); 312 AdvanceClocks(latency);
312 313
313 int delay_micros = base::RandInt(-50000, 50000); 314 int delay_micros = base::RandInt(-50000, 50000);
314 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_micros); 315 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(delay_micros);
315 total_latency += latency; 316 total_latency += latency;
316 317
317 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 318 std::unique_ptr<FrameEvent> playout_event(new FrameEvent());
318 playout_event->timestamp = receiver_clock_.NowTicks(); 319 playout_event->timestamp = receiver_clock_.NowTicks();
319 playout_event->type = FRAME_PLAYOUT; 320 playout_event->type = FRAME_PLAYOUT;
320 playout_event->media_type = VIDEO_EVENT; 321 playout_event->media_type = VIDEO_EVENT;
321 playout_event->rtp_timestamp = rtp_timestamp; 322 playout_event->rtp_timestamp = rtp_timestamp;
322 playout_event->frame_id = frame_id; 323 playout_event->frame_id = frame_id;
323 playout_event->delay_delta = delay; 324 playout_event->delay_delta = delay;
324 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event)); 325 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
325 326
326 rtp_timestamp += RtpTimeDelta::FromTicks(90); 327 rtp_timestamp += RtpTimeDelta::FromTicks(90);
327 frame_id++; 328 frame_id++;
(...skipping 22 matching lines...) Expand all
350 base::TimeDelta total_network_latency; 351 base::TimeDelta total_network_latency;
351 base::TimeDelta total_queueing_latency; 352 base::TimeDelta total_queueing_latency;
352 base::TimeDelta total_packet_latency; 353 base::TimeDelta total_packet_latency;
353 int num_packets_transmitted = 0; 354 int num_packets_transmitted = 0;
354 int num_packets_received = 0; 355 int num_packets_received = 0;
355 int num_packets_retransmitted = 0; 356 int num_packets_retransmitted = 0;
356 int num_packets_rtx_rejected = 0; 357 int num_packets_rtx_rejected = 0;
357 358
358 base::TimeTicks sender_encoded_time = sender_clock_->NowTicks(); 359 base::TimeTicks sender_encoded_time = sender_clock_->NowTicks();
359 base::TimeTicks receiver_encoded_time = receiver_clock_.NowTicks(); 360 base::TimeTicks receiver_encoded_time = receiver_clock_.NowTicks();
360 scoped_ptr<FrameEvent> encode_event(new FrameEvent()); 361 std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
361 encode_event->timestamp = sender_encoded_time; 362 encode_event->timestamp = sender_encoded_time;
362 encode_event->type = FRAME_ENCODED; 363 encode_event->type = FRAME_ENCODED;
363 encode_event->media_type = VIDEO_EVENT; 364 encode_event->media_type = VIDEO_EVENT;
364 encode_event->rtp_timestamp = rtp_timestamp; 365 encode_event->rtp_timestamp = rtp_timestamp;
365 encode_event->frame_id = 0; 366 encode_event->frame_id = 0;
366 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); 367 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event));
367 368
368 // Every 2nd packet will be retransmitted once. 369 // Every 2nd packet will be retransmitted once.
369 // Every 4th packet will be retransmitted twice. 370 // Every 4th packet will be retransmitted twice.
370 // Every 8th packet will be retransmitted 3 times + 1 rejected retransmission. 371 // Every 8th packet will be retransmitted 3 times + 1 rejected retransmission.
371 for (int i = 0; i < num_packets; i++) { 372 for (int i = 0; i < num_packets; i++) {
372 int size = 1000 + base::RandInt(-100, 100); 373 int size = 1000 + base::RandInt(-100, 100);
373 total_size += size; 374 total_size += size;
374 375
375 scoped_ptr<PacketEvent> send_event(new PacketEvent()); 376 std::unique_ptr<PacketEvent> send_event(new PacketEvent());
376 send_event->timestamp = sender_clock_->NowTicks(); 377 send_event->timestamp = sender_clock_->NowTicks();
377 send_event->type = PACKET_SENT_TO_NETWORK; 378 send_event->type = PACKET_SENT_TO_NETWORK;
378 send_event->media_type = VIDEO_EVENT; 379 send_event->media_type = VIDEO_EVENT;
379 send_event->rtp_timestamp = rtp_timestamp; 380 send_event->rtp_timestamp = rtp_timestamp;
380 send_event->frame_id = 0; 381 send_event->frame_id = 0;
381 send_event->packet_id = i; 382 send_event->packet_id = i;
382 send_event->max_packet_id = num_packets - 1; 383 send_event->max_packet_id = num_packets - 1;
383 send_event->size = size; 384 send_event->size = size;
384 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); 385 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
385 386
(...skipping 10 matching lines...) Expand all
396 num_latency_recorded_packets++; 397 num_latency_recorded_packets++;
397 } 398 }
398 399
399 AdvanceClocks(latency); 400 AdvanceClocks(latency);
400 401
401 base::TimeTicks received_time = receiver_clock_.NowTicks(); 402 base::TimeTicks received_time = receiver_clock_.NowTicks();
402 403
403 // Retransmission 1. 404 // Retransmission 1.
404 AdvanceClocks(base::TimeDelta::FromMicroseconds(12345)); 405 AdvanceClocks(base::TimeDelta::FromMicroseconds(12345));
405 if (i % 2 == 0) { 406 if (i % 2 == 0) {
406 scoped_ptr<PacketEvent> retransmit_event(new PacketEvent()); 407 std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
407 retransmit_event->timestamp = receiver_clock_.NowTicks(); 408 retransmit_event->timestamp = receiver_clock_.NowTicks();
408 retransmit_event->type = PACKET_RETRANSMITTED; 409 retransmit_event->type = PACKET_RETRANSMITTED;
409 retransmit_event->media_type = VIDEO_EVENT; 410 retransmit_event->media_type = VIDEO_EVENT;
410 retransmit_event->rtp_timestamp = rtp_timestamp; 411 retransmit_event->rtp_timestamp = rtp_timestamp;
411 retransmit_event->frame_id = 0; 412 retransmit_event->frame_id = 0;
412 retransmit_event->packet_id = i; 413 retransmit_event->packet_id = i;
413 retransmit_event->max_packet_id = num_packets - 1; 414 retransmit_event->max_packet_id = num_packets - 1;
414 retransmit_event->size = size; 415 retransmit_event->size = size;
415 cast_environment_->logger()->DispatchPacketEvent( 416 cast_environment_->logger()->DispatchPacketEvent(
416 std::move(retransmit_event)); 417 std::move(retransmit_event));
417 418
418 retransmit_total_size += size; 419 retransmit_total_size += size;
419 num_packets_transmitted++; 420 num_packets_transmitted++;
420 num_packets_retransmitted++; 421 num_packets_retransmitted++;
421 } 422 }
422 423
423 // Retransmission 2. 424 // Retransmission 2.
424 AdvanceClocks(base::TimeDelta::FromMicroseconds(13456)); 425 AdvanceClocks(base::TimeDelta::FromMicroseconds(13456));
425 if (i % 4 == 0) { 426 if (i % 4 == 0) {
426 scoped_ptr<PacketEvent> retransmit_event(new PacketEvent()); 427 std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
427 retransmit_event->timestamp = receiver_clock_.NowTicks(); 428 retransmit_event->timestamp = receiver_clock_.NowTicks();
428 retransmit_event->type = PACKET_RETRANSMITTED; 429 retransmit_event->type = PACKET_RETRANSMITTED;
429 retransmit_event->media_type = VIDEO_EVENT; 430 retransmit_event->media_type = VIDEO_EVENT;
430 retransmit_event->rtp_timestamp = rtp_timestamp; 431 retransmit_event->rtp_timestamp = rtp_timestamp;
431 retransmit_event->frame_id = 0; 432 retransmit_event->frame_id = 0;
432 retransmit_event->packet_id = i; 433 retransmit_event->packet_id = i;
433 retransmit_event->max_packet_id = num_packets - 1; 434 retransmit_event->max_packet_id = num_packets - 1;
434 retransmit_event->size = size; 435 retransmit_event->size = size;
435 cast_environment_->logger()->DispatchPacketEvent( 436 cast_environment_->logger()->DispatchPacketEvent(
436 std::move(retransmit_event)); 437 std::move(retransmit_event));
437 438
438 retransmit_total_size += size; 439 retransmit_total_size += size;
439 num_packets_transmitted++; 440 num_packets_transmitted++;
440 num_packets_retransmitted++; 441 num_packets_retransmitted++;
441 } 442 }
442 443
443 // Retransmission 3. 444 // Retransmission 3.
444 AdvanceClocks(base::TimeDelta::FromMicroseconds(14567)); 445 AdvanceClocks(base::TimeDelta::FromMicroseconds(14567));
445 if (i % 8 == 0) { 446 if (i % 8 == 0) {
446 scoped_ptr<PacketEvent> retransmit_event(new PacketEvent()); 447 std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent());
447 retransmit_event->timestamp = receiver_clock_.NowTicks(); 448 retransmit_event->timestamp = receiver_clock_.NowTicks();
448 retransmit_event->type = PACKET_RETRANSMITTED; 449 retransmit_event->type = PACKET_RETRANSMITTED;
449 retransmit_event->media_type = VIDEO_EVENT; 450 retransmit_event->media_type = VIDEO_EVENT;
450 retransmit_event->rtp_timestamp = rtp_timestamp; 451 retransmit_event->rtp_timestamp = rtp_timestamp;
451 retransmit_event->frame_id = 0; 452 retransmit_event->frame_id = 0;
452 retransmit_event->packet_id = i; 453 retransmit_event->packet_id = i;
453 retransmit_event->max_packet_id = num_packets - 1; 454 retransmit_event->max_packet_id = num_packets - 1;
454 retransmit_event->size = size; 455 retransmit_event->size = size;
455 cast_environment_->logger()->DispatchPacketEvent( 456 cast_environment_->logger()->DispatchPacketEvent(
456 std::move(retransmit_event)); 457 std::move(retransmit_event));
457 458
458 scoped_ptr<PacketEvent> reject_event(new PacketEvent()); 459 std::unique_ptr<PacketEvent> reject_event(new PacketEvent());
459 reject_event->timestamp = receiver_clock_.NowTicks(); 460 reject_event->timestamp = receiver_clock_.NowTicks();
460 reject_event->type = PACKET_RTX_REJECTED; 461 reject_event->type = PACKET_RTX_REJECTED;
461 reject_event->media_type = VIDEO_EVENT; 462 reject_event->media_type = VIDEO_EVENT;
462 reject_event->rtp_timestamp = rtp_timestamp; 463 reject_event->rtp_timestamp = rtp_timestamp;
463 reject_event->frame_id = 0; 464 reject_event->frame_id = 0;
464 reject_event->packet_id = i; 465 reject_event->packet_id = i;
465 reject_event->max_packet_id = num_packets - 1; 466 reject_event->max_packet_id = num_packets - 1;
466 reject_event->size = size; 467 reject_event->size = size;
467 cast_environment_->logger()->DispatchPacketEvent(std::move(reject_event)); 468 cast_environment_->logger()->DispatchPacketEvent(std::move(reject_event));
468 469
469 retransmit_total_size += size; 470 retransmit_total_size += size;
470 num_packets_transmitted++; 471 num_packets_transmitted++;
471 num_packets_retransmitted++; 472 num_packets_retransmitted++;
472 num_packets_rtx_rejected++; 473 num_packets_rtx_rejected++;
473 } 474 }
474 475
475 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); 476 std::unique_ptr<PacketEvent> receive_event(new PacketEvent());
476 receive_event->timestamp = received_time; 477 receive_event->timestamp = received_time;
477 receive_event->type = PACKET_RECEIVED; 478 receive_event->type = PACKET_RECEIVED;
478 receive_event->media_type = VIDEO_EVENT; 479 receive_event->media_type = VIDEO_EVENT;
479 receive_event->rtp_timestamp = rtp_timestamp; 480 receive_event->rtp_timestamp = rtp_timestamp;
480 receive_event->frame_id = 0; 481 receive_event->frame_id = 0;
481 receive_event->packet_id = i; 482 receive_event->packet_id = i;
482 receive_event->max_packet_id = num_packets - 1; 483 receive_event->max_packet_id = num_packets - 1;
483 receive_event->size = size; 484 receive_event->size = size;
484 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); 485 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event));
485 486
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 571
571 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(123)); 572 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(123));
572 uint32_t frame_id = 0; 573 uint32_t frame_id = 0;
573 574
574 // 10 Frames with capture latency in the bucket of "10-14"ms. 575 // 10 Frames with capture latency in the bucket of "10-14"ms.
575 // 10 Frames with encode time in the bucket of "15-19"ms. 576 // 10 Frames with encode time in the bucket of "15-19"ms.
576 for (int i = 0; i < 10; ++i) { 577 for (int i = 0; i < 10; ++i) {
577 ++frame_id; 578 ++frame_id;
578 rtp_timestamp += RtpTimeDelta::FromTicks(1); 579 rtp_timestamp += RtpTimeDelta::FromTicks(1);
579 580
580 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 581 std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent());
581 capture_begin_event->timestamp = sender_clock_->NowTicks(); 582 capture_begin_event->timestamp = sender_clock_->NowTicks();
582 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 583 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
583 capture_begin_event->media_type = VIDEO_EVENT; 584 capture_begin_event->media_type = VIDEO_EVENT;
584 capture_begin_event->rtp_timestamp = rtp_timestamp; 585 capture_begin_event->rtp_timestamp = rtp_timestamp;
585 cast_environment_->logger()->DispatchFrameEvent( 586 cast_environment_->logger()->DispatchFrameEvent(
586 std::move(capture_begin_event)); 587 std::move(capture_begin_event));
587 588
588 AdvanceClocks(base::TimeDelta::FromMilliseconds(10)); 589 AdvanceClocks(base::TimeDelta::FromMilliseconds(10));
589 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); 590 std::unique_ptr<FrameEvent> capture_end_event(new FrameEvent());
590 capture_end_event->timestamp = sender_clock_->NowTicks(); 591 capture_end_event->timestamp = sender_clock_->NowTicks();
591 capture_end_event->type = FRAME_CAPTURE_END; 592 capture_end_event->type = FRAME_CAPTURE_END;
592 capture_end_event->media_type = VIDEO_EVENT; 593 capture_end_event->media_type = VIDEO_EVENT;
593 capture_end_event->rtp_timestamp = rtp_timestamp; 594 capture_end_event->rtp_timestamp = rtp_timestamp;
594 cast_environment_->logger()->DispatchFrameEvent( 595 cast_environment_->logger()->DispatchFrameEvent(
595 std::move(capture_end_event)); 596 std::move(capture_end_event));
596 597
597 AdvanceClocks(base::TimeDelta::FromMilliseconds(15)); 598 AdvanceClocks(base::TimeDelta::FromMilliseconds(15));
598 scoped_ptr<FrameEvent> encode_event(new FrameEvent()); 599 std::unique_ptr<FrameEvent> encode_event(new FrameEvent());
599 encode_event->timestamp = sender_clock_->NowTicks(); 600 encode_event->timestamp = sender_clock_->NowTicks();
600 encode_event->type = FRAME_ENCODED; 601 encode_event->type = FRAME_ENCODED;
601 encode_event->media_type = VIDEO_EVENT; 602 encode_event->media_type = VIDEO_EVENT;
602 encode_event->rtp_timestamp = rtp_timestamp; 603 encode_event->rtp_timestamp = rtp_timestamp;
603 encode_event->frame_id = frame_id; 604 encode_event->frame_id = frame_id;
604 encode_event->size = 1024; 605 encode_event->size = 1024;
605 encode_event->key_frame = true; 606 encode_event->key_frame = true;
606 encode_event->target_bitrate = 5678; 607 encode_event->target_bitrate = 5678;
607 encode_event->encoder_cpu_utilization = 9.10; 608 encode_event->encoder_cpu_utilization = 9.10;
608 encode_event->idealized_bitrate_utilization = 11.12; 609 encode_event->idealized_bitrate_utilization = 11.12;
609 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); 610 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event));
610 } 611 }
611 612
612 // Send 3 packets for the last frame. 613 // Send 3 packets for the last frame.
613 // Queueing latencies are 100ms, 200ms and 300ms. 614 // Queueing latencies are 100ms, 200ms and 300ms.
614 for (int i = 0; i < 3; ++i) { 615 for (int i = 0; i < 3; ++i) {
615 AdvanceClocks(base::TimeDelta::FromMilliseconds(100)); 616 AdvanceClocks(base::TimeDelta::FromMilliseconds(100));
616 scoped_ptr<PacketEvent> send_event(new PacketEvent()); 617 std::unique_ptr<PacketEvent> send_event(new PacketEvent());
617 send_event->timestamp = sender_clock_->NowTicks(); 618 send_event->timestamp = sender_clock_->NowTicks();
618 send_event->type = PACKET_SENT_TO_NETWORK; 619 send_event->type = PACKET_SENT_TO_NETWORK;
619 send_event->media_type = VIDEO_EVENT; 620 send_event->media_type = VIDEO_EVENT;
620 send_event->rtp_timestamp = rtp_timestamp; 621 send_event->rtp_timestamp = rtp_timestamp;
621 send_event->frame_id = 0; 622 send_event->frame_id = 0;
622 send_event->packet_id = i; 623 send_event->packet_id = i;
623 send_event->max_packet_id = 2; 624 send_event->max_packet_id = 2;
624 send_event->size = 123; 625 send_event->size = 123;
625 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); 626 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event));
626 } 627 }
627 628
628 // Receive 3 packets for the last frame. 629 // Receive 3 packets for the last frame.
629 // Network latencies are 100ms, 200ms and 300ms. 630 // Network latencies are 100ms, 200ms and 300ms.
630 // Packet latencies are 400ms. 631 // Packet latencies are 400ms.
631 AdvanceClocks(base::TimeDelta::FromMilliseconds(100)); 632 AdvanceClocks(base::TimeDelta::FromMilliseconds(100));
632 for (int i = 0; i < 3; ++i) { 633 for (int i = 0; i < 3; ++i) {
633 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); 634 std::unique_ptr<PacketEvent> receive_event(new PacketEvent());
634 receive_event->timestamp = receiver_clock_.NowTicks(); 635 receive_event->timestamp = receiver_clock_.NowTicks();
635 receive_event->type = PACKET_RECEIVED; 636 receive_event->type = PACKET_RECEIVED;
636 receive_event->media_type = VIDEO_EVENT; 637 receive_event->media_type = VIDEO_EVENT;
637 receive_event->rtp_timestamp = rtp_timestamp; 638 receive_event->rtp_timestamp = rtp_timestamp;
638 receive_event->frame_id = 0; 639 receive_event->frame_id = 0;
639 receive_event->packet_id = i; 640 receive_event->packet_id = i;
640 receive_event->max_packet_id = 2; 641 receive_event->max_packet_id = 2;
641 receive_event->size = 123; 642 receive_event->size = 123;
642 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); 643 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event));
643 } 644 }
644 645
645 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 646 std::unique_ptr<FrameEvent> playout_event(new FrameEvent());
646 playout_event->timestamp = receiver_clock_.NowTicks(); 647 playout_event->timestamp = receiver_clock_.NowTicks();
647 playout_event->type = FRAME_PLAYOUT; 648 playout_event->type = FRAME_PLAYOUT;
648 playout_event->media_type = VIDEO_EVENT; 649 playout_event->media_type = VIDEO_EVENT;
649 playout_event->rtp_timestamp = rtp_timestamp; 650 playout_event->rtp_timestamp = rtp_timestamp;
650 playout_event->frame_id = frame_id; 651 playout_event->frame_id = frame_id;
651 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100); 652 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100);
652 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event)); 653 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event));
653 654
654 StatsEventSubscriber::SimpleHistogram* histogram; 655 StatsEventSubscriber::SimpleHistogram* histogram;
655 scoped_ptr<base::ListValue> values; 656 std::unique_ptr<base::ListValue> values;
656 657
657 histogram = subscriber_->GetHistogramForTesting( 658 histogram = subscriber_->GetHistogramForTesting(
658 StatsEventSubscriber::CAPTURE_LATENCY_MS_HISTO); 659 StatsEventSubscriber::CAPTURE_LATENCY_MS_HISTO);
659 ASSERT_TRUE(histogram); 660 ASSERT_TRUE(histogram);
660 values = histogram->GetHistogram(); 661 values = histogram->GetHistogram();
661 EXPECT_TRUE(CheckHistogramHasValue(values.get(), "10-14", 10)); 662 EXPECT_TRUE(CheckHistogramHasValue(values.get(), "10-14", 10));
662 663
663 histogram = subscriber_->GetHistogramForTesting( 664 histogram = subscriber_->GetHistogramForTesting(
664 StatsEventSubscriber::ENCODE_TIME_MS_HISTO); 665 StatsEventSubscriber::ENCODE_TIME_MS_HISTO);
665 ASSERT_TRUE(histogram); 666 ASSERT_TRUE(histogram);
(...skipping 24 matching lines...) Expand all
690 691
691 histogram = subscriber_->GetHistogramForTesting( 692 histogram = subscriber_->GetHistogramForTesting(
692 StatsEventSubscriber::LATE_FRAME_MS_HISTO); 693 StatsEventSubscriber::LATE_FRAME_MS_HISTO);
693 ASSERT_TRUE(histogram); 694 ASSERT_TRUE(histogram);
694 values = histogram->GetHistogram(); 695 values = histogram->GetHistogram();
695 EXPECT_TRUE(CheckHistogramHasValue(values.get(), "100-119", 1)); 696 EXPECT_TRUE(CheckHistogramHasValue(values.get(), "100-119", 1));
696 } 697 }
697 698
698 } // namespace cast 699 } // namespace cast
699 } // namespace media 700 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/logging/stats_event_subscriber.cc ('k') | media/cast/net/cast_transport.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698