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 |