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