| OLD | NEW |
| 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 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 EXPECT_EQ(packet_size, transport_.last_sent_packet().size()); | 523 EXPECT_EQ(packet_size, transport_.last_sent_packet().size()); |
| 524 | 524 |
| 525 EXPECT_TRUE(transport_.last_sent_packet().GetExtension<VideoTimingExtension>( | 525 EXPECT_TRUE(transport_.last_sent_packet().GetExtension<VideoTimingExtension>( |
| 526 &video_timing)); | 526 &video_timing)); |
| 527 EXPECT_EQ(kStoredTimeInMs * 2, video_timing.pacer_exit_delta_ms); | 527 EXPECT_EQ(kStoredTimeInMs * 2, video_timing.pacer_exit_delta_ms); |
| 528 } | 528 } |
| 529 | 529 |
| 530 TEST_P(RtpSenderTest, TrafficSmoothingWithExtensions) { | 530 TEST_P(RtpSenderTest, TrafficSmoothingWithExtensions) { |
| 531 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, | 531 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, |
| 532 kSsrc, kSeqNum, _, _, _)); | 532 kSsrc, kSeqNum, _, _, _)); |
| 533 EXPECT_CALL(mock_rtc_event_log_, | 533 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)); |
| 534 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)); | |
| 535 | 534 |
| 536 rtp_sender_->SetStorePacketsStatus(true, 10); | 535 rtp_sender_->SetStorePacketsStatus(true, 10); |
| 537 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 536 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
| 538 kRtpExtensionTransmissionTimeOffset, | 537 kRtpExtensionTransmissionTimeOffset, |
| 539 kTransmissionTimeOffsetExtensionId)); | 538 kTransmissionTimeOffsetExtensionId)); |
| 540 EXPECT_EQ( | 539 EXPECT_EQ( |
| 541 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, | 540 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, |
| 542 kAbsoluteSendTimeExtensionId)); | 541 kAbsoluteSendTimeExtensionId)); |
| 543 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); | 542 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); |
| 544 auto packet = | 543 auto packet = |
| (...skipping 23 matching lines...) Expand all Loading... |
| 568 // Verify transmission time offset. | 567 // Verify transmission time offset. |
| 569 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); | 568 EXPECT_EQ(kStoredTimeInMs * 90, rtp_header.extension.transmissionTimeOffset); |
| 570 uint64_t expected_send_time = | 569 uint64_t expected_send_time = |
| 571 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 570 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); |
| 572 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 571 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); |
| 573 } | 572 } |
| 574 | 573 |
| 575 TEST_P(RtpSenderTest, TrafficSmoothingRetransmits) { | 574 TEST_P(RtpSenderTest, TrafficSmoothingRetransmits) { |
| 576 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, | 575 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, |
| 577 kSsrc, kSeqNum, _, _, _)); | 576 kSsrc, kSeqNum, _, _, _)); |
| 578 EXPECT_CALL(mock_rtc_event_log_, | 577 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)); |
| 579 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)); | |
| 580 | 578 |
| 581 rtp_sender_->SetStorePacketsStatus(true, 10); | 579 rtp_sender_->SetStorePacketsStatus(true, 10); |
| 582 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 580 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
| 583 kRtpExtensionTransmissionTimeOffset, | 581 kRtpExtensionTransmissionTimeOffset, |
| 584 kTransmissionTimeOffsetExtensionId)); | 582 kTransmissionTimeOffsetExtensionId)); |
| 585 EXPECT_EQ( | 583 EXPECT_EQ( |
| 586 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, | 584 0, rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionAbsoluteSendTime, |
| 587 kAbsoluteSendTimeExtensionId)); | 585 kAbsoluteSendTimeExtensionId)); |
| 588 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); | 586 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); |
| 589 auto packet = | 587 auto packet = |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); | 620 ConvertMsToAbsSendTime(fake_clock_.TimeInMilliseconds()); |
| 623 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); | 621 EXPECT_EQ(expected_send_time, rtp_header.extension.absoluteSendTime); |
| 624 } | 622 } |
| 625 | 623 |
| 626 // This test sends 1 regular video packet, then 4 padding packets, and then | 624 // This test sends 1 regular video packet, then 4 padding packets, and then |
| 627 // 1 more regular packet. | 625 // 1 more regular packet. |
| 628 TEST_P(RtpSenderTest, SendPadding) { | 626 TEST_P(RtpSenderTest, SendPadding) { |
| 629 // Make all (non-padding) packets go to send queue. | 627 // Make all (non-padding) packets go to send queue. |
| 630 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, | 628 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority, |
| 631 kSsrc, kSeqNum, _, _, _)); | 629 kSsrc, kSeqNum, _, _, _)); |
| 632 EXPECT_CALL(mock_rtc_event_log_, | 630 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)).Times(1 + 4 + 1); |
| 633 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) | |
| 634 .Times(1 + 4 + 1); | |
| 635 | 631 |
| 636 uint16_t seq_num = kSeqNum; | 632 uint16_t seq_num = kSeqNum; |
| 637 uint32_t timestamp = kTimestamp; | 633 uint32_t timestamp = kTimestamp; |
| 638 rtp_sender_->SetStorePacketsStatus(true, 10); | 634 rtp_sender_->SetStorePacketsStatus(true, 10); |
| 639 size_t rtp_header_len = kRtpHeaderSize; | 635 size_t rtp_header_len = kRtpHeaderSize; |
| 640 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 636 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
| 641 kRtpExtensionTransmissionTimeOffset, | 637 kRtpExtensionTransmissionTimeOffset, |
| 642 kTransmissionTimeOffsetExtensionId)); | 638 kTransmissionTimeOffsetExtensionId)); |
| 643 rtp_header_len += 4; // 4 bytes extension. | 639 rtp_header_len += 4; // 4 bytes extension. |
| 644 EXPECT_EQ( | 640 EXPECT_EQ( |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 823 rtp_sender_->SetRtxStatus(kRtxRetransmitted | kRtxRedundantPayloads); | 819 rtp_sender_->SetRtxStatus(kRtxRetransmitted | kRtxRedundantPayloads); |
| 824 rtp_sender_->SetRtxSsrc(1234); | 820 rtp_sender_->SetRtxSsrc(1234); |
| 825 | 821 |
| 826 const size_t kNumPayloadSizes = 10; | 822 const size_t kNumPayloadSizes = 10; |
| 827 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700, | 823 const size_t kPayloadSizes[kNumPayloadSizes] = {500, 550, 600, 650, 700, |
| 828 750, 800, 850, 900, 950}; | 824 750, 800, 850, 900, 950}; |
| 829 // Expect all packets go through the pacer. | 825 // Expect all packets go through the pacer. |
| 830 EXPECT_CALL(mock_paced_sender_, | 826 EXPECT_CALL(mock_paced_sender_, |
| 831 InsertPacket(RtpPacketSender::kNormalPriority, kSsrc, _, _, _, _)) | 827 InsertPacket(RtpPacketSender::kNormalPriority, kSsrc, _, _, _, _)) |
| 832 .Times(kNumPayloadSizes); | 828 .Times(kNumPayloadSizes); |
| 833 EXPECT_CALL(mock_rtc_event_log_, | 829 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)) |
| 834 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) | |
| 835 .Times(kNumPayloadSizes); | 830 .Times(kNumPayloadSizes); |
| 836 | 831 |
| 837 // Send 10 packets of increasing size. | 832 // Send 10 packets of increasing size. |
| 838 for (size_t i = 0; i < kNumPayloadSizes; ++i) { | 833 for (size_t i = 0; i < kNumPayloadSizes; ++i) { |
| 839 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); | 834 int64_t capture_time_ms = fake_clock_.TimeInMilliseconds(); |
| 840 EXPECT_CALL(transport, SendRtp(_, _, _)).WillOnce(testing::Return(true)); | 835 EXPECT_CALL(transport, SendRtp(_, _, _)).WillOnce(testing::Return(true)); |
| 841 SendPacket(capture_time_ms, kPayloadSizes[i]); | 836 SendPacket(capture_time_ms, kPayloadSizes[i]); |
| 842 rtp_sender_->TimeToSendPacket(kSsrc, seq_num++, capture_time_ms, false, | 837 rtp_sender_->TimeToSendPacket(kSsrc, seq_num++, capture_time_ms, false, |
| 843 PacedPacketInfo()); | 838 PacedPacketInfo()); |
| 844 fake_clock_.AdvanceTimeMilliseconds(33); | 839 fake_clock_.AdvanceTimeMilliseconds(33); |
| 845 } | 840 } |
| 846 | 841 |
| 847 EXPECT_CALL(mock_rtc_event_log_, | 842 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)) |
| 848 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) | |
| 849 .Times(::testing::AtLeast(4)); | 843 .Times(::testing::AtLeast(4)); |
| 850 | 844 |
| 851 // The amount of padding to send it too small to send a payload packet. | 845 // The amount of padding to send it too small to send a payload packet. |
| 852 EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) | 846 EXPECT_CALL(transport, SendRtp(_, kMaxPaddingSize + rtp_header_len, _)) |
| 853 .WillOnce(testing::Return(true)); | 847 .WillOnce(testing::Return(true)); |
| 854 EXPECT_EQ(kMaxPaddingSize, | 848 EXPECT_EQ(kMaxPaddingSize, |
| 855 rtp_sender_->TimeToSendPadding(49, PacedPacketInfo())); | 849 rtp_sender_->TimeToSendPadding(49, PacedPacketInfo())); |
| 856 | 850 |
| 857 EXPECT_CALL(transport, | 851 EXPECT_CALL(transport, |
| 858 SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _)) | 852 SendRtp(_, kPayloadSizes[0] + rtp_header_len + kRtxHeaderSize, _)) |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 934 rtp_sender_->SetFecParameters(params, params); | 928 rtp_sender_->SetFecParameters(params, params); |
| 935 | 929 |
| 936 EXPECT_CALL(mock_paced_sender_, | 930 EXPECT_CALL(mock_paced_sender_, |
| 937 InsertPacket(RtpPacketSender::kLowPriority, kMediaSsrc, kSeqNum, | 931 InsertPacket(RtpPacketSender::kLowPriority, kMediaSsrc, kSeqNum, |
| 938 _, _, false)); | 932 _, _, false)); |
| 939 uint16_t flexfec_seq_num; | 933 uint16_t flexfec_seq_num; |
| 940 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kLowPriority, | 934 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kLowPriority, |
| 941 kFlexfecSsrc, _, _, _, false)) | 935 kFlexfecSsrc, _, _, _, false)) |
| 942 .WillOnce(testing::SaveArg<2>(&flexfec_seq_num)); | 936 .WillOnce(testing::SaveArg<2>(&flexfec_seq_num)); |
| 943 SendGenericPayload(); | 937 SendGenericPayload(); |
| 944 EXPECT_CALL(mock_rtc_event_log_, | 938 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)).Times(2); |
| 945 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) | |
| 946 .Times(2); | |
| 947 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kMediaSsrc, kSeqNum, | 939 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kMediaSsrc, kSeqNum, |
| 948 fake_clock_.TimeInMilliseconds(), | 940 fake_clock_.TimeInMilliseconds(), |
| 949 false, PacedPacketInfo())); | 941 false, PacedPacketInfo())); |
| 950 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kFlexfecSsrc, flexfec_seq_num, | 942 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kFlexfecSsrc, flexfec_seq_num, |
| 951 fake_clock_.TimeInMilliseconds(), | 943 fake_clock_.TimeInMilliseconds(), |
| 952 false, PacedPacketInfo())); | 944 false, PacedPacketInfo())); |
| 953 ASSERT_EQ(2, transport_.packets_sent()); | 945 ASSERT_EQ(2, transport_.packets_sent()); |
| 954 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; | 946 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; |
| 955 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); | 947 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); |
| 956 EXPECT_EQ(kSeqNum, media_packet.SequenceNumber()); | 948 EXPECT_EQ(kSeqNum, media_packet.SequenceNumber()); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1011 EXPECT_EQ(0, rtp_sender_->RegisterPayload(payload_name, kPayloadType, 90000, | 1003 EXPECT_EQ(0, rtp_sender_->RegisterPayload(payload_name, kPayloadType, 90000, |
| 1012 0, 1500)); | 1004 0, 1500)); |
| 1013 RTPVideoHeader video_header; | 1005 RTPVideoHeader video_header; |
| 1014 memset(&video_header, 0, sizeof(RTPVideoHeader)); | 1006 memset(&video_header, 0, sizeof(RTPVideoHeader)); |
| 1015 video_header.video_timing.flags = TimingFrameFlags::kTriggeredByTimer; | 1007 video_header.video_timing.flags = TimingFrameFlags::kTriggeredByTimer; |
| 1016 EXPECT_TRUE(rtp_sender_->SendOutgoingData( | 1008 EXPECT_TRUE(rtp_sender_->SendOutgoingData( |
| 1017 kVideoFrameKey, kPayloadType, kTimestamp, kCaptureTimeMs, kPayloadData, | 1009 kVideoFrameKey, kPayloadType, kTimestamp, kCaptureTimeMs, kPayloadData, |
| 1018 sizeof(kPayloadData), nullptr, &video_header, nullptr, | 1010 sizeof(kPayloadData), nullptr, &video_header, nullptr, |
| 1019 kDefaultExpectedRetransmissionTimeMs)); | 1011 kDefaultExpectedRetransmissionTimeMs)); |
| 1020 | 1012 |
| 1021 EXPECT_CALL(mock_rtc_event_log_, | 1013 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)).Times(1); |
| 1022 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) | |
| 1023 .Times(1); | |
| 1024 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kMediaSsrc, kSeqNum, | 1014 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kMediaSsrc, kSeqNum, |
| 1025 fake_clock_.TimeInMilliseconds(), | 1015 fake_clock_.TimeInMilliseconds(), |
| 1026 false, PacedPacketInfo())); | 1016 false, PacedPacketInfo())); |
| 1027 ASSERT_EQ(1, transport_.packets_sent()); | 1017 ASSERT_EQ(1, transport_.packets_sent()); |
| 1028 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; | 1018 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; |
| 1029 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); | 1019 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); |
| 1030 EXPECT_EQ(kSeqNum, media_packet.SequenceNumber()); | 1020 EXPECT_EQ(kSeqNum, media_packet.SequenceNumber()); |
| 1031 EXPECT_EQ(kMediaSsrc, media_packet.Ssrc()); | 1021 EXPECT_EQ(kMediaSsrc, media_packet.Ssrc()); |
| 1032 | 1022 |
| 1033 // Now try to send not a timing frame. | 1023 // Now try to send not a timing frame. |
| 1034 uint16_t flexfec_seq_num; | 1024 uint16_t flexfec_seq_num; |
| 1035 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kLowPriority, | 1025 EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kLowPriority, |
| 1036 kFlexfecSsrc, _, _, _, false)) | 1026 kFlexfecSsrc, _, _, _, false)) |
| 1037 .WillOnce(testing::SaveArg<2>(&flexfec_seq_num)); | 1027 .WillOnce(testing::SaveArg<2>(&flexfec_seq_num)); |
| 1038 EXPECT_CALL(mock_paced_sender_, | 1028 EXPECT_CALL(mock_paced_sender_, |
| 1039 InsertPacket(RtpPacketSender::kLowPriority, kMediaSsrc, | 1029 InsertPacket(RtpPacketSender::kLowPriority, kMediaSsrc, |
| 1040 kSeqNum + 1, _, _, false)); | 1030 kSeqNum + 1, _, _, false)); |
| 1041 video_header.video_timing.flags = TimingFrameFlags::kInvalid; | 1031 video_header.video_timing.flags = TimingFrameFlags::kInvalid; |
| 1042 EXPECT_TRUE(rtp_sender_->SendOutgoingData( | 1032 EXPECT_TRUE(rtp_sender_->SendOutgoingData( |
| 1043 kVideoFrameKey, kPayloadType, kTimestamp + 1, kCaptureTimeMs + 1, | 1033 kVideoFrameKey, kPayloadType, kTimestamp + 1, kCaptureTimeMs + 1, |
| 1044 kPayloadData, sizeof(kPayloadData), nullptr, &video_header, nullptr, | 1034 kPayloadData, sizeof(kPayloadData), nullptr, &video_header, nullptr, |
| 1045 kDefaultExpectedRetransmissionTimeMs)); | 1035 kDefaultExpectedRetransmissionTimeMs)); |
| 1046 | 1036 |
| 1047 EXPECT_CALL(mock_rtc_event_log_, | 1037 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)).Times(2); |
| 1048 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) | |
| 1049 .Times(2); | |
| 1050 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kMediaSsrc, kSeqNum + 1, | 1038 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kMediaSsrc, kSeqNum + 1, |
| 1051 fake_clock_.TimeInMilliseconds(), | 1039 fake_clock_.TimeInMilliseconds(), |
| 1052 false, PacedPacketInfo())); | 1040 false, PacedPacketInfo())); |
| 1053 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kFlexfecSsrc, flexfec_seq_num, | 1041 EXPECT_TRUE(rtp_sender_->TimeToSendPacket(kFlexfecSsrc, flexfec_seq_num, |
| 1054 fake_clock_.TimeInMilliseconds(), | 1042 fake_clock_.TimeInMilliseconds(), |
| 1055 false, PacedPacketInfo())); | 1043 false, PacedPacketInfo())); |
| 1056 ASSERT_EQ(3, transport_.packets_sent()); | 1044 ASSERT_EQ(3, transport_.packets_sent()); |
| 1057 const RtpPacketReceived& media_packet2 = transport_.sent_packets_[1]; | 1045 const RtpPacketReceived& media_packet2 = transport_.sent_packets_[1]; |
| 1058 EXPECT_EQ(kMediaPayloadType, media_packet2.PayloadType()); | 1046 EXPECT_EQ(kMediaPayloadType, media_packet2.PayloadType()); |
| 1059 EXPECT_EQ(kSeqNum + 1, media_packet2.SequenceNumber()); | 1047 EXPECT_EQ(kSeqNum + 1, media_packet2.SequenceNumber()); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1085 rtp_sender_->SetSequenceNumber(kSeqNum); | 1073 rtp_sender_->SetSequenceNumber(kSeqNum); |
| 1086 rtp_sender_->SetSendPayloadType(kMediaPayloadType); | 1074 rtp_sender_->SetSendPayloadType(kMediaPayloadType); |
| 1087 | 1075 |
| 1088 // Parameters selected to generate a single FEC packet per media packet. | 1076 // Parameters selected to generate a single FEC packet per media packet. |
| 1089 FecProtectionParams params; | 1077 FecProtectionParams params; |
| 1090 params.fec_rate = 15; | 1078 params.fec_rate = 15; |
| 1091 params.max_fec_frames = 1; | 1079 params.max_fec_frames = 1; |
| 1092 params.fec_mask_type = kFecMaskRandom; | 1080 params.fec_mask_type = kFecMaskRandom; |
| 1093 rtp_sender_->SetFecParameters(params, params); | 1081 rtp_sender_->SetFecParameters(params, params); |
| 1094 | 1082 |
| 1095 EXPECT_CALL(mock_rtc_event_log_, | 1083 EXPECT_CALL(mock_rtc_event_log_, LogOutgoingRtpHeader(_, _)).Times(2); |
| 1096 LogRtpHeader(PacketDirection::kOutgoingPacket, _, _, _)) | |
| 1097 .Times(2); | |
| 1098 SendGenericPayload(); | 1084 SendGenericPayload(); |
| 1099 ASSERT_EQ(2, transport_.packets_sent()); | 1085 ASSERT_EQ(2, transport_.packets_sent()); |
| 1100 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; | 1086 const RtpPacketReceived& media_packet = transport_.sent_packets_[0]; |
| 1101 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); | 1087 EXPECT_EQ(kMediaPayloadType, media_packet.PayloadType()); |
| 1102 EXPECT_EQ(kMediaSsrc, media_packet.Ssrc()); | 1088 EXPECT_EQ(kMediaSsrc, media_packet.Ssrc()); |
| 1103 const RtpPacketReceived& flexfec_packet = transport_.sent_packets_[1]; | 1089 const RtpPacketReceived& flexfec_packet = transport_.sent_packets_[1]; |
| 1104 EXPECT_EQ(kFlexfecPayloadType, flexfec_packet.PayloadType()); | 1090 EXPECT_EQ(kFlexfecPayloadType, flexfec_packet.PayloadType()); |
| 1105 EXPECT_EQ(kFlexfecSsrc, flexfec_packet.Ssrc()); | 1091 EXPECT_EQ(kFlexfecSsrc, flexfec_packet.Ssrc()); |
| 1106 } | 1092 } |
| 1107 | 1093 |
| (...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1991 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1977 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, |
| 1992 RtpSenderTestWithoutPacer, | 1978 RtpSenderTestWithoutPacer, |
| 1993 ::testing::Bool()); | 1979 ::testing::Bool()); |
| 1994 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1980 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, |
| 1995 RtpSenderVideoTest, | 1981 RtpSenderVideoTest, |
| 1996 ::testing::Bool()); | 1982 ::testing::Bool()); |
| 1997 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1983 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, |
| 1998 RtpSenderAudioTest, | 1984 RtpSenderAudioTest, |
| 1999 ::testing::Bool()); | 1985 ::testing::Bool()); |
| 2000 } // namespace webrtc | 1986 } // namespace webrtc |
| OLD | NEW |