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

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

Issue 2666533002: Add probe logging to RtcEventLog. (Closed)
Patch Set: |min_probes| --> |min_packets| Created 3 years, 10 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 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 uint16_t transport_seq_no; 418 uint16_t transport_seq_no;
419 EXPECT_TRUE(packet.GetExtension<TransportSequenceNumber>(&transport_seq_no)); 419 EXPECT_TRUE(packet.GetExtension<TransportSequenceNumber>(&transport_seq_no));
420 EXPECT_EQ(kTransportSequenceNumber, transport_seq_no); 420 EXPECT_EQ(kTransportSequenceNumber, transport_seq_no);
421 EXPECT_EQ(transport_.last_packet_id_, transport_seq_no); 421 EXPECT_EQ(transport_.last_packet_id_, transport_seq_no);
422 } 422 }
423 423
424 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) { 424 TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) {
425 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 425 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
426 kSsrc, kSeqNum, _, _, _)); 426 kSsrc, kSeqNum, _, _, _));
427 EXPECT_CALL(mock_rtc_event_log_, 427 EXPECT_CALL(mock_rtc_event_log_,
428 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)); 428 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _));
429 429
430 rtp_sender_->SetStorePacketsStatus(true, 10); 430 rtp_sender_->SetStorePacketsStatus(true, 10);
431 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 431 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
432 kRtpExtensionTransmissionTimeOffset, 432 kRtpExtensionTransmissionTimeOffset,
433 kTransmissionTimeOffsetExtensionId)); 433 kTransmissionTimeOffsetExtensionId));
434 EXPECT_EQ( 434 EXPECT_EQ(
435 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 435 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
436 kAbsoluteSendTimeExtensionId)); 436 kAbsoluteSendTimeExtensionId));
437 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 437 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
438 auto packet = 438 auto packet =
(...skipping 24 matching lines...) Expand all
463 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); 463 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset);
464 uint64_t expected_send_time = 464 uint64_t expected_send_time =
465 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); 465 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds());
466 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 466 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
467 } 467 }
468 468
469 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) { 469 TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) {
470 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 470 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
471 kSsrc, kSeqNum, _, _, _)); 471 kSsrc, kSeqNum, _, _, _));
472 EXPECT_CALL(mock_rtc_event_log_, 472 EXPECT_CALL(mock_rtc_event_log_,
473 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)); 473 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _));
474 474
475 rtp_sender_->SetStorePacketsStatus(true, 10); 475 rtp_sender_->SetStorePacketsStatus(true, 10);
476 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 476 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
477 kRtpExtensionTransmissionTimeOffset, 477 kRtpExtensionTransmissionTimeOffset,
478 kTransmissionTimeOffsetExtensionId)); 478 kTransmissionTimeOffsetExtensionId));
479 EXPECT_EQ( 479 EXPECT_EQ(
480 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, 480 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime,
481 kAbsoluteSendTimeExtensionId)); 481 kAbsoluteSendTimeExtensionId));
482 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 482 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
483 auto packet = 483 auto packet =
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); 517 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime);
518 } 518 }
519 519
520 // This test sends 1 regular video packet, then 4 padding packets, and then 520 // This test sends 1 regular video packet, then 4 padding packets, and then
521 // 1 more regular packet. 521 // 1 more regular packet.
522 TEST_F(RtpSenderTest, SendPadding) { 522 TEST_F(RtpSenderTest, SendPadding) {
523 // Make all (non-padding) packets go to send queue. 523 // Make all (non-padding) packets go to send queue.
524 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, 524 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
525 kSsrc, kSeqNum, _, _, _)); 525 kSsrc, kSeqNum, _, _, _));
526 EXPECT_CALL(mock_rtc_event_log_, 526 EXPECT_CALL(mock_rtc_event_log_,
527 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 527 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
528 .Times(1 + 4 + 1); 528 .Times(1 + 4 + 1);
529 529
530 uint16_t seq_num = kSeqNum; 530 uint16_t seq_num = kSeqNum;
531 uint32_t timestamp = kTimestamp; 531 uint32_t timestamp = kTimestamp;
532 rtp_sender_->SetStorePacketsStatus(true, 10); 532 rtp_sender_->SetStorePacketsStatus(true, 10);
533 size_t rtp_header_len = kRtpHeaderSize; 533 size_t rtp_header_len = kRtpHeaderSize;
534 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( 534 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
535 kRtpExtensionTransmissionTimeOffset, 535 kRtpExtensionTransmissionTimeOffset,
536 kTransmissionTimeOffsetExtensionId)); 536 kTransmissionTimeOffsetExtensionId));
537 rtp_header_len += 4; // 4 bytes extension. 537 rtp_header_len += 4; // 4 bytes extension.
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 rtp_sender_->SetRtxSsrc(1234); 718 rtp_sender_->SetRtxSsrc(1234);
719 719
720 const size_t kNumPayloadSizes = 10; 720 const size_t kNumPayloadSizes = 10;
721 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700, 721 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700,
722 750, 800, 850, 900, 950}; 722 750, 800, 850, 900, 950};
723 // Expect all packets go through the pacer. 723 // Expect all packets go through the pacer.
724 EXPECT_CALL(mock_paced_sender_, 724 EXPECT_CALL(mock_paced_sender_,
725 InsertPacket(RtpPacketSender::kNormalPriority, kSsrc, _, _, _, _)) 725 InsertPacket(RtpPacketSender::kNormalPriority, kSsrc, _, _, _, _))
726 .Times(kNumPayloadSizes); 726 .Times(kNumPayloadSizes);
727 EXPECT_CALL(mock_rtc_event_log_, 727 EXPECT_CALL(mock_rtc_event_log_,
728 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 728 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
729 .Times(kNumPayloadSizes); 729 .Times(kNumPayloadSizes);
730 730
731 // Send 10 packets of increasing size. 731 // Send 10 packets of increasing size.
732 for (size_t i = 0; i < kNumPayloadSizes; ++i) { 732 for (size_t i = 0; i < kNumPayloadSizes; ++i) {
733 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); 733 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds();
734 EXPECT_CALL(transport, SendRtp(_, _, _)).WillOnce(testing::Return(true)); 734 EXPECT_CALL(transport, SendRtp(_, _, _)).WillOnce(testing::Return(true));
735 SendPacket(capture_time_ms, kPayloadSizes[i]); 735 SendPacket(capture_time_ms, kPayloadSizes[i]);
736 rtp_sender_->TimeToSendPacket(kSsrc, seq_num++, capture_time_ms, false, 736 rtp_sender_->TimeToSendPacket(kSsrc, seq_num++, capture_time_ms, false,
737 PacketInfo::kNotAProbe); 737 PacketInfo::kNotAProbe);
738 fake_clock_.AdvanceTimeMilliseconds(33); 738 fake_clock_.AdvanceTimeMilliseconds(33);
739 } 739 }
740 740
741 EXPECT_CALL(mock_rtc_event_log_, 741 EXPECT_CALL(mock_rtc_event_log_,
742 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 742 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
743 .Times(::testing::AtLeast(4)); 743 .Times(::testing::AtLeast(4));
744 744
745 // The amount of padding to send it too small to send a payload packet. 745 // The amount of padding to send it too small to send a payload packet.
746 EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) 746 EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _))
747 .WillOnce(testing::Return(true)); 747 .WillOnce(testing::Return(true));
748 EXPECT_EQ(kMaxPaddingSize, 748 EXPECT_EQ(kMaxPaddingSize,
749 rtp_sender_->TimeToSendPadding(49, PacketInfo::kNotAProbe)); 749 rtp_sender_->TimeToSendPadding(49, PacketInfo::kNotAProbe));
750 750
751 EXPECT_CALL(transport, 751 EXPECT_CALL(transport,
752 SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _)) 752 SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _))
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 827
828 EXPECT_CALL(mock_paced_sender_, 828 EXPECT_CALL(mock_paced_sender_,
829 InsertPacket(RtpPacketSender::kLowPriority, kMediaSsrc, kSeqNum, 829 InsertPacket(RtpPacketSender::kLowPriority, kMediaSsrc, kSeqNum,
830 _, _, false)); 830 _, _, false));
831 uint16_t flexfec_seq_num; 831 uint16_t flexfec_seq_num;
832 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kLowPriority, 832 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kLowPriority,
833 kFlexfecSsrc, _, _, _, false)) 833 kFlexfecSsrc, _, _, _, false))
834 .WillOnce(testing::SaveArg<2>(&flexfec_seq_num)); 834 .WillOnce(testing::SaveArg<2>(&flexfec_seq_num));
835 SendGenericPayload(); 835 SendGenericPayload();
836 EXPECT_CALL(mock_rtc_event_log_, 836 EXPECT_CALL(mock_rtc_event_log_,
837 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 837 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
838 .Times(2); 838 .Times(2);
839 EXPECT_TRUE(rtp_sender_->TimeToSendPacket( 839 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(
840 kMediaSsrc, kSeqNum, fake_clock_.TimeInMilliseconds(), false, 0)); 840 kMediaSsrc, kSeqNum, fake_clock_.TimeInMilliseconds(), false, 0));
841 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kFlexfecSsrc, flexfec_seq_num, 841 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kFlexfecSsrc, flexfec_seq_num,
842 fake_clock_.TimeInMilliseconds(), 842 fake_clock_.TimeInMilliseconds(),
843 false, 0)); 843 false, 0));
844 ASSERT_EQ(2, transport_.packets_sent()); 844 ASSERT_EQ(2, transport_.packets_sent());
845 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; 845 const RtpPacketReceived& media_packet = transport_.sent_packets_[0];
846 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); 846 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType());
847 EXPECT_EQ(kSeqNum, media_packet.SequenceNumber()); 847 EXPECT_EQ(kSeqNum, media_packet.SequenceNumber());
(...skipping 24 matching lines...) Expand all
872 rtp_sender_->SetSendPayloadType(kMediaPayloadType); 872 rtp_sender_->SetSendPayloadType(kMediaPayloadType);
873 873
874 // Parameters selected to generate a single FEC packet per media packet. 874 // Parameters selected to generate a single FEC packet per media packet.
875 FecProtectionParams params; 875 FecProtectionParams params;
876 params.fec_rate = 15; 876 params.fec_rate = 15;
877 params.max_fec_frames = 1; 877 params.max_fec_frames = 1;
878 params.fec_mask_type = kFecMaskRandom; 878 params.fec_mask_type = kFecMaskRandom;
879 rtp_sender_->SetFecParameters(params, params); 879 rtp_sender_->SetFecParameters(params, params);
880 880
881 EXPECT_CALL(mock_rtc_event_log_, 881 EXPECT_CALL(mock_rtc_event_log_,
882 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) 882 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _, _))
883 .Times(2); 883 .Times(2);
884 SendGenericPayload(); 884 SendGenericPayload();
885 ASSERT_EQ(2, transport_.packets_sent()); 885 ASSERT_EQ(2, transport_.packets_sent());
886 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; 886 const RtpPacketReceived& media_packet = transport_.sent_packets_[0];
887 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); 887 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType());
888 EXPECT_EQ(kMediaSsrc, media_packet.Ssrc()); 888 EXPECT_EQ(kMediaSsrc, media_packet.Ssrc());
889 const RtpPacketReceived& flexfec_packet = transport_.sent_packets_[1]; 889 const RtpPacketReceived& flexfec_packet = transport_.sent_packets_[1];
890 EXPECT_EQ(kFlexfecPayloadType, flexfec_packet.PayloadType()); 890 EXPECT_EQ(kFlexfecPayloadType, flexfec_packet.PayloadType());
891 EXPECT_EQ(kFlexfecSsrc, flexfec_packet.Ssrc()); 891 EXPECT_EQ(kFlexfecSsrc, flexfec_packet.Ssrc());
892 } 892 }
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after
1510 kPaddingSize, PacketInfo::kNotAProbe)); 1510 kPaddingSize, PacketInfo::kNotAProbe));
1511 1511
1512 // Requested padding size is too small, will send a larger one. 1512 // Requested padding size is too small, will send a larger one.
1513 const size_t kMinPaddingSize = 50; 1513 const size_t kMinPaddingSize = 50;
1514 EXPECT_CALL(transport, SendRtp(_, kMinPaddingSize + kRtpHeaderSize, _)) 1514 EXPECT_CALL(transport, SendRtp(_, kMinPaddingSize + kRtpHeaderSize, _))
1515 .WillOnce(testing::Return(true)); 1515 .WillOnce(testing::Return(true));
1516 EXPECT_EQ(kMinPaddingSize, rtp_sender_->TimeToSendPadding( 1516 EXPECT_EQ(kMinPaddingSize, rtp_sender_->TimeToSendPadding(
1517 kMinPaddingSize - 5, PacketInfo::kNotAProbe)); 1517 kMinPaddingSize - 5, PacketInfo::kNotAProbe));
1518 } 1518 }
1519 } // namespace webrtc 1519 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698