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 30 matching lines...) Expand all Loading... |
41 SimulatedClock fake_clock_; | 41 SimulatedClock fake_clock_; |
42 rtc::scoped_ptr<MockProcessThread> process_thread_; | 42 rtc::scoped_ptr<MockProcessThread> process_thread_; |
43 rtc::scoped_ptr<VieRemb> vie_remb_; | 43 rtc::scoped_ptr<VieRemb> vie_remb_; |
44 }; | 44 }; |
45 | 45 |
46 TEST_F(ViERembTest, OneModuleTestForSendingRemb) { | 46 TEST_F(ViERembTest, OneModuleTestForSendingRemb) { |
47 MockRtpRtcp rtp; | 47 MockRtpRtcp rtp; |
48 vie_remb_->AddReceiveChannel(&rtp); | 48 vie_remb_->AddReceiveChannel(&rtp); |
49 vie_remb_->AddRembSender(&rtp); | 49 vie_remb_->AddRembSender(&rtp); |
50 | 50 |
51 const unsigned int bitrate_estimate = 456; | 51 const uint32_t bitrate_estimate = 456; |
52 unsigned int ssrc = 1234; | 52 uint32_t ssrc = 1234; |
53 std::vector<unsigned int> ssrcs(&ssrc, &ssrc + 1); | 53 std::vector<uint32_t> ssrcs(&ssrc, &ssrc + 1); |
54 | 54 |
55 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 55 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
56 | 56 |
57 fake_clock_.AdvanceTimeMilliseconds(1000); | 57 fake_clock_.AdvanceTimeMilliseconds(1000); |
58 EXPECT_CALL(rtp, SetREMBData(bitrate_estimate, ssrcs)) | 58 EXPECT_CALL(rtp, SetREMBData(bitrate_estimate, ssrcs)) |
59 .Times(1); | 59 .Times(1); |
60 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 60 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
61 | 61 |
62 // Lower bitrate to send another REMB packet. | 62 // Lower bitrate to send another REMB packet. |
63 EXPECT_CALL(rtp, SetREMBData(bitrate_estimate - 100, ssrcs)) | 63 EXPECT_CALL(rtp, SetREMBData(bitrate_estimate - 100, ssrcs)) |
64 .Times(1); | 64 .Times(1); |
65 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate - 100); | 65 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate - 100); |
66 | 66 |
67 vie_remb_->RemoveReceiveChannel(&rtp); | 67 vie_remb_->RemoveReceiveChannel(&rtp); |
68 vie_remb_->RemoveRembSender(&rtp); | 68 vie_remb_->RemoveRembSender(&rtp); |
69 } | 69 } |
70 | 70 |
71 TEST_F(ViERembTest, LowerEstimateToSendRemb) { | 71 TEST_F(ViERembTest, LowerEstimateToSendRemb) { |
72 MockRtpRtcp rtp; | 72 MockRtpRtcp rtp; |
73 vie_remb_->AddReceiveChannel(&rtp); | 73 vie_remb_->AddReceiveChannel(&rtp); |
74 vie_remb_->AddRembSender(&rtp); | 74 vie_remb_->AddRembSender(&rtp); |
75 | 75 |
76 unsigned int bitrate_estimate = 456; | 76 uint32_t bitrate_estimate = 456; |
77 unsigned int ssrc = 1234; | 77 uint32_t ssrc = 1234; |
78 std::vector<unsigned int> ssrcs(&ssrc, &ssrc + 1); | 78 std::vector<uint32_t> ssrcs(&ssrc, &ssrc + 1); |
79 | 79 |
80 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 80 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
81 // Call OnReceiveBitrateChanged twice to get a first estimate. | 81 // Call OnReceiveBitrateChanged twice to get a first estimate. |
82 fake_clock_.AdvanceTimeMilliseconds(1000); | 82 fake_clock_.AdvanceTimeMilliseconds(1000); |
83 EXPECT_CALL(rtp, SetREMBData(bitrate_estimate, ssrcs)) | 83 EXPECT_CALL(rtp, SetREMBData(bitrate_estimate, ssrcs)) |
84 .Times(1); | 84 .Times(1); |
85 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 85 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
86 | 86 |
87 // Lower the estimate with more than 3% to trigger a call to SetREMBData right | 87 // Lower the estimate with more than 3% to trigger a call to SetREMBData right |
88 // away. | 88 // away. |
89 bitrate_estimate = bitrate_estimate - 100; | 89 bitrate_estimate = bitrate_estimate - 100; |
90 EXPECT_CALL(rtp, SetREMBData(bitrate_estimate, ssrcs)) | 90 EXPECT_CALL(rtp, SetREMBData(bitrate_estimate, ssrcs)) |
91 .Times(1); | 91 .Times(1); |
92 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 92 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
93 } | 93 } |
94 | 94 |
95 TEST_F(ViERembTest, VerifyIncreasingAndDecreasing) { | 95 TEST_F(ViERembTest, VerifyIncreasingAndDecreasing) { |
96 MockRtpRtcp rtp_0; | 96 MockRtpRtcp rtp_0; |
97 MockRtpRtcp rtp_1; | 97 MockRtpRtcp rtp_1; |
98 vie_remb_->AddReceiveChannel(&rtp_0); | 98 vie_remb_->AddReceiveChannel(&rtp_0); |
99 vie_remb_->AddRembSender(&rtp_0); | 99 vie_remb_->AddRembSender(&rtp_0); |
100 vie_remb_->AddReceiveChannel(&rtp_1); | 100 vie_remb_->AddReceiveChannel(&rtp_1); |
101 | 101 |
102 unsigned int bitrate_estimate[] = { 456, 789 }; | 102 uint32_t bitrate_estimate[] = {456, 789}; |
103 unsigned int ssrc[] = { 1234, 5678 }; | 103 uint32_t ssrc[] = {1234, 5678}; |
104 std::vector<unsigned int> ssrcs(ssrc, ssrc + sizeof(ssrc) / sizeof(ssrc[0])); | 104 std::vector<uint32_t> ssrcs(ssrc, ssrc + sizeof(ssrc) / sizeof(ssrc[0])); |
105 | 105 |
106 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate[0]); | 106 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate[0]); |
107 | 107 |
108 // Call OnReceiveBitrateChanged twice to get a first estimate. | 108 // Call OnReceiveBitrateChanged twice to get a first estimate. |
109 EXPECT_CALL(rtp_0, SetREMBData(bitrate_estimate[0], ssrcs)) | 109 EXPECT_CALL(rtp_0, SetREMBData(bitrate_estimate[0], ssrcs)) |
110 .Times(1); | 110 .Times(1); |
111 fake_clock_.AdvanceTimeMilliseconds(1000); | 111 fake_clock_.AdvanceTimeMilliseconds(1000); |
112 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate[0]); | 112 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate[0]); |
113 | 113 |
114 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate[1] + 100); | 114 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate[1] + 100); |
115 | 115 |
116 // Lower the estimate to trigger a callback. | 116 // Lower the estimate to trigger a callback. |
117 EXPECT_CALL(rtp_0, SetREMBData(bitrate_estimate[1], ssrcs)) | 117 EXPECT_CALL(rtp_0, SetREMBData(bitrate_estimate[1], ssrcs)) |
118 .Times(1); | 118 .Times(1); |
119 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate[1]); | 119 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate[1]); |
120 | 120 |
121 vie_remb_->RemoveReceiveChannel(&rtp_0); | 121 vie_remb_->RemoveReceiveChannel(&rtp_0); |
122 vie_remb_->RemoveRembSender(&rtp_0); | 122 vie_remb_->RemoveRembSender(&rtp_0); |
123 vie_remb_->RemoveReceiveChannel(&rtp_1); | 123 vie_remb_->RemoveReceiveChannel(&rtp_1); |
124 } | 124 } |
125 | 125 |
126 TEST_F(ViERembTest, NoRembForIncreasedBitrate) { | 126 TEST_F(ViERembTest, NoRembForIncreasedBitrate) { |
127 MockRtpRtcp rtp_0; | 127 MockRtpRtcp rtp_0; |
128 MockRtpRtcp rtp_1; | 128 MockRtpRtcp rtp_1; |
129 vie_remb_->AddReceiveChannel(&rtp_0); | 129 vie_remb_->AddReceiveChannel(&rtp_0); |
130 vie_remb_->AddRembSender(&rtp_0); | 130 vie_remb_->AddRembSender(&rtp_0); |
131 vie_remb_->AddReceiveChannel(&rtp_1); | 131 vie_remb_->AddReceiveChannel(&rtp_1); |
132 | 132 |
133 unsigned int bitrate_estimate = 456; | 133 uint32_t bitrate_estimate = 456; |
134 unsigned int ssrc[] = { 1234, 5678 }; | 134 uint32_t ssrc[] = {1234, 5678}; |
135 std::vector<unsigned int> ssrcs(ssrc, ssrc + sizeof(ssrc) / sizeof(ssrc[0])); | 135 std::vector<uint32_t> ssrcs(ssrc, ssrc + sizeof(ssrc) / sizeof(ssrc[0])); |
136 | 136 |
137 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 137 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
138 // Call OnReceiveBitrateChanged twice to get a first estimate. | 138 // Call OnReceiveBitrateChanged twice to get a first estimate. |
139 fake_clock_.AdvanceTimeMilliseconds(1000); | 139 fake_clock_.AdvanceTimeMilliseconds(1000); |
140 EXPECT_CALL(rtp_0, SetREMBData(bitrate_estimate, ssrcs)) | 140 EXPECT_CALL(rtp_0, SetREMBData(bitrate_estimate, ssrcs)) |
141 .Times(1); | 141 .Times(1); |
142 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 142 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
143 | 143 |
144 // Increased estimate shouldn't trigger a callback right away. | 144 // Increased estimate shouldn't trigger a callback right away. |
145 EXPECT_CALL(rtp_0, SetREMBData(_, _)) | 145 EXPECT_CALL(rtp_0, SetREMBData(_, _)) |
(...skipping 11 matching lines...) Expand all Loading... |
157 vie_remb_->RemoveRembSender(&rtp_0); | 157 vie_remb_->RemoveRembSender(&rtp_0); |
158 } | 158 } |
159 | 159 |
160 TEST_F(ViERembTest, ChangeSendRtpModule) { | 160 TEST_F(ViERembTest, ChangeSendRtpModule) { |
161 MockRtpRtcp rtp_0; | 161 MockRtpRtcp rtp_0; |
162 MockRtpRtcp rtp_1; | 162 MockRtpRtcp rtp_1; |
163 vie_remb_->AddReceiveChannel(&rtp_0); | 163 vie_remb_->AddReceiveChannel(&rtp_0); |
164 vie_remb_->AddRembSender(&rtp_0); | 164 vie_remb_->AddRembSender(&rtp_0); |
165 vie_remb_->AddReceiveChannel(&rtp_1); | 165 vie_remb_->AddReceiveChannel(&rtp_1); |
166 | 166 |
167 unsigned int bitrate_estimate = 456; | 167 uint32_t bitrate_estimate = 456; |
168 unsigned int ssrc[] = { 1234, 5678 }; | 168 uint32_t ssrc[] = {1234, 5678}; |
169 std::vector<unsigned int> ssrcs(ssrc, ssrc + sizeof(ssrc) / sizeof(ssrc[0])); | 169 std::vector<uint32_t> ssrcs(ssrc, ssrc + sizeof(ssrc) / sizeof(ssrc[0])); |
170 | 170 |
171 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 171 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
172 // Call OnReceiveBitrateChanged twice to get a first estimate. | 172 // Call OnReceiveBitrateChanged twice to get a first estimate. |
173 fake_clock_.AdvanceTimeMilliseconds(1000); | 173 fake_clock_.AdvanceTimeMilliseconds(1000); |
174 EXPECT_CALL(rtp_0, SetREMBData(bitrate_estimate, ssrcs)) | 174 EXPECT_CALL(rtp_0, SetREMBData(bitrate_estimate, ssrcs)) |
175 .Times(1); | 175 .Times(1); |
176 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 176 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
177 | 177 |
178 // Decrease estimate to trigger a REMB. | 178 // Decrease estimate to trigger a REMB. |
179 bitrate_estimate = bitrate_estimate - 100; | 179 bitrate_estimate = bitrate_estimate - 100; |
(...skipping 11 matching lines...) Expand all Loading... |
191 EXPECT_CALL(rtp_1, SetREMBData(bitrate_estimate, ssrcs)) | 191 EXPECT_CALL(rtp_1, SetREMBData(bitrate_estimate, ssrcs)) |
192 .Times(1); | 192 .Times(1); |
193 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 193 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
194 | 194 |
195 vie_remb_->RemoveReceiveChannel(&rtp_0); | 195 vie_remb_->RemoveReceiveChannel(&rtp_0); |
196 vie_remb_->RemoveReceiveChannel(&rtp_1); | 196 vie_remb_->RemoveReceiveChannel(&rtp_1); |
197 } | 197 } |
198 | 198 |
199 TEST_F(ViERembTest, OnlyOneRembForDoubleProcess) { | 199 TEST_F(ViERembTest, OnlyOneRembForDoubleProcess) { |
200 MockRtpRtcp rtp; | 200 MockRtpRtcp rtp; |
201 unsigned int bitrate_estimate = 456; | 201 uint32_t bitrate_estimate = 456; |
202 unsigned int ssrc = 1234; | 202 uint32_t ssrc = 1234; |
203 std::vector<unsigned int> ssrcs(&ssrc, &ssrc + 1); | 203 std::vector<uint32_t> ssrcs(&ssrc, &ssrc + 1); |
204 | 204 |
205 vie_remb_->AddReceiveChannel(&rtp); | 205 vie_remb_->AddReceiveChannel(&rtp); |
206 vie_remb_->AddRembSender(&rtp); | 206 vie_remb_->AddRembSender(&rtp); |
207 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 207 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
208 // Call OnReceiveBitrateChanged twice to get a first estimate. | 208 // Call OnReceiveBitrateChanged twice to get a first estimate. |
209 fake_clock_.AdvanceTimeMilliseconds(1000); | 209 fake_clock_.AdvanceTimeMilliseconds(1000); |
210 EXPECT_CALL(rtp, SetREMBData(_, _)) | 210 EXPECT_CALL(rtp, SetREMBData(_, _)) |
211 .Times(1); | 211 .Times(1); |
212 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 212 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
213 | 213 |
(...skipping 10 matching lines...) Expand all Loading... |
224 vie_remb_->RemoveReceiveChannel(&rtp); | 224 vie_remb_->RemoveReceiveChannel(&rtp); |
225 vie_remb_->RemoveRembSender(&rtp); | 225 vie_remb_->RemoveRembSender(&rtp); |
226 } | 226 } |
227 | 227 |
228 // Only register receiving modules and make sure we fallback to trigger a REMB | 228 // Only register receiving modules and make sure we fallback to trigger a REMB |
229 // packet on this one. | 229 // packet on this one. |
230 TEST_F(ViERembTest, NoSendingRtpModule) { | 230 TEST_F(ViERembTest, NoSendingRtpModule) { |
231 MockRtpRtcp rtp; | 231 MockRtpRtcp rtp; |
232 vie_remb_->AddReceiveChannel(&rtp); | 232 vie_remb_->AddReceiveChannel(&rtp); |
233 | 233 |
234 unsigned int bitrate_estimate = 456; | 234 uint32_t bitrate_estimate = 456; |
235 unsigned int ssrc = 1234; | 235 uint32_t ssrc = 1234; |
236 std::vector<unsigned int> ssrcs(&ssrc, &ssrc + 1); | 236 std::vector<uint32_t> ssrcs(&ssrc, &ssrc + 1); |
237 | 237 |
238 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 238 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
239 | 239 |
240 // Call OnReceiveBitrateChanged twice to get a first estimate. | 240 // Call OnReceiveBitrateChanged twice to get a first estimate. |
241 fake_clock_.AdvanceTimeMilliseconds(1000); | 241 fake_clock_.AdvanceTimeMilliseconds(1000); |
242 EXPECT_CALL(rtp, SetREMBData(_, _)) | 242 EXPECT_CALL(rtp, SetREMBData(_, _)) |
243 .Times(1); | 243 .Times(1); |
244 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 244 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
245 | 245 |
246 // Lower the estimate to trigger a new packet REMB packet. | 246 // Lower the estimate to trigger a new packet REMB packet. |
247 bitrate_estimate = bitrate_estimate - 100; | 247 bitrate_estimate = bitrate_estimate - 100; |
248 EXPECT_CALL(rtp, SetREMBData(_, _)) | 248 EXPECT_CALL(rtp, SetREMBData(_, _)) |
249 .Times(1); | 249 .Times(1); |
250 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); | 250 vie_remb_->OnReceiveBitrateChanged(ssrcs, bitrate_estimate); |
251 } | 251 } |
252 | 252 |
253 } // namespace webrtc | 253 } // namespace webrtc |
OLD | NEW |