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 |