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

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

Issue 2827333005: Moving overhead counting to bitrate estimators.
Patch Set: Created 3 years, 8 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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698