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 |