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 "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/test/simple_test_tick_clock.h" | 7 #include "base/test/simple_test_tick_clock.h" |
8 #include "base/time/tick_clock.h" | 8 #include "base/time/tick_clock.h" |
9 #include "media/cast/cast_environment.h" | 9 #include "media/cast/cast_environment.h" |
10 #include "media/cast/logging/encoding_event_subscriber.h" | 10 #include "media/cast/logging/encoding_event_subscriber.h" |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 EXPECT_EQ(media::cast::proto::AUDIO_PACKET_RECEIVED, | 321 EXPECT_EQ(media::cast::proto::AUDIO_PACKET_RECEIVED, |
322 base_event.event_type(0)); | 322 base_event.event_type(0)); |
323 ASSERT_EQ(1, base_event.event_timestamp_micros_size()); | 323 ASSERT_EQ(1, base_event.event_timestamp_micros_size()); |
324 EXPECT_EQ(now.ToInternalValue(), base_event.event_timestamp_micros(0)); | 324 EXPECT_EQ(now.ToInternalValue(), base_event.event_timestamp_micros(0)); |
325 | 325 |
326 GetEventsAndReset(); | 326 GetEventsAndReset(); |
327 EXPECT_TRUE(packet_events_.empty()); | 327 EXPECT_TRUE(packet_events_.empty()); |
328 } | 328 } |
329 | 329 |
330 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForPacket) { | 330 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForPacket) { |
331 Init(OTHER_EVENT); | 331 Init(VIDEO_EVENT); |
332 base::TimeTicks now1(testing_clock_->NowTicks()); | 332 base::TimeTicks now1(testing_clock_->NowTicks()); |
333 RtpTimestamp rtp_timestamp = 100; | 333 RtpTimestamp rtp_timestamp = 100; |
334 int packet_id = 2; | 334 int packet_id = 2; |
335 int size = 100; | 335 int size = 100; |
336 cast_environment_->Logging()->InsertPacketEvent( | 336 cast_environment_->Logging()->InsertPacketEvent(now1, |
337 now1, kPacketSentToPacer, rtp_timestamp, /*frame_id*/ 0, packet_id, | 337 kVideoPacketSentToPacer, |
338 /*max_packet_id*/ 10, size); | 338 rtp_timestamp, |
| 339 /*frame_id*/ 0, |
| 340 packet_id, |
| 341 /*max_packet_id*/ 10, |
| 342 size); |
339 | 343 |
340 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20)); | 344 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20)); |
341 base::TimeTicks now2(testing_clock_->NowTicks()); | 345 base::TimeTicks now2(testing_clock_->NowTicks()); |
342 cast_environment_->Logging()->InsertPacketEvent( | 346 cast_environment_->Logging()->InsertPacketEvent(now2, |
343 now2, kPacketSentToNetwork, rtp_timestamp, /*frame_id*/ 0, packet_id, | 347 kVideoPacketSentToNetwork, |
344 /*max_packet_id*/ 10, size); | 348 rtp_timestamp, |
| 349 /*frame_id*/ 0, |
| 350 packet_id, |
| 351 /*max_packet_id*/ 10, |
| 352 size); |
345 | 353 |
346 GetEventsAndReset(); | 354 GetEventsAndReset(); |
347 | 355 |
348 ASSERT_EQ(1u, packet_events_.size()); | 356 ASSERT_EQ(1u, packet_events_.size()); |
349 | 357 |
350 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; | 358 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; |
351 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); | 359 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); |
352 ASSERT_TRUE(it != packet_events_.end()); | 360 ASSERT_TRUE(it != packet_events_.end()); |
353 | 361 |
354 linked_ptr<AggregatedPacketEvent> event = it->second; | 362 linked_ptr<AggregatedPacketEvent> event = it->second; |
355 | 363 |
356 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); | 364 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); |
357 | 365 |
358 ASSERT_EQ(1, event->base_packet_event_size()); | 366 ASSERT_EQ(1, event->base_packet_event_size()); |
359 const BasePacketEvent& base_event = event->base_packet_event(0); | 367 const BasePacketEvent& base_event = event->base_packet_event(0); |
360 EXPECT_EQ(packet_id, base_event.packet_id()); | 368 EXPECT_EQ(packet_id, base_event.packet_id()); |
361 ASSERT_EQ(2, base_event.event_type_size()); | 369 ASSERT_EQ(2, base_event.event_type_size()); |
362 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_PACER, base_event.event_type(0)); | 370 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, |
363 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_NETWORK, | 371 base_event.event_type(0)); |
| 372 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_NETWORK, |
364 base_event.event_type(1)); | 373 base_event.event_type(1)); |
365 ASSERT_EQ(2, base_event.event_timestamp_micros_size()); | 374 ASSERT_EQ(2, base_event.event_timestamp_micros_size()); |
366 EXPECT_EQ(now1.ToInternalValue(), base_event.event_timestamp_micros(0)); | 375 EXPECT_EQ(now1.ToInternalValue(), base_event.event_timestamp_micros(0)); |
367 EXPECT_EQ(now2.ToInternalValue(), base_event.event_timestamp_micros(1)); | 376 EXPECT_EQ(now2.ToInternalValue(), base_event.event_timestamp_micros(1)); |
368 } | 377 } |
369 | 378 |
370 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForFrame) { | 379 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForFrame) { |
371 Init(OTHER_EVENT); | 380 Init(VIDEO_EVENT); |
372 base::TimeTicks now1(testing_clock_->NowTicks()); | 381 base::TimeTicks now1(testing_clock_->NowTicks()); |
373 RtpTimestamp rtp_timestamp = 100; | 382 RtpTimestamp rtp_timestamp = 100; |
374 int packet_id_1 = 2; | 383 int packet_id_1 = 2; |
375 int packet_id_2 = 3; | 384 int packet_id_2 = 3; |
376 int size = 100; | 385 int size = 100; |
377 cast_environment_->Logging()->InsertPacketEvent( | 386 cast_environment_->Logging()->InsertPacketEvent(now1, |
378 now1, kPacketSentToPacer, rtp_timestamp, /*frame_id*/ 0, packet_id_1, | 387 kVideoPacketSentToPacer, |
379 /*max_packet_id*/ 10, size); | 388 rtp_timestamp, |
| 389 /*frame_id*/ 0, |
| 390 packet_id_1, |
| 391 /*max_packet_id*/ 10, |
| 392 size); |
380 | 393 |
381 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20)); | 394 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20)); |
382 base::TimeTicks now2(testing_clock_->NowTicks()); | 395 base::TimeTicks now2(testing_clock_->NowTicks()); |
383 cast_environment_->Logging()->InsertPacketEvent( | 396 cast_environment_->Logging()->InsertPacketEvent(now2, |
384 now2, kPacketRetransmitted, rtp_timestamp, /*frame_id*/ 0, packet_id_2, | 397 kVideoPacketRetransmitted, |
385 /*max_packet_id*/ 10, size); | 398 rtp_timestamp, |
| 399 /*frame_id*/ 0, |
| 400 packet_id_2, |
| 401 /*max_packet_id*/ 10, |
| 402 size); |
386 | 403 |
387 GetEventsAndReset(); | 404 GetEventsAndReset(); |
388 | 405 |
389 ASSERT_EQ(1u, packet_events_.size()); | 406 ASSERT_EQ(1u, packet_events_.size()); |
390 | 407 |
391 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; | 408 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; |
392 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); | 409 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); |
393 ASSERT_TRUE(it != packet_events_.end()); | 410 ASSERT_TRUE(it != packet_events_.end()); |
394 | 411 |
395 linked_ptr<AggregatedPacketEvent> event = it->second; | 412 linked_ptr<AggregatedPacketEvent> event = it->second; |
396 | 413 |
397 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); | 414 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); |
398 | 415 |
399 ASSERT_EQ(2, event->base_packet_event_size()); | 416 ASSERT_EQ(2, event->base_packet_event_size()); |
400 const BasePacketEvent& base_event = event->base_packet_event(0); | 417 const BasePacketEvent& base_event = event->base_packet_event(0); |
401 EXPECT_EQ(packet_id_1, base_event.packet_id()); | 418 EXPECT_EQ(packet_id_1, base_event.packet_id()); |
402 ASSERT_EQ(1, base_event.event_type_size()); | 419 ASSERT_EQ(1, base_event.event_type_size()); |
403 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_PACER, base_event.event_type(0)); | 420 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, |
| 421 base_event.event_type(0)); |
404 ASSERT_EQ(1, base_event.event_timestamp_micros_size()); | 422 ASSERT_EQ(1, base_event.event_timestamp_micros_size()); |
405 EXPECT_EQ(now1.ToInternalValue(), base_event.event_timestamp_micros(0)); | 423 EXPECT_EQ(now1.ToInternalValue(), base_event.event_timestamp_micros(0)); |
406 | 424 |
407 const BasePacketEvent& base_event_2 = event->base_packet_event(1); | 425 const BasePacketEvent& base_event_2 = event->base_packet_event(1); |
408 EXPECT_EQ(packet_id_2, base_event_2.packet_id()); | 426 EXPECT_EQ(packet_id_2, base_event_2.packet_id()); |
409 ASSERT_EQ(1, base_event_2.event_type_size()); | 427 ASSERT_EQ(1, base_event_2.event_type_size()); |
410 EXPECT_EQ(media::cast::proto::PACKET_RETRANSMITTED, | 428 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_RETRANSMITTED, |
411 base_event_2.event_type(0)); | 429 base_event_2.event_type(0)); |
412 ASSERT_EQ(1, base_event_2.event_timestamp_micros_size()); | 430 ASSERT_EQ(1, base_event_2.event_timestamp_micros_size()); |
413 EXPECT_EQ(now2.ToInternalValue(), base_event_2.event_timestamp_micros(0)); | 431 EXPECT_EQ(now2.ToInternalValue(), base_event_2.event_timestamp_micros(0)); |
414 } | 432 } |
415 | 433 |
416 TEST_F(EncodingEventSubscriberTest, MultiplePacketEvents) { | 434 TEST_F(EncodingEventSubscriberTest, MultiplePacketEvents) { |
417 Init(OTHER_EVENT); | 435 Init(VIDEO_EVENT); |
418 base::TimeTicks now1(testing_clock_->NowTicks()); | 436 base::TimeTicks now1(testing_clock_->NowTicks()); |
419 RtpTimestamp rtp_timestamp_1 = 100; | 437 RtpTimestamp rtp_timestamp_1 = 100; |
420 RtpTimestamp rtp_timestamp_2 = 200; | 438 RtpTimestamp rtp_timestamp_2 = 200; |
421 int packet_id_1 = 2; | 439 int packet_id_1 = 2; |
422 int packet_id_2 = 3; | 440 int packet_id_2 = 3; |
423 int size = 100; | 441 int size = 100; |
424 cast_environment_->Logging()->InsertPacketEvent( | 442 cast_environment_->Logging()->InsertPacketEvent(now1, |
425 now1, kPacketSentToPacer, rtp_timestamp_1, /*frame_id*/ 0, packet_id_1, | 443 kVideoPacketSentToPacer, |
426 /*max_packet_id*/ 10, size); | 444 rtp_timestamp_1, |
| 445 /*frame_id*/ 0, |
| 446 packet_id_1, |
| 447 /*max_packet_id*/ 10, |
| 448 size); |
427 | 449 |
428 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20)); | 450 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20)); |
429 base::TimeTicks now2(testing_clock_->NowTicks()); | 451 base::TimeTicks now2(testing_clock_->NowTicks()); |
430 cast_environment_->Logging()->InsertPacketEvent( | 452 cast_environment_->Logging()->InsertPacketEvent(now2, |
431 now2, kPacketRetransmitted, rtp_timestamp_2, /*frame_id*/ 0, packet_id_2, | 453 kVideoPacketRetransmitted, |
432 /*max_packet_id*/ 10, size); | 454 rtp_timestamp_2, |
| 455 /*frame_id*/ 0, |
| 456 packet_id_2, |
| 457 /*max_packet_id*/ 10, |
| 458 size); |
433 | 459 |
434 GetEventsAndReset(); | 460 GetEventsAndReset(); |
435 | 461 |
436 ASSERT_EQ(2u, packet_events_.size()); | 462 ASSERT_EQ(2u, packet_events_.size()); |
437 | 463 |
438 RtpTimestamp relative_rtp_timestamp = rtp_timestamp_1 - first_rtp_timestamp_; | 464 RtpTimestamp relative_rtp_timestamp = rtp_timestamp_1 - first_rtp_timestamp_; |
439 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); | 465 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); |
440 ASSERT_TRUE(it != packet_events_.end()); | 466 ASSERT_TRUE(it != packet_events_.end()); |
441 | 467 |
442 linked_ptr<AggregatedPacketEvent> event = it->second; | 468 linked_ptr<AggregatedPacketEvent> event = it->second; |
443 | 469 |
444 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); | 470 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); |
445 | 471 |
446 ASSERT_EQ(1, event->base_packet_event_size()); | 472 ASSERT_EQ(1, event->base_packet_event_size()); |
447 const BasePacketEvent& base_event = event->base_packet_event(0); | 473 const BasePacketEvent& base_event = event->base_packet_event(0); |
448 EXPECT_EQ(packet_id_1, base_event.packet_id()); | 474 EXPECT_EQ(packet_id_1, base_event.packet_id()); |
449 ASSERT_EQ(1, base_event.event_type_size()); | 475 ASSERT_EQ(1, base_event.event_type_size()); |
450 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_PACER, base_event.event_type(0)); | 476 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, |
| 477 base_event.event_type(0)); |
451 ASSERT_EQ(1, base_event.event_timestamp_micros_size()); | 478 ASSERT_EQ(1, base_event.event_timestamp_micros_size()); |
452 EXPECT_EQ(now1.ToInternalValue(), base_event.event_timestamp_micros(0)); | 479 EXPECT_EQ(now1.ToInternalValue(), base_event.event_timestamp_micros(0)); |
453 | 480 |
454 relative_rtp_timestamp = rtp_timestamp_2 - first_rtp_timestamp_; | 481 relative_rtp_timestamp = rtp_timestamp_2 - first_rtp_timestamp_; |
455 it = packet_events_.find(relative_rtp_timestamp); | 482 it = packet_events_.find(relative_rtp_timestamp); |
456 ASSERT_TRUE(it != packet_events_.end()); | 483 ASSERT_TRUE(it != packet_events_.end()); |
457 | 484 |
458 event = it->second; | 485 event = it->second; |
459 | 486 |
460 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); | 487 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); |
461 | 488 |
462 ASSERT_EQ(1, event->base_packet_event_size()); | 489 ASSERT_EQ(1, event->base_packet_event_size()); |
463 const BasePacketEvent& base_event_2 = event->base_packet_event(0); | 490 const BasePacketEvent& base_event_2 = event->base_packet_event(0); |
464 EXPECT_EQ(packet_id_2, base_event_2.packet_id()); | 491 EXPECT_EQ(packet_id_2, base_event_2.packet_id()); |
465 ASSERT_EQ(1, base_event_2.event_type_size()); | 492 ASSERT_EQ(1, base_event_2.event_type_size()); |
466 EXPECT_EQ(media::cast::proto::PACKET_RETRANSMITTED, | 493 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_RETRANSMITTED, |
467 base_event_2.event_type(0)); | 494 base_event_2.event_type(0)); |
468 ASSERT_EQ(1, base_event_2.event_timestamp_micros_size()); | 495 ASSERT_EQ(1, base_event_2.event_timestamp_micros_size()); |
469 EXPECT_EQ(now2.ToInternalValue(), base_event_2.event_timestamp_micros(0)); | 496 EXPECT_EQ(now2.ToInternalValue(), base_event_2.event_timestamp_micros(0)); |
470 } | 497 } |
471 | 498 |
472 TEST_F(EncodingEventSubscriberTest, FirstRtpTimestamp) { | 499 TEST_F(EncodingEventSubscriberTest, FirstRtpTimestamp) { |
473 Init(VIDEO_EVENT); | 500 Init(VIDEO_EVENT); |
474 RtpTimestamp rtp_timestamp = 12345; | 501 RtpTimestamp rtp_timestamp = 12345; |
475 base::TimeTicks now(testing_clock_->NowTicks()); | 502 base::TimeTicks now(testing_clock_->NowTicks()); |
476 | 503 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 | 551 |
525 FrameEventMap::iterator it = frame_events_.find(0); | 552 FrameEventMap::iterator it = frame_events_.find(0); |
526 ASSERT_NE(frame_events_.end(), it); | 553 ASSERT_NE(frame_events_.end(), it); |
527 | 554 |
528 it = frame_events_.find(30); | 555 it = frame_events_.find(30); |
529 ASSERT_NE(frame_events_.end(), it); | 556 ASSERT_NE(frame_events_.end(), it); |
530 } | 557 } |
531 | 558 |
532 } // namespace cast | 559 } // namespace cast |
533 } // namespace media | 560 } // namespace media |
OLD | NEW |