Chromium Code Reviews| 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 |