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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
102 std::list<int> expected_deltas_; | 102 std::list<int> expected_deltas_; |
103 int packets_sent_; | 103 int packets_sent_; |
104 Clock* clock_; | 104 Clock* clock_; |
105 }; | 105 }; |
106 | 106 |
107 class PacedSenderTest : public ::testing::Test { | 107 class PacedSenderTest : public ::testing::Test { |
108 protected: | 108 protected: |
109 PacedSenderTest() : clock_(123456) { | 109 PacedSenderTest() : clock_(123456) { |
110 srand(0); | 110 srand(0); |
111 // Need to initialize PacedSender after we initialize clock. | 111 // Need to initialize PacedSender after we initialize clock. |
112 send_bucket_.reset(new PacedSender(&clock_, &callback_)); | 112 send_bucket_.reset(new PacedSender(&clock_, &callback_, nullptr)); |
philipel
2016/09/19 11:25:23
PacingObserver can't be null right?
I think we sh
Irfan
2016/09/19 22:15:03
Done.
| |
113 send_bucket_->CreateProbeCluster(900000, 6); | 113 send_bucket_->CreateProbeCluster(900000, 6); |
114 send_bucket_->CreateProbeCluster(1800000, 5); | 114 send_bucket_->CreateProbeCluster(1800000, 5); |
115 // Default to bitrate probing disabled for testing purposes. Probing tests | 115 // Default to bitrate probing disabled for testing purposes. Probing tests |
116 // have to enable probing, either by creating a new PacedSender instance or | 116 // have to enable probing, either by creating a new PacedSender instance or |
117 // by calling SetProbingEnabled(true). | 117 // by calling SetProbingEnabled(true). |
118 send_bucket_->SetProbingEnabled(false); | 118 send_bucket_->SetProbingEnabled(false); |
119 send_bucket_->SetEstimatedBitrate(kTargetBitrateBps); | 119 send_bucket_->SetEstimatedBitrate(kTargetBitrateBps); |
120 | 120 |
121 clock_.AdvanceTimeMilliseconds(send_bucket_->TimeUntilNextProcess()); | 121 clock_.AdvanceTimeMilliseconds(send_bucket_->TimeUntilNextProcess()); |
122 } | 122 } |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
407 } | 407 } |
408 } | 408 } |
409 | 409 |
410 TEST_F(PacedSenderTest, VerifyAverageBitrateVaryingMediaPayload) { | 410 TEST_F(PacedSenderTest, VerifyAverageBitrateVaryingMediaPayload) { |
411 uint32_t ssrc = 12345; | 411 uint32_t ssrc = 12345; |
412 uint16_t sequence_number = 1234; | 412 uint16_t sequence_number = 1234; |
413 int64_t capture_time_ms = 56789; | 413 int64_t capture_time_ms = 56789; |
414 const int kTimeStep = 5; | 414 const int kTimeStep = 5; |
415 const int64_t kBitrateWindow = 10000; | 415 const int64_t kBitrateWindow = 10000; |
416 PacedSenderPadding callback; | 416 PacedSenderPadding callback; |
417 send_bucket_.reset(new PacedSender(&clock_, &callback)); | 417 send_bucket_.reset(new PacedSender(&clock_, &callback, nullptr)); |
418 send_bucket_->SetProbingEnabled(false); | 418 send_bucket_->SetProbingEnabled(false); |
419 send_bucket_->SetEstimatedBitrate(kTargetBitrateBps); | 419 send_bucket_->SetEstimatedBitrate(kTargetBitrateBps); |
420 | 420 |
421 send_bucket_->SetSendBitrateLimits( | 421 send_bucket_->SetSendBitrateLimits( |
422 0 /*allocated_bitrate_bps*/, | 422 0 /*allocated_bitrate_bps*/, |
423 kTargetBitrateBps * 2 /* max_padding_bitrate_bps */); | 423 kTargetBitrateBps * 2 /* max_padding_bitrate_bps */); |
424 | 424 |
425 int64_t start_time = clock_.TimeInMilliseconds(); | 425 int64_t start_time = clock_.TimeInMilliseconds(); |
426 size_t media_bytes = 0; | 426 size_t media_bytes = 0; |
427 while (clock_.TimeInMilliseconds() - start_time < kBitrateWindow) { | 427 while (clock_.TimeInMilliseconds() - start_time < kBitrateWindow) { |
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
808 const int kNumDeltas = kNumPackets - 1; | 808 const int kNumDeltas = kNumPackets - 1; |
809 const size_t kPacketSize = 1200; | 809 const size_t kPacketSize = 1200; |
810 const int kInitialBitrateBps = 300000; | 810 const int kInitialBitrateBps = 300000; |
811 uint32_t ssrc = 12346; | 811 uint32_t ssrc = 12346; |
812 uint16_t sequence_number = 1234; | 812 uint16_t sequence_number = 1234; |
813 | 813 |
814 const int expected_deltas[kNumDeltas] = {10, 10, 10, 10, 10, 5, 5, 5, 5, 5}; | 814 const int expected_deltas[kNumDeltas] = {10, 10, 10, 10, 10, 5, 5, 5, 5, 5}; |
815 std::list<int> expected_deltas_list(expected_deltas, | 815 std::list<int> expected_deltas_list(expected_deltas, |
816 expected_deltas + kNumDeltas); | 816 expected_deltas + kNumDeltas); |
817 PacedSenderProbing callback(expected_deltas_list, &clock_); | 817 PacedSenderProbing callback(expected_deltas_list, &clock_); |
818 send_bucket_.reset(new PacedSender(&clock_, &callback)); | 818 send_bucket_.reset(new PacedSender(&clock_, &callback, nullptr)); |
819 send_bucket_->CreateProbeCluster(900000, 6); | 819 send_bucket_->CreateProbeCluster(900000, 6); |
820 send_bucket_->CreateProbeCluster(1800000, 5); | 820 send_bucket_->CreateProbeCluster(1800000, 5); |
821 send_bucket_->SetEstimatedBitrate(kInitialBitrateBps); | 821 send_bucket_->SetEstimatedBitrate(kInitialBitrateBps); |
822 | 822 |
823 for (int i = 0; i < kNumPackets; ++i) { | 823 for (int i = 0; i < kNumPackets; ++i) { |
824 send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc, | 824 send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc, |
825 sequence_number++, clock_.TimeInMilliseconds(), | 825 sequence_number++, clock_.TimeInMilliseconds(), |
826 kPacketSize, false); | 826 kPacketSize, false); |
827 } | 827 } |
828 | 828 |
(...skipping 11 matching lines...) Expand all Loading... | |
840 const int kNumPackets = 11; | 840 const int kNumPackets = 11; |
841 const int kNumDeltas = kNumPackets - 1; | 841 const int kNumDeltas = kNumPackets - 1; |
842 const size_t kPacketSize = 1200; | 842 const size_t kPacketSize = 1200; |
843 const int kInitialBitrateBps = 300000; | 843 const int kInitialBitrateBps = 300000; |
844 uint32_t ssrc = 12346; | 844 uint32_t ssrc = 12346; |
845 uint16_t sequence_number = 1234; | 845 uint16_t sequence_number = 1234; |
846 const int expected_deltas[kNumDeltas] = {10, 10, 10, 10, 10, 5, 5, 5, 5, 5}; | 846 const int expected_deltas[kNumDeltas] = {10, 10, 10, 10, 10, 5, 5, 5, 5, 5}; |
847 std::list<int> expected_deltas_list(expected_deltas, | 847 std::list<int> expected_deltas_list(expected_deltas, |
848 expected_deltas + kNumDeltas); | 848 expected_deltas + kNumDeltas); |
849 PacedSenderProbing callback(expected_deltas_list, &clock_); | 849 PacedSenderProbing callback(expected_deltas_list, &clock_); |
850 send_bucket_.reset(new PacedSender(&clock_, &callback)); | 850 send_bucket_.reset(new PacedSender(&clock_, &callback, nullptr)); |
851 send_bucket_->CreateProbeCluster(900000, 6); | 851 send_bucket_->CreateProbeCluster(900000, 6); |
852 send_bucket_->CreateProbeCluster(1800000, 5); | 852 send_bucket_->CreateProbeCluster(1800000, 5); |
853 send_bucket_->SetEstimatedBitrate(kInitialBitrateBps); | 853 send_bucket_->SetEstimatedBitrate(kInitialBitrateBps); |
854 | 854 |
855 for (int i = 0; i < kNumPackets - 5; ++i) { | 855 for (int i = 0; i < kNumPackets - 5; ++i) { |
856 send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc, | 856 send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc, |
857 sequence_number++, clock_.TimeInMilliseconds(), | 857 sequence_number++, clock_.TimeInMilliseconds(), |
858 kPacketSize, false); | 858 kPacketSize, false); |
859 } | 859 } |
860 while (callback.packets_sent() < kNumPackets) { | 860 while (callback.packets_sent() < kNumPackets) { |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1028 | 1028 |
1029 // No more probing packets. | 1029 // No more probing packets. |
1030 EXPECT_CALL(callback_, TimeToSendPadding(_, PacketInfo::kNotAProbe)) | 1030 EXPECT_CALL(callback_, TimeToSendPadding(_, PacketInfo::kNotAProbe)) |
1031 .Times(1) | 1031 .Times(1) |
1032 .WillRepeatedly(Return(500)); | 1032 .WillRepeatedly(Return(500)); |
1033 send_bucket_->Process(); | 1033 send_bucket_->Process(); |
1034 } | 1034 } |
1035 | 1035 |
1036 } // namespace test | 1036 } // namespace test |
1037 } // namespace webrtc | 1037 } // namespace webrtc |
OLD | NEW |