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

Side by Side Diff: webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter_unittest.cc

Issue 2370313002: Reland of Unify rtcp packet setters (Closed)
Patch Set: Fix breaking mistype Created 4 years, 2 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) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 packets.push_back(PacketInfo(100, 200, 0, 1500, 0)); 118 packets.push_back(PacketInfo(100, 200, 0, 1500, 0));
119 packets.push_back(PacketInfo(110, 210, 1, 1500, 0)); 119 packets.push_back(PacketInfo(110, 210, 1, 1500, 0));
120 packets.push_back(PacketInfo(120, 220, 2, 1500, 0)); 120 packets.push_back(PacketInfo(120, 220, 2, 1500, 0));
121 packets.push_back(PacketInfo(130, 230, 3, 1500, 1)); 121 packets.push_back(PacketInfo(130, 230, 3, 1500, 1));
122 packets.push_back(PacketInfo(140, 240, 4, 1500, 1)); 122 packets.push_back(PacketInfo(140, 240, 4, 1500, 1));
123 123
124 for (const PacketInfo& packet : packets) 124 for (const PacketInfo& packet : packets)
125 OnSentPacket(packet); 125 OnSentPacket(packet);
126 126
127 rtcp::TransportFeedback feedback; 127 rtcp::TransportFeedback feedback;
128 feedback.WithBase(packets[0].sequence_number, 128 feedback.SetBase(packets[0].sequence_number,
129 packets[0].arrival_time_ms * 1000); 129 packets[0].arrival_time_ms * 1000);
130 130
131 for (const PacketInfo& packet : packets) { 131 for (const PacketInfo& packet : packets) {
132 EXPECT_TRUE(feedback.WithReceivedPacket(packet.sequence_number, 132 EXPECT_TRUE(feedback.AddReceivedPacket(packet.sequence_number,
133 packet.arrival_time_ms * 1000)); 133 packet.arrival_time_ms * 1000));
134 } 134 }
135 135
136 feedback.Build(); 136 feedback.Build();
137 137
138 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_)) 138 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_))
139 .Times(1) 139 .Times(1)
140 .WillOnce(Invoke( 140 .WillOnce(Invoke(
141 [packets, this](const std::vector<PacketInfo>& feedback_vector) { 141 [packets, this](const std::vector<PacketInfo>& feedback_vector) {
142 ComparePacketVectors(packets, feedback_vector); 142 ComparePacketVectors(packets, feedback_vector);
143 })); 143 }));
(...skipping 10 matching lines...) Expand all
154 154
155 const uint16_t kSendSideDropBefore = 1; 155 const uint16_t kSendSideDropBefore = 1;
156 const uint16_t kReceiveSideDropAfter = 3; 156 const uint16_t kReceiveSideDropAfter = 3;
157 157
158 for (const PacketInfo& packet : packets) { 158 for (const PacketInfo& packet : packets) {
159 if (packet.sequence_number >= kSendSideDropBefore) 159 if (packet.sequence_number >= kSendSideDropBefore)
160 OnSentPacket(packet); 160 OnSentPacket(packet);
161 } 161 }
162 162
163 rtcp::TransportFeedback feedback; 163 rtcp::TransportFeedback feedback;
164 feedback.WithBase(packets[0].sequence_number, 164 feedback.SetBase(packets[0].sequence_number,
165 packets[0].arrival_time_ms * 1000); 165 packets[0].arrival_time_ms * 1000);
166 166
167 for (const PacketInfo& packet : packets) { 167 for (const PacketInfo& packet : packets) {
168 if (packet.sequence_number <= kReceiveSideDropAfter) { 168 if (packet.sequence_number <= kReceiveSideDropAfter) {
169 EXPECT_TRUE(feedback.WithReceivedPacket(packet.sequence_number, 169 EXPECT_TRUE(feedback.AddReceivedPacket(packet.sequence_number,
170 packet.arrival_time_ms * 1000)); 170 packet.arrival_time_ms * 1000));
171 } 171 }
172 } 172 }
173 173
174 feedback.Build(); 174 feedback.Build();
175 175
176 std::vector<PacketInfo> expected_packets( 176 std::vector<PacketInfo> expected_packets(
177 packets.begin() + kSendSideDropBefore, 177 packets.begin() + kSendSideDropBefore,
178 packets.begin() + kReceiveSideDropAfter + 1); 178 packets.begin() + kReceiveSideDropAfter + 1);
179 179
180 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_)) 180 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_))
(...skipping 16 matching lines...) Expand all
197 PacketInfo::kNotAProbe)); 197 PacketInfo::kNotAProbe));
198 packets.push_back( 198 packets.push_back(
199 PacketInfo(kHighArrivalTimeMs, 220, 2, 1500, PacketInfo::kNotAProbe)); 199 PacketInfo(kHighArrivalTimeMs, 220, 2, 1500, PacketInfo::kNotAProbe));
200 200
201 for (const PacketInfo& packet : packets) 201 for (const PacketInfo& packet : packets)
202 OnSentPacket(packet); 202 OnSentPacket(packet);
203 203
204 for (size_t i = 0; i < packets.size(); ++i) { 204 for (size_t i = 0; i < packets.size(); ++i) {
205 std::unique_ptr<rtcp::TransportFeedback> feedback( 205 std::unique_ptr<rtcp::TransportFeedback> feedback(
206 new rtcp::TransportFeedback()); 206 new rtcp::TransportFeedback());
207 feedback->WithBase(packets[i].sequence_number, 207 feedback->SetBase(packets[i].sequence_number,
208 packets[i].arrival_time_ms * 1000); 208 packets[i].arrival_time_ms * 1000);
209 209
210 EXPECT_TRUE(feedback->WithReceivedPacket( 210 EXPECT_TRUE(feedback->AddReceivedPacket(packets[i].sequence_number,
211 packets[i].sequence_number, packets[i].arrival_time_ms * 1000)); 211 packets[i].arrival_time_ms * 1000));
212 212
213 rtc::Buffer raw_packet = feedback->Build(); 213 rtc::Buffer raw_packet = feedback->Build();
214 feedback = rtcp::TransportFeedback::ParseFrom(raw_packet.data(), 214 feedback = rtcp::TransportFeedback::ParseFrom(raw_packet.data(),
215 raw_packet.size()); 215 raw_packet.size());
216 216
217 std::vector<PacketInfo> expected_packets; 217 std::vector<PacketInfo> expected_packets;
218 expected_packets.push_back(packets[i]); 218 expected_packets.push_back(packets[i]);
219 219
220 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_)) 220 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_))
221 .Times(1) 221 .Times(1)
(...skipping 12 matching lines...) Expand all
234 packets.push_back(PacketInfo(100, 220, 2, 1500, 0)); 234 packets.push_back(PacketInfo(100, 220, 2, 1500, 0));
235 std::vector<PacketInfo> expected_packets; 235 std::vector<PacketInfo> expected_packets;
236 expected_packets.push_back(packets[2]); 236 expected_packets.push_back(packets[2]);
237 expected_packets.push_back(packets[1]); 237 expected_packets.push_back(packets[1]);
238 expected_packets.push_back(packets[0]); 238 expected_packets.push_back(packets[0]);
239 239
240 for (const PacketInfo& packet : packets) 240 for (const PacketInfo& packet : packets)
241 OnSentPacket(packet); 241 OnSentPacket(packet);
242 242
243 rtcp::TransportFeedback feedback; 243 rtcp::TransportFeedback feedback;
244 feedback.WithBase(packets[0].sequence_number, 244 feedback.SetBase(packets[0].sequence_number,
245 packets[0].arrival_time_ms * 1000); 245 packets[0].arrival_time_ms * 1000);
246 246
247 for (const PacketInfo& packet : packets) { 247 for (const PacketInfo& packet : packets) {
248 EXPECT_TRUE(feedback.WithReceivedPacket(packet.sequence_number, 248 EXPECT_TRUE(feedback.AddReceivedPacket(packet.sequence_number,
249 packet.arrival_time_ms * 1000)); 249 packet.arrival_time_ms * 1000));
250 } 250 }
251 251
252 feedback.Build(); 252 feedback.Build();
253 253
254 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_)) 254 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_))
255 .Times(1) 255 .Times(1)
256 .WillOnce(Invoke([expected_packets, 256 .WillOnce(Invoke([expected_packets,
257 this](const std::vector<PacketInfo>& feedback_vector) { 257 this](const std::vector<PacketInfo>& feedback_vector) {
258 ComparePacketVectors(expected_packets, feedback_vector); 258 ComparePacketVectors(expected_packets, feedback_vector);
259 })); 259 }));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 expected_packets.push_back(sent_packets[2]); 303 expected_packets.push_back(sent_packets[2]);
304 304
305 // Packets will be added to send history. 305 // Packets will be added to send history.
306 for (const PacketInfo& packet : sent_packets) 306 for (const PacketInfo& packet : sent_packets)
307 OnSentPacket(packet); 307 OnSentPacket(packet);
308 OnSentPacket(info); 308 OnSentPacket(info);
309 309
310 // Create expected feedback and send into adapter. 310 // Create expected feedback and send into adapter.
311 std::unique_ptr<rtcp::TransportFeedback> feedback( 311 std::unique_ptr<rtcp::TransportFeedback> feedback(
312 new rtcp::TransportFeedback()); 312 new rtcp::TransportFeedback());
313 feedback->WithBase(sent_packets[0].sequence_number, 313 feedback->SetBase(sent_packets[0].sequence_number,
314 sent_packets[0].arrival_time_ms * 1000); 314 sent_packets[0].arrival_time_ms * 1000);
315 315
316 for (const PacketInfo& packet : sent_packets) { 316 for (const PacketInfo& packet : sent_packets) {
317 EXPECT_TRUE(feedback->WithReceivedPacket(packet.sequence_number, 317 EXPECT_TRUE(feedback->AddReceivedPacket(packet.sequence_number,
318 packet.arrival_time_ms * 1000)); 318 packet.arrival_time_ms * 1000));
319 } 319 }
320 EXPECT_FALSE(feedback->WithReceivedPacket(info.sequence_number, 320 EXPECT_FALSE(feedback->AddReceivedPacket(info.sequence_number,
321 info.arrival_time_ms * 1000)); 321 info.arrival_time_ms * 1000));
322 322
323 rtc::Buffer raw_packet = feedback->Build(); 323 rtc::Buffer raw_packet = feedback->Build();
324 feedback = 324 feedback =
325 rtcp::TransportFeedback::ParseFrom(raw_packet.data(), raw_packet.size()); 325 rtcp::TransportFeedback::ParseFrom(raw_packet.data(), raw_packet.size());
326 326
327 std::vector<PacketInfo> received_feedback; 327 std::vector<PacketInfo> received_feedback;
328 328
329 EXPECT_TRUE(feedback.get() != nullptr); 329 EXPECT_TRUE(feedback.get() != nullptr);
330 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_)) 330 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_))
331 .Times(1) 331 .Times(1)
332 .WillOnce(Invoke([expected_packets, &received_feedback]( 332 .WillOnce(Invoke([expected_packets, &received_feedback](
333 const std::vector<PacketInfo>& feedback_vector) { 333 const std::vector<PacketInfo>& feedback_vector) {
334 EXPECT_EQ(expected_packets.size(), feedback_vector.size()); 334 EXPECT_EQ(expected_packets.size(), feedback_vector.size());
335 received_feedback = feedback_vector; 335 received_feedback = feedback_vector;
336 })); 336 }));
337 adapter_->OnTransportFeedback(*feedback.get()); 337 adapter_->OnTransportFeedback(*feedback.get());
338 338
339 // Create a new feedback message and add the trailing item. 339 // Create a new feedback message and add the trailing item.
340 feedback.reset(new rtcp::TransportFeedback()); 340 feedback.reset(new rtcp::TransportFeedback());
341 feedback->WithBase(info.sequence_number, info.arrival_time_ms * 1000); 341 feedback->SetBase(info.sequence_number, info.arrival_time_ms * 1000);
342 EXPECT_TRUE(feedback->WithReceivedPacket(info.sequence_number, 342 EXPECT_TRUE(feedback->AddReceivedPacket(info.sequence_number,
343 info.arrival_time_ms * 1000)); 343 info.arrival_time_ms * 1000));
344 raw_packet = feedback->Build(); 344 raw_packet = feedback->Build();
345 feedback = 345 feedback =
346 rtcp::TransportFeedback::ParseFrom(raw_packet.data(), raw_packet.size()); 346 rtcp::TransportFeedback::ParseFrom(raw_packet.data(), raw_packet.size());
347 347
348 EXPECT_TRUE(feedback.get() != nullptr); 348 EXPECT_TRUE(feedback.get() != nullptr);
349 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_)) 349 EXPECT_CALL(*bitrate_estimator_, IncomingPacketFeedbackVector(_))
350 .Times(1) 350 .Times(1)
351 .WillOnce(Invoke( 351 .WillOnce(Invoke(
352 [&received_feedback](const std::vector<PacketInfo>& feedback_vector) { 352 [&received_feedback](const std::vector<PacketInfo>& feedback_vector) {
353 EXPECT_EQ(1u, feedback_vector.size()); 353 EXPECT_EQ(1u, feedback_vector.size());
354 received_feedback.push_back(feedback_vector[0]); 354 received_feedback.push_back(feedback_vector[0]);
355 })); 355 }));
356 adapter_->OnTransportFeedback(*feedback.get()); 356 adapter_->OnTransportFeedback(*feedback.get());
357 357
358 expected_packets.push_back(info); 358 expected_packets.push_back(info);
359 359
360 ComparePacketVectors(expected_packets, received_feedback); 360 ComparePacketVectors(expected_packets, received_feedback);
361 } 361 }
362 362
363 } // namespace test 363 } // namespace test
364 } // namespace webrtc 364 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698