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

Side by Side Diff: webrtc/modules/pacing/paced_sender.cc

Issue 2825333002: Replace first_packet_sent_ms_ in Call. (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « webrtc/modules/pacing/paced_sender.h ('k') | webrtc/modules/pacing/paced_sender_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 paused_(false), 255 paused_(false),
256 media_budget_(new paced_sender::IntervalBudget(0)), 256 media_budget_(new paced_sender::IntervalBudget(0)),
257 padding_budget_(new paced_sender::IntervalBudget(0)), 257 padding_budget_(new paced_sender::IntervalBudget(0)),
258 prober_(new BitrateProber(event_log)), 258 prober_(new BitrateProber(event_log)),
259 probing_send_failure_(false), 259 probing_send_failure_(false),
260 estimated_bitrate_bps_(0), 260 estimated_bitrate_bps_(0),
261 min_send_bitrate_kbps_(0u), 261 min_send_bitrate_kbps_(0u),
262 max_padding_bitrate_kbps_(0u), 262 max_padding_bitrate_kbps_(0u),
263 pacing_bitrate_kbps_(0), 263 pacing_bitrate_kbps_(0),
264 time_last_update_us_(clock->TimeInMicroseconds()), 264 time_last_update_us_(clock->TimeInMicroseconds()),
265 first_sent_packet_ms_(-1),
265 packets_(new paced_sender::PacketQueue(clock)), 266 packets_(new paced_sender::PacketQueue(clock)),
266 packet_counter_(0) { 267 packet_counter_(0) {
267 UpdateBudgetWithElapsedTime(kMinPacketLimitMs); 268 UpdateBudgetWithElapsedTime(kMinPacketLimitMs);
268 } 269 }
269 270
270 PacedSender::~PacedSender() {} 271 PacedSender::~PacedSender() {}
271 272
272 void PacedSender::CreateProbeCluster(int bitrate_bps) { 273 void PacedSender::CreateProbeCluster(int bitrate_bps) {
273 rtc::CritScope cs(&critsect_); 274 rtc::CritScope cs(&critsect_);
274 prober_->CreateProbeCluster(bitrate_bps, clock_->TimeInMilliseconds()); 275 prober_->CreateProbeCluster(bitrate_bps, clock_->TimeInMilliseconds());
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 const { 362 const {
362 rtc::CritScope cs(&critsect_); 363 rtc::CritScope cs(&critsect_);
363 return alr_detector_->GetApplicationLimitedRegionStartTime(); 364 return alr_detector_->GetApplicationLimitedRegionStartTime();
364 } 365 }
365 366
366 size_t PacedSender::QueueSizePackets() const { 367 size_t PacedSender::QueueSizePackets() const {
367 rtc::CritScope cs(&critsect_); 368 rtc::CritScope cs(&critsect_);
368 return packets_->SizeInPackets(); 369 return packets_->SizeInPackets();
369 } 370 }
370 371
372 int64_t PacedSender::FirstSentPacketTimeMs() const {
373 rtc::CritScope cs(&critsect_);
374 return first_sent_packet_ms_;
375 }
376
371 int64_t PacedSender::QueueInMs() const { 377 int64_t PacedSender::QueueInMs() const {
372 rtc::CritScope cs(&critsect_); 378 rtc::CritScope cs(&critsect_);
373 379
374 int64_t oldest_packet = packets_->OldestEnqueueTimeMs(); 380 int64_t oldest_packet = packets_->OldestEnqueueTimeMs();
375 if (oldest_packet == 0) 381 if (oldest_packet == 0)
376 return 0; 382 return 0;
377 383
378 return clock_->TimeInMilliseconds() - oldest_packet; 384 return clock_->TimeInMilliseconds() - oldest_packet;
379 } 385 }
380 386
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 recommended_probe_size = prober_->RecommendedMinProbeSize(); 441 recommended_probe_size = prober_->RecommendedMinProbeSize();
436 } 442 }
437 while (!packets_->Empty()) { 443 while (!packets_->Empty()) {
438 // Since we need to release the lock in order to send, we first pop the 444 // Since we need to release the lock in order to send, we first pop the
439 // element from the priority queue but keep it in storage, so that we can 445 // element from the priority queue but keep it in storage, so that we can
440 // reinsert it if send fails. 446 // reinsert it if send fails.
441 const paced_sender::Packet& packet = packets_->BeginPop(); 447 const paced_sender::Packet& packet = packets_->BeginPop();
442 448
443 if (SendPacket(packet, pacing_info)) { 449 if (SendPacket(packet, pacing_info)) {
444 // Send succeeded, remove it from the queue. 450 // Send succeeded, remove it from the queue.
451 if (first_sent_packet_ms_ == -1)
452 first_sent_packet_ms_ = clock_->TimeInMilliseconds();
445 bytes_sent += packet.bytes; 453 bytes_sent += packet.bytes;
446 packets_->FinalizePop(packet); 454 packets_->FinalizePop(packet);
447 if (is_probing && bytes_sent > recommended_probe_size) 455 if (is_probing && bytes_sent > recommended_probe_size)
448 break; 456 break;
449 } else { 457 } else {
450 // Send failed, put it back into the queue. 458 // Send failed, put it back into the queue.
451 packets_->CancelPop(packet); 459 packets_->CancelPop(packet);
452 break; 460 break;
453 } 461 }
454 } 462 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 void PacedSender::UpdateBudgetWithElapsedTime(int64_t delta_time_ms) { 529 void PacedSender::UpdateBudgetWithElapsedTime(int64_t delta_time_ms) {
522 media_budget_->IncreaseBudget(delta_time_ms); 530 media_budget_->IncreaseBudget(delta_time_ms);
523 padding_budget_->IncreaseBudget(delta_time_ms); 531 padding_budget_->IncreaseBudget(delta_time_ms);
524 } 532 }
525 533
526 void PacedSender::UpdateBudgetWithBytesSent(size_t bytes_sent) { 534 void PacedSender::UpdateBudgetWithBytesSent(size_t bytes_sent) {
527 media_budget_->UseBudget(bytes_sent); 535 media_budget_->UseBudget(bytes_sent);
528 padding_budget_->UseBudget(bytes_sent); 536 padding_budget_->UseBudget(bytes_sent);
529 } 537 }
530 } // namespace webrtc 538 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/pacing/paced_sender.h ('k') | webrtc/modules/pacing/paced_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698