| 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 |