OLD | NEW |
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 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 ComparePacketVectors(expected_packets, | 250 ComparePacketVectors(expected_packets, |
251 adapter_->GetTransportFeedbackVector()); | 251 adapter_->GetTransportFeedbackVector()); |
252 } | 252 } |
253 | 253 |
254 TEST_F(TransportFeedbackAdapterTest, SendTimeWrapsBothWays) { | 254 TEST_F(TransportFeedbackAdapterTest, SendTimeWrapsBothWays) { |
255 int64_t kHighArrivalTimeMs = rtcp::TransportFeedback::kDeltaScaleFactor * | 255 int64_t kHighArrivalTimeMs = rtcp::TransportFeedback::kDeltaScaleFactor * |
256 static_cast<int64_t>(1 << 8) * | 256 static_cast<int64_t>(1 << 8) * |
257 static_cast<int64_t>((1 << 23) - 1) / 1000; | 257 static_cast<int64_t>((1 << 23) - 1) / 1000; |
258 std::vector<PacketInfo> packets; | 258 std::vector<PacketInfo> packets; |
259 packets.push_back(PacketInfo(kHighArrivalTimeMs - 64, 200, 0, 1500, | 259 packets.push_back(PacketInfo(kHighArrivalTimeMs - 64, 200, 0, 1500, |
260 PacketInfo::kNotAProbe)); | 260 PacedPacketInfo::kNotAProbe)); |
261 packets.push_back(PacketInfo(kHighArrivalTimeMs + 64, 210, 1, 1500, | 261 packets.push_back(PacketInfo(kHighArrivalTimeMs + 64, 210, 1, 1500, |
262 PacketInfo::kNotAProbe)); | 262 PacedPacketInfo::kNotAProbe)); |
263 packets.push_back( | 263 packets.push_back(PacketInfo(kHighArrivalTimeMs, 220, 2, 1500, |
264 PacketInfo(kHighArrivalTimeMs, 220, 2, 1500, PacketInfo::kNotAProbe)); | 264 PacedPacketInfo::kNotAProbe)); |
265 | 265 |
266 for (const PacketInfo& packet : packets) | 266 for (const PacketInfo& packet : packets) |
267 OnSentPacket(packet); | 267 OnSentPacket(packet); |
268 | 268 |
269 for (size_t i = 0; i < packets.size(); ++i) { | 269 for (size_t i = 0; i < packets.size(); ++i) { |
270 std::unique_ptr<rtcp::TransportFeedback> feedback( | 270 std::unique_ptr<rtcp::TransportFeedback> feedback( |
271 new rtcp::TransportFeedback()); | 271 new rtcp::TransportFeedback()); |
272 feedback->SetBase(packets[i].sequence_number, | 272 feedback->SetBase(packets[i].sequence_number, |
273 packets[i].arrival_time_ms * 1000); | 273 packets[i].arrival_time_ms * 1000); |
274 | 274 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 std::vector<PacketInfo> sent_packets; | 321 std::vector<PacketInfo> sent_packets; |
322 const int64_t kSmallDeltaUs = | 322 const int64_t kSmallDeltaUs = |
323 rtcp::TransportFeedback::kDeltaScaleFactor * ((1 << 8) - 1); | 323 rtcp::TransportFeedback::kDeltaScaleFactor * ((1 << 8) - 1); |
324 const int64_t kLargePositiveDeltaUs = | 324 const int64_t kLargePositiveDeltaUs = |
325 rtcp::TransportFeedback::kDeltaScaleFactor * | 325 rtcp::TransportFeedback::kDeltaScaleFactor * |
326 std::numeric_limits<int16_t>::max(); | 326 std::numeric_limits<int16_t>::max(); |
327 const int64_t kLargeNegativeDeltaUs = | 327 const int64_t kLargeNegativeDeltaUs = |
328 rtcp::TransportFeedback::kDeltaScaleFactor * | 328 rtcp::TransportFeedback::kDeltaScaleFactor * |
329 std::numeric_limits<int16_t>::min(); | 329 std::numeric_limits<int16_t>::min(); |
330 | 330 |
331 PacketInfo info(100, 200, 0, 1500, true, PacketInfo::kNotAProbe); | 331 PacketInfo info(100, 200, 0, 1500, true, PacedPacketInfo::kNotAProbe); |
332 sent_packets.push_back(info); | 332 sent_packets.push_back(info); |
333 | 333 |
334 info.send_time_ms += kSmallDeltaUs / 1000; | 334 info.send_time_ms += kSmallDeltaUs / 1000; |
335 info.arrival_time_ms += kSmallDeltaUs / 1000; | 335 info.arrival_time_ms += kSmallDeltaUs / 1000; |
336 ++info.sequence_number; | 336 ++info.sequence_number; |
337 sent_packets.push_back(info); | 337 sent_packets.push_back(info); |
338 | 338 |
339 info.send_time_ms += kLargePositiveDeltaUs / 1000; | 339 info.send_time_ms += kLargePositiveDeltaUs / 1000; |
340 info.arrival_time_ms += kLargePositiveDeltaUs / 1000; | 340 info.arrival_time_ms += kLargePositiveDeltaUs / 1000; |
341 ++info.sequence_number; | 341 ++info.sequence_number; |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 | 410 |
411 TEST_F(TransportFeedbackAdapterTest, UpdatesDelayBasedEstimate) { | 411 TEST_F(TransportFeedbackAdapterTest, UpdatesDelayBasedEstimate) { |
412 uint16_t seq_num = 0; | 412 uint16_t seq_num = 0; |
413 size_t kPayloadSize = 1000; | 413 size_t kPayloadSize = 1000; |
414 // The test must run and insert packets/feedback long enough that the | 414 // The test must run and insert packets/feedback long enough that the |
415 // BWE computes a valid estimate. | 415 // BWE computes a valid estimate. |
416 const int64_t kRunTimeMs = 6000; | 416 const int64_t kRunTimeMs = 6000; |
417 int64_t start_time_ms = clock_.TimeInMilliseconds(); | 417 int64_t start_time_ms = clock_.TimeInMilliseconds(); |
418 while (clock_.TimeInMilliseconds() - start_time_ms < kRunTimeMs) { | 418 while (clock_.TimeInMilliseconds() - start_time_ms < kRunTimeMs) { |
419 PacketInfo packet(clock_.TimeInMilliseconds(), clock_.TimeInMilliseconds(), | 419 PacketInfo packet(clock_.TimeInMilliseconds(), clock_.TimeInMilliseconds(), |
420 seq_num, kPayloadSize, PacketInfo::kNotAProbe); | 420 seq_num, kPayloadSize, PacedPacketInfo::kNotAProbe); |
421 OnSentPacket(packet); | 421 OnSentPacket(packet); |
422 // Create expected feedback and send into adapter. | 422 // Create expected feedback and send into adapter. |
423 std::unique_ptr<rtcp::TransportFeedback> feedback( | 423 std::unique_ptr<rtcp::TransportFeedback> feedback( |
424 new rtcp::TransportFeedback()); | 424 new rtcp::TransportFeedback()); |
425 feedback->SetBase(packet.sequence_number, packet.arrival_time_ms * 1000); | 425 feedback->SetBase(packet.sequence_number, packet.arrival_time_ms * 1000); |
426 EXPECT_TRUE(feedback->AddReceivedPacket(packet.sequence_number, | 426 EXPECT_TRUE(feedback->AddReceivedPacket(packet.sequence_number, |
427 packet.arrival_time_ms * 1000)); | 427 packet.arrival_time_ms * 1000)); |
428 rtc::Buffer raw_packet = feedback->Build(); | 428 rtc::Buffer raw_packet = feedback->Build(); |
429 feedback = rtcp::TransportFeedback::ParseFrom(raw_packet.data(), | 429 feedback = rtcp::TransportFeedback::ParseFrom(raw_packet.data(), |
430 raw_packet.size()); | 430 raw_packet.size()); |
431 EXPECT_TRUE(feedback.get() != nullptr); | 431 EXPECT_TRUE(feedback.get() != nullptr); |
432 adapter_->OnTransportFeedback(*feedback.get()); | 432 adapter_->OnTransportFeedback(*feedback.get()); |
433 clock_.AdvanceTimeMilliseconds(50); | 433 clock_.AdvanceTimeMilliseconds(50); |
434 ++seq_num; | 434 ++seq_num; |
435 } | 435 } |
436 EXPECT_GT(target_bitrate_bps_, 0u); | 436 EXPECT_GT(target_bitrate_bps_, 0u); |
437 } | 437 } |
438 | 438 |
439 } // namespace test | 439 } // namespace test |
440 } // namespace webrtc | 440 } // namespace webrtc |
OLD | NEW |