| 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 725 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 736 while (callback.packets_sent() < kNumPackets) { | 736 while (callback.packets_sent() < kNumPackets) { |
| 737 int time_until_process = send_bucket_->TimeUntilNextProcess(); | 737 int time_until_process = send_bucket_->TimeUntilNextProcess(); |
| 738 if (time_until_process <= 0) { | 738 if (time_until_process <= 0) { |
| 739 send_bucket_->Process(); | 739 send_bucket_->Process(); |
| 740 } else { | 740 } else { |
| 741 clock_.AdvanceTimeMilliseconds(time_until_process); | 741 clock_.AdvanceTimeMilliseconds(time_until_process); |
| 742 } | 742 } |
| 743 } | 743 } |
| 744 } | 744 } |
| 745 | 745 |
| 746 class ProbingPacedSender : public PacedSender { | |
| 747 public: | |
| 748 ProbingPacedSender(Clock* clock, | |
| 749 Callback* callback, | |
| 750 int bitrate_kbps, | |
| 751 int max_bitrate_kbps, | |
| 752 int min_bitrate_kbps) | |
| 753 : PacedSender(clock, | |
| 754 callback, | |
| 755 bitrate_kbps, | |
| 756 max_bitrate_kbps, | |
| 757 min_bitrate_kbps) {} | |
| 758 | |
| 759 bool ProbingExperimentIsEnabled() const override { return true; } | |
| 760 }; | |
| 761 | |
| 762 TEST_F(PacedSenderTest, ProbingWithTooSmallInitialFrame) { | 746 TEST_F(PacedSenderTest, ProbingWithTooSmallInitialFrame) { |
| 763 const int kNumPackets = 11; | 747 const int kNumPackets = 11; |
| 764 const int kNumDeltas = kNumPackets - 1; | 748 const int kNumDeltas = kNumPackets - 1; |
| 765 const size_t kPacketSize = 1200; | 749 const size_t kPacketSize = 1200; |
| 766 const int kInitialBitrateKbps = 300; | 750 const int kInitialBitrateKbps = 300; |
| 767 uint32_t ssrc = 12346; | 751 uint32_t ssrc = 12346; |
| 768 uint16_t sequence_number = 1234; | 752 uint16_t sequence_number = 1234; |
| 769 const int expected_deltas[kNumDeltas] = {10, 10, 10, 10, 10, 5, 5, 5, 5, 5}; | 753 const int expected_deltas[kNumDeltas] = {10, 10, 10, 10, 10, 5, 5, 5, 5, 5}; |
| 770 std::list<int> expected_deltas_list(expected_deltas, | 754 std::list<int> expected_deltas_list(expected_deltas, |
| 771 expected_deltas + kNumPackets - 1); | 755 expected_deltas + kNumPackets - 1); |
| 772 PacedSenderProbing callback(expected_deltas_list, &clock_); | 756 PacedSenderProbing callback(expected_deltas_list, &clock_); |
| 773 send_bucket_.reset( | 757 send_bucket_.reset(new PacedSender(&clock_, &callback, kInitialBitrateKbps, |
| 774 new ProbingPacedSender(&clock_, &callback, kInitialBitrateKbps, | 758 kPaceMultiplier * kInitialBitrateKbps, 0)); |
| 775 kPaceMultiplier * kInitialBitrateKbps, 0)); | |
| 776 | 759 |
| 777 for (int i = 0; i < kNumPackets - 5; ++i) { | 760 for (int i = 0; i < kNumPackets - 5; ++i) { |
| 778 EXPECT_FALSE(send_bucket_->SendPacket( | 761 EXPECT_FALSE(send_bucket_->SendPacket( |
| 779 PacedSender::kNormalPriority, ssrc, sequence_number++, | 762 PacedSender::kNormalPriority, ssrc, sequence_number++, |
| 780 clock_.TimeInMilliseconds(), kPacketSize, false)); | 763 clock_.TimeInMilliseconds(), kPacketSize, false)); |
| 781 } | 764 } |
| 782 while (callback.packets_sent() < kNumPackets) { | 765 while (callback.packets_sent() < kNumPackets) { |
| 783 int time_until_process = send_bucket_->TimeUntilNextProcess(); | 766 int time_until_process = send_bucket_->TimeUntilNextProcess(); |
| 784 if (time_until_process <= 0) { | 767 if (time_until_process <= 0) { |
| 785 send_bucket_->Process(); | 768 send_bucket_->Process(); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 863 PacedSender::kHighPriority, ssrc, sequence_number++, | 846 PacedSender::kHighPriority, ssrc, sequence_number++, |
| 864 clock_.TimeInMilliseconds(), kPacketSize, false)); | 847 clock_.TimeInMilliseconds(), kPacketSize, false)); |
| 865 | 848 |
| 866 // Don't send padding if queue is non-empty, even if padding budget > 0. | 849 // Don't send padding if queue is non-empty, even if padding budget > 0. |
| 867 EXPECT_CALL(callback_, TimeToSendPadding(_)).Times(0); | 850 EXPECT_CALL(callback_, TimeToSendPadding(_)).Times(0); |
| 868 send_bucket_->Process(); | 851 send_bucket_->Process(); |
| 869 } | 852 } |
| 870 | 853 |
| 871 } // namespace test | 854 } // namespace test |
| 872 } // namespace webrtc | 855 } // namespace webrtc |
| OLD | NEW |