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

Unified Diff: webrtc/modules/pacing/paced_sender.cc

Issue 2965233002: Let alr dectector use a budged to detect underuse. (Closed)
Patch Set: Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/pacing/paced_sender.cc
diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc
index 913dbfc2741637746922bef9c22409e49a82d831..f1eaced812b4d5103bee5a29a3fa4d533c49c287 100644
--- a/webrtc/modules/pacing/paced_sender.cc
+++ b/webrtc/modules/pacing/paced_sender.cc
@@ -21,6 +21,7 @@
#include "webrtc/modules/include/module_common_types.h"
#include "webrtc/modules/pacing/alr_detector.h"
#include "webrtc/modules/pacing/bitrate_prober.h"
+#include "webrtc/modules/pacing/interval_budget.h"
#include "webrtc/modules/utility/include/process_thread.h"
#include "webrtc/system_wrappers/include/clock.h"
#include "webrtc/system_wrappers/include/field_trial.h"
@@ -35,7 +36,7 @@ const int64_t kMaxIntervalTimeMs = 30;
} // namespace
-// TODO(sprang): Move at least PacketQueue and MediaBudget out to separate
+// TODO(sprang): Move at least PacketQueue out to separate
// files, so that we can more easily test them.
namespace webrtc {
@@ -201,46 +202,6 @@ class PacketQueue {
int64_t time_last_updated_;
};
-class IntervalBudget {
- public:
- explicit IntervalBudget(int initial_target_rate_kbps)
- : target_rate_kbps_(initial_target_rate_kbps),
- bytes_remaining_(0) {}
-
- void set_target_rate_kbps(int target_rate_kbps) {
- target_rate_kbps_ = target_rate_kbps;
- bytes_remaining_ =
- std::max(-kWindowMs * target_rate_kbps_ / 8, bytes_remaining_);
- }
-
- void IncreaseBudget(int64_t delta_time_ms) {
- int64_t bytes = target_rate_kbps_ * delta_time_ms / 8;
- if (bytes_remaining_ < 0) {
- // We overused last interval, compensate this interval.
- bytes_remaining_ = bytes_remaining_ + bytes;
- } else {
- // If we underused last interval we can't use it this interval.
- bytes_remaining_ = bytes;
- }
- }
-
- void UseBudget(size_t bytes) {
- bytes_remaining_ = std::max(bytes_remaining_ - static_cast<int>(bytes),
- -kWindowMs * target_rate_kbps_ / 8);
- }
-
- size_t bytes_remaining() const {
- return static_cast<size_t>(std::max(0, bytes_remaining_));
- }
-
- int target_rate_kbps() const { return target_rate_kbps_; }
-
- private:
- static const int kWindowMs = 500;
-
- int target_rate_kbps_;
- int bytes_remaining_;
-};
} // namespace paced_sender
const int64_t PacedSender::kMaxQueueLengthMs = 2000;
@@ -253,8 +214,8 @@ PacedSender::PacedSender(const Clock* clock,
packet_sender_(packet_sender),
alr_detector_(new AlrDetector()),
paused_(false),
- media_budget_(new paced_sender::IntervalBudget(0)),
- padding_budget_(new paced_sender::IntervalBudget(0)),
+ media_budget_(new IntervalBudget(0)),
+ padding_budget_(new IntervalBudget(0)),
prober_(new BitrateProber(event_log)),
probing_send_failure_(false),
estimated_bitrate_bps_(0),
@@ -480,7 +441,7 @@ void PacedSender::Process() {
if (!probing_send_failure_)
prober_->ProbeSent(clock_->TimeInMilliseconds(), bytes_sent);
}
- alr_detector_->OnBytesSent(bytes_sent, now_us / 1000);
+ alr_detector_->OnBytesSent(bytes_sent, elapsed_time_ms);
}
void PacedSender::ProcessThreadAttached(ProcessThread* process_thread) {

Powered by Google App Engine
This is Rietveld 408576698