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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc

Issue 2666533002: Add probe logging to RtcEventLog. (Closed)
Patch Set: Rebase + format Created 3 years, 9 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 uint16_t transport_seq_no; 419 uint16_t transport_seq_no;
420 EXPECT_TRUE(packet.GetExtension<TransportSequenceNumber>(&transport_seq_no)); 420 EXPECT_TRUE(packet.GetExtension<TransportSequenceNumber>(&transport_seq_no));
421 EXPECT_EQ(kTransportSequenceNumber, transport_seq_no); 421 EXPECT_EQ(kTransportSequenceNumber, transport_seq_no);
422 EXPECT_EQ(transport_.last_packet_id_, transport_seq_no); 422 EXPECT_EQ(transport_.last_packet_id_, transport_seq_no);
423 } 423 }
424 424
425 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) { 425 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) {
426 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 426 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
427 kSsrc, kSeqNum, _, _, _)); 427 kSsrc, kSeqNum, _, _, _));
428 EXPECT_CALL(mock_rtc_event_log_, 428 EXPECT_CALL(mock_rtc_event_log_,
429 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)); 429 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _));
430 430
431 rtp_sender_->SetStorePacketsStatus(true, 10); 431 rtp_sender_->SetStorePacketsStatus(true, 10);
432 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 432 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
433 kRtpExtensionTransmissionTimeOffset, 433 kRtpExtensionTransmissionTimeOffset,
434 kTransmissionTimeOffsetExtensionId)); 434 kTransmissionTimeOffsetExtensionId));
435 EXPECT_EQ( 435 EXPECT_EQ(
436 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 436 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
437 kAbsoluteSendTimeExtensionId)); 437 kAbsoluteSendTimeExtensionId));
438 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 438 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
439 auto packet = 439 auto packet =
(...skipping 24 matching lines...) Expand all
464 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); 464 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset);
465 uint64_t expected_send_time = 465 uint64_t expected_send_time =
466 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); 466 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds());
467 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 467 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
468 } 468 }
469 469
470 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) { 470 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) {
471 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 471 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
472 kSsrc, kSeqNum, _, _, _)); 472 kSsrc, kSeqNum, _, _, _));
473 EXPECT_CALL(mock_rtc_event_log_, 473 EXPECT_CALL(mock_rtc_event_log_,
474 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)); 474 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _));
475 475
476 rtp_sender_->SetStorePacketsStatus(true, 10); 476 rtp_sender_->SetStorePacketsStatus(true, 10);
477 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 477 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
478 kRtpExtensionTransmissionTimeOffset, 478 kRtpExtensionTransmissionTimeOffset,
479 kTransmissionTimeOffsetExtensionId)); 479 kTransmissionTimeOffsetExtensionId));
480 EXPECT_EQ( 480 EXPECT_EQ(
481 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 481 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
482 kAbsoluteSendTimeExtensionId)); 482 kAbsoluteSendTimeExtensionId));
483 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 483 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
484 auto packet = 484 auto packet =
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 518 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
519 } 519 }
520 520
521 // This test sends 1 regular video packet, then 4 padding packets, and then 521 // This test sends 1 regular video packet, then 4 padding packets, and then
522 // 1 more regular packet. 522 // 1 more regular packet.
523 TEST_F(RtpSenderTest, SendPadding) { 523 TEST_F(RtpSenderTest, SendPadding) {
524 // Make all (non-padding) packets go to send queue. 524 // Make all (non-padding) packets go to send queue.
525 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 525 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
526 kSsrc, kSeqNum, _, _, _)); 526 kSsrc, kSeqNum, _, _, _));
527 EXPECT_CALL(mock_rtc_event_log_, 527 EXPECT_CALL(mock_rtc_event_log_,
528 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 528 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
529 .Times(1 + 4 + 1); 529 .Times(1 + 4 + 1);
530 530
531 uint16_t seq_num = kSeqNum; 531 uint16_t seq_num = kSeqNum;
532 uint32_t timestamp = kTimestamp; 532 uint32_t timestamp = kTimestamp;
533 rtp_sender_->SetStorePacketsStatus(true, 10); 533 rtp_sender_->SetStorePacketsStatus(true, 10);
534 size_t rtp_header_len = kRtpHeaderSize; 534 size_t rtp_header_len = kRtpHeaderSize;
535 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 535 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
536 kRtpExtensionTransmissionTimeOffset, 536 kRtpExtensionTransmissionTimeOffset,
537 kTransmissionTimeOffsetExtensionId)); 537 kTransmissionTimeOffsetExtensionId));
538 rtp_header_len += 4; // 4 bytes extension. 538 rtp_header_len += 4; // 4 bytes extension.
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 rtp_sender_->SetRtxSsrc(1234); 719 rtp_sender_->SetRtxSsrc(1234);
720 720
721 const size_t kNumPayloadSizes = 10; 721 const size_t kNumPayloadSizes = 10;
722 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700, 722 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700,
723 750, 800, 850, 900, 950}; 723 750, 800, 850, 900, 950};
724 // Expect all packets go through the pacer. 724 // Expect all packets go through the pacer.
725 EXPECT_CALL(mock_paced_sender_, 725 EXPECT_CALL(mock_paced_sender_,
726 InsertPacket(RtpPacketSender::kNormalPriority, kSsrc, _, _, _, _)) 726 InsertPacket(RtpPacketSender::kNormalPriority, kSsrc, _, _, _, _))
727 .Times(kNumPayloadSizes); 727 .Times(kNumPayloadSizes);
728 EXPECT_CALL(mock_rtc_event_log_, 728 EXPECT_CALL(mock_rtc_event_log_,
729 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 729 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
730 .Times(kNumPayloadSizes); 730 .Times(kNumPayloadSizes);
731 731
732 // Send 10 packets of increasing size. 732 // Send 10 packets of increasing size.
733 for (size_t i = 0; i < kNumPayloadSizes; ++i) { 733 for (size_t i = 0; i < kNumPayloadSizes; ++i) {
734 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 734 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
735 EXPECT_CALL(transport, SendRtp(_, _, _)).WillOnce(testing::Return(true)); 735 EXPECT_CALL(transport, SendRtp(_, _, _)).WillOnce(testing::Return(true));
736 SendPacket(capture_time_ms, kPayloadSizes[i]); 736 SendPacket(capture_time_ms, kPayloadSizes[i]);
737 rtp_sender_->TimeToSendPacket(kSsrc, seq_num++, capture_time_ms, false, 737 rtp_sender_->TimeToSendPacket(kSsrc, seq_num++, capture_time_ms, false,
738 PacedPacketInfo()); 738 PacedPacketInfo());
739 fake_clock_.AdvanceTimeMilliseconds(33); 739 fake_clock_.AdvanceTimeMilliseconds(33);
740 } 740 }
741 741
742 EXPECT_CALL(mock_rtc_event_log_, 742 EXPECT_CALL(mock_rtc_event_log_,
743 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 743 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
744 .Times(::testing::AtLeast(4)); 744 .Times(::testing::AtLeast(4));
745 745
746 // The amount of padding to send it too small to send a payload packet. 746 // The amount of padding to send it too small to send a payload packet.
747 EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) 747 EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _))
748 .WillOnce(testing::Return(true)); 748 .WillOnce(testing::Return(true));
749 EXPECT_EQ(kMaxPaddingSize, 749 EXPECT_EQ(kMaxPaddingSize,
750 rtp_sender_->TimeToSendPadding(49, PacedPacketInfo())); 750 rtp_sender_->TimeToSendPadding(49, PacedPacketInfo()));
751 751
752 EXPECT_CALL(transport, 752 EXPECT_CALL(transport,
753 SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _)) 753 SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _))
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 828
829 EXPECT_CALL(mock_paced_sender_, 829 EXPECT_CALL(mock_paced_sender_,
830 InsertPacket(RtpPacketSender::kLowPriority, kMediaSsrc, kSeqNum, 830 InsertPacket(RtpPacketSender::kLowPriority, kMediaSsrc, kSeqNum,
831 _, _, false)); 831 _, _, false));
832 uint16_t flexfec_seq_num; 832 uint16_t flexfec_seq_num;
833 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kLowPriority, 833 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kLowPriority,
834 kFlexfecSsrc, _, _, _, false)) 834 kFlexfecSsrc, _, _, _, false))
835 .WillOnce(testing::SaveArg<2>(&flexfec_seq_num)); 835 .WillOnce(testing::SaveArg<2>(&flexfec_seq_num));
836 SendGenericPayload(); 836 SendGenericPayload();
837 EXPECT_CALL(mock_rtc_event_log_, 837 EXPECT_CALL(mock_rtc_event_log_,
838 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 838 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
839 .Times(2); 839 .Times(2);
840 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kMediaSsrc, kSeqNum, 840 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kMediaSsrc, kSeqNum,
841 fake_clock_.TimeInMilliseconds(), 841 fake_clock_.TimeInMilliseconds(),
842 false, PacedPacketInfo())); 842 false, PacedPacketInfo()));
843 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kFlexfecSsrc, flexfec_seq_num, 843 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kFlexfecSsrc, flexfec_seq_num,
844 fake_clock_.TimeInMilliseconds(), 844 fake_clock_.TimeInMilliseconds(),
845 false, PacedPacketInfo())); 845 false, PacedPacketInfo()));
846 ASSERT_EQ(2, transport_.packets_sent()); 846 ASSERT_EQ(2, transport_.packets_sent());
847 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; 847 const RtpPacketReceived& media_packet = transport_.sent_packets_[0];
848 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); 848 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType());
(...skipping 25 matching lines...) Expand all
874 rtp_sender_->SetSendPayloadType(kMediaPayloadType); 874 rtp_sender_->SetSendPayloadType(kMediaPayloadType);
875 875
876 // Parameters selected to generate a single FEC packet per media packet. 876 // Parameters selected to generate a single FEC packet per media packet.
877 FecProtectionParams params; 877 FecProtectionParams params;
878 params.fec_rate = 15; 878 params.fec_rate = 15;
879 params.max_fec_frames = 1; 879 params.max_fec_frames = 1;
880 params.fec_mask_type = kFecMaskRandom; 880 params.fec_mask_type = kFecMaskRandom;
881 rtp_sender_->SetFecParameters(params, params); 881 rtp_sender_->SetFecParameters(params, params);
882 882
883 EXPECT_CALL(mock_rtc_event_log_, 883 EXPECT_CALL(mock_rtc_event_log_,
884 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 884 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
885 .Times(2); 885 .Times(2);
886 SendGenericPayload(); 886 SendGenericPayload();
887 ASSERT_EQ(2, transport_.packets_sent()); 887 ASSERT_EQ(2, transport_.packets_sent());
888 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; 888 const RtpPacketReceived& media_packet = transport_.sent_packets_[0];
889 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); 889 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType());
890 EXPECT_EQ(kMediaSsrc, media_packet.Ssrc()); 890 EXPECT_EQ(kMediaSsrc, media_packet.Ssrc());
891 const RtpPacketReceived& flexfec_packet = transport_.sent_packets_[1]; 891 const RtpPacketReceived& flexfec_packet = transport_.sent_packets_[1];
892 EXPECT_EQ(kFlexfecPayloadType, flexfec_packet.PayloadType()); 892 EXPECT_EQ(kFlexfecPayloadType, flexfec_packet.PayloadType());
893 EXPECT_EQ(kFlexfecSsrc, flexfec_packet.Ssrc()); 893 EXPECT_EQ(kFlexfecSsrc, flexfec_packet.Ssrc());
894 } 894 }
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 1518
1519 // Requested padding size is too small, will send a larger one. 1519 // Requested padding size is too small, will send a larger one.
1520 const size_t kMinPaddingSize = 50; 1520 const size_t kMinPaddingSize = 50;
1521 EXPECT_CALL(transport, SendRtp(_, kMinPaddingSize + kRtpHeaderSize, _)) 1521 EXPECT_CALL(transport, SendRtp(_, kMinPaddingSize + kRtpHeaderSize, _))
1522 .WillOnce(testing::Return(true)); 1522 .WillOnce(testing::Return(true));
1523 EXPECT_EQ( 1523 EXPECT_EQ(
1524 kMinPaddingSize, 1524 kMinPaddingSize,
1525 rtp_sender_->TimeToSendPadding(kMinPaddingSize - 5, PacedPacketInfo())); 1525 rtp_sender_->TimeToSendPadding(kMinPaddingSize - 5, PacedPacketInfo()));
1526 } 1526 }
1527 } // namespace webrtc 1527 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_sender.cc ('k') | webrtc/tools/event_log_visualizer/analyzer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698