| 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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 MOCK_METHOD0(AllocateSequenceNumber, uint16_t()); | 119 MOCK_METHOD0(AllocateSequenceNumber, uint16_t()); |
| 120 }; | 120 }; |
| 121 | 121 |
| 122 class MockSendPacketObserver : public SendPacketObserver { | 122 class MockSendPacketObserver : public SendPacketObserver { |
| 123 public: | 123 public: |
| 124 MOCK_METHOD3(OnSendPacket, void(uint16_t, int64_t, uint32_t)); | 124 MOCK_METHOD3(OnSendPacket, void(uint16_t, int64_t, uint32_t)); |
| 125 }; | 125 }; |
| 126 | 126 |
| 127 class MockTransportFeedbackObserver : public TransportFeedbackObserver { | 127 class MockTransportFeedbackObserver : public TransportFeedbackObserver { |
| 128 public: | 128 public: |
| 129 MOCK_METHOD4(AddPacket, | 129 MOCK_METHOD5( |
| 130 void(uint32_t, uint16_t, size_t, const PacedPacketInfo&)); | 130 AddPacket, |
| 131 void(uint32_t, uint16_t, size_t, size_t, const PacedPacketInfo&)); |
| 131 MOCK_METHOD1(OnTransportFeedback, void(const rtcp::TransportFeedback&)); | 132 MOCK_METHOD1(OnTransportFeedback, void(const rtcp::TransportFeedback&)); |
| 132 MOCK_CONST_METHOD0(GetTransportFeedbackVector, std::vector<PacketFeedback>()); | 133 MOCK_CONST_METHOD0(GetTransportFeedbackVector, std::vector<PacketFeedback>()); |
| 133 }; | 134 }; |
| 134 | 135 |
| 135 class MockOverheadObserver : public OverheadObserver { | 136 class MockOverheadObserver : public OverheadObserver { |
| 136 public: | 137 public: |
| 137 MOCK_METHOD1(OnOverheadChanged, void(size_t overhead_bytes_per_packet)); | 138 MOCK_METHOD1(OnOverheadChanged, void(size_t overhead_bytes_per_packet)); |
| 138 }; | 139 }; |
| 139 | 140 |
| 140 class RtpSenderTest : public ::testing::TestWithParam<bool> { | 141 class RtpSenderTest : public ::testing::TestWithParam<bool> { |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_, | 356 false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_, |
| 356 &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_, | 357 &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_, |
| 357 nullptr, &retransmission_rate_limiter_, &mock_overhead_observer)); | 358 nullptr, &retransmission_rate_limiter_, &mock_overhead_observer)); |
| 358 rtp_sender_->SetSSRC(kSsrc); | 359 rtp_sender_->SetSSRC(kSsrc); |
| 359 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 360 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
| 360 kRtpExtensionTransportSequenceNumber, | 361 kRtpExtensionTransportSequenceNumber, |
| 361 kTransportSequenceNumberExtensionId)); | 362 kTransportSequenceNumberExtensionId)); |
| 362 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) | 363 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) |
| 363 .WillOnce(testing::Return(kTransportSequenceNumber)); | 364 .WillOnce(testing::Return(kTransportSequenceNumber)); |
| 364 | 365 |
| 365 const size_t expected_bytes = | |
| 366 GetParam() ? sizeof(kPayloadData) + kGenericHeaderLength + | |
| 367 kRtpOverheadBytesPerPacket | |
| 368 : sizeof(kPayloadData) + kGenericHeaderLength; | |
| 369 | |
| 370 EXPECT_CALL(feedback_observer_, | 366 EXPECT_CALL(feedback_observer_, |
| 371 AddPacket(rtp_sender_->SSRC(), kTransportSequenceNumber, | 367 AddPacket(rtp_sender_->SSRC(), kTransportSequenceNumber, |
| 372 expected_bytes, PacedPacketInfo())) | 368 sizeof(kPayloadData) + kGenericHeaderLength, |
| 369 kRtpOverheadBytesPerPacket, PacedPacketInfo())) |
| 373 .Times(1); | 370 .Times(1); |
| 374 EXPECT_CALL(mock_overhead_observer, | 371 EXPECT_CALL(mock_overhead_observer, |
| 375 OnOverheadChanged(kRtpOverheadBytesPerPacket)) | 372 OnOverheadChanged(kRtpOverheadBytesPerPacket)) |
| 376 .Times(1); | 373 .Times(1); |
| 377 SendGenericPayload(); | 374 SendGenericPayload(); |
| 378 } | 375 } |
| 379 | 376 |
| 380 TEST_P(RtpSenderTestWithoutPacer, SendsPacketsWithTransportSequenceNumber) { | 377 TEST_P(RtpSenderTestWithoutPacer, SendsPacketsWithTransportSequenceNumber) { |
| 381 rtp_sender_.reset(new RTPSender( | 378 rtp_sender_.reset(new RTPSender( |
| 382 false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_, | 379 false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_, |
| 383 &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_, | 380 &feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_, |
| 384 &send_packet_observer_, &retransmission_rate_limiter_, nullptr)); | 381 &send_packet_observer_, &retransmission_rate_limiter_, nullptr)); |
| 385 rtp_sender_->SetSSRC(kSsrc); | 382 rtp_sender_->SetSSRC(kSsrc); |
| 386 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( | 383 EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
| 387 kRtpExtensionTransportSequenceNumber, | 384 kRtpExtensionTransportSequenceNumber, |
| 388 kTransportSequenceNumberExtensionId)); | 385 kTransportSequenceNumberExtensionId)); |
| 389 | 386 |
| 390 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) | 387 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) |
| 391 .WillOnce(testing::Return(kTransportSequenceNumber)); | 388 .WillOnce(testing::Return(kTransportSequenceNumber)); |
| 392 EXPECT_CALL(send_packet_observer_, | 389 EXPECT_CALL(send_packet_observer_, |
| 393 OnSendPacket(kTransportSequenceNumber, _, _)) | 390 OnSendPacket(kTransportSequenceNumber, _, _)) |
| 394 .Times(1); | 391 .Times(1); |
| 395 | 392 |
| 396 EXPECT_CALL(feedback_observer_, | 393 EXPECT_CALL(feedback_observer_, |
| 397 AddPacket(rtp_sender_->SSRC(), kTransportSequenceNumber, _, | 394 AddPacket(rtp_sender_->SSRC(), kTransportSequenceNumber, _, _, |
| 398 PacedPacketInfo())) | 395 PacedPacketInfo())) |
| 399 .Times(1); | 396 .Times(1); |
| 400 | 397 |
| 401 SendGenericPayload(); | 398 SendGenericPayload(); |
| 402 | 399 |
| 403 const auto& packet = transport_.last_sent_packet(); | 400 const auto& packet = transport_.last_sent_packet(); |
| 404 uint16_t transport_seq_no; | 401 uint16_t transport_seq_no; |
| 405 ASSERT_TRUE(packet.GetExtension<TransportSequenceNumber>(&transport_seq_no)); | 402 ASSERT_TRUE(packet.GetExtension<TransportSequenceNumber>(&transport_seq_no)); |
| 406 EXPECT_EQ(kTransportSequenceNumber, transport_seq_no); | 403 EXPECT_EQ(kTransportSequenceNumber, transport_seq_no); |
| 407 EXPECT_EQ(transport_.last_packet_id_, transport_seq_no); | 404 EXPECT_EQ(transport_.last_packet_id_, transport_seq_no); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 437 kRtpExtensionTransportSequenceNumber, | 434 kRtpExtensionTransportSequenceNumber, |
| 438 kTransportSequenceNumberExtensionId)); | 435 kTransportSequenceNumberExtensionId)); |
| 439 | 436 |
| 440 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, kSsrc, kSeqNum, _, _, _)); | 437 EXPECT_CALL(mock_paced_sender_, InsertPacket(_, kSsrc, kSeqNum, _, _, _)); |
| 441 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) | 438 EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) |
| 442 .WillOnce(testing::Return(kTransportSequenceNumber)); | 439 .WillOnce(testing::Return(kTransportSequenceNumber)); |
| 443 EXPECT_CALL(send_packet_observer_, | 440 EXPECT_CALL(send_packet_observer_, |
| 444 OnSendPacket(kTransportSequenceNumber, _, _)) | 441 OnSendPacket(kTransportSequenceNumber, _, _)) |
| 445 .Times(1); | 442 .Times(1); |
| 446 EXPECT_CALL(feedback_observer_, | 443 EXPECT_CALL(feedback_observer_, |
| 447 AddPacket(rtp_sender_->SSRC(), kTransportSequenceNumber, _, | 444 AddPacket(rtp_sender_->SSRC(), kTransportSequenceNumber, _, _, |
| 448 PacedPacketInfo())) | 445 PacedPacketInfo())) |
| 449 .Times(1); | 446 .Times(1); |
| 450 | 447 |
| 451 SendGenericPayload(); | 448 SendGenericPayload(); |
| 452 rtp_sender_->TimeToSendPacket(kSsrc, kSeqNum, | 449 rtp_sender_->TimeToSendPacket(kSsrc, kSeqNum, |
| 453 fake_clock_.TimeInMilliseconds(), false, | 450 fake_clock_.TimeInMilliseconds(), false, |
| 454 PacedPacketInfo()); | 451 PacedPacketInfo()); |
| 455 | 452 |
| 456 const auto& packet = transport_.last_sent_packet(); | 453 const auto& packet = transport_.last_sent_packet(); |
| 457 uint16_t transport_seq_no; | 454 uint16_t transport_seq_no; |
| (...skipping 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1535 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1532 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, |
| 1536 RtpSenderTestWithoutPacer, | 1533 RtpSenderTestWithoutPacer, |
| 1537 ::testing::Bool()); | 1534 ::testing::Bool()); |
| 1538 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1535 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, |
| 1539 RtpSenderVideoTest, | 1536 RtpSenderVideoTest, |
| 1540 ::testing::Bool()); | 1537 ::testing::Bool()); |
| 1541 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, | 1538 INSTANTIATE_TEST_CASE_P(WithAndWithoutOverhead, |
| 1542 RtpSenderAudioTest, | 1539 RtpSenderAudioTest, |
| 1543 ::testing::Bool()); | 1540 ::testing::Bool()); |
| 1544 } // namespace webrtc | 1541 } // namespace webrtc |
| OLD | NEW |