| Index: webrtc/modules/pacing/paced_sender.cc
|
| diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc
|
| index d0a8864f14bcafeb64f2e205efdf76a316975025..a4705d26a405f37ee6966522d26e183159cd42a9 100644
|
| --- a/webrtc/modules/pacing/paced_sender.cc
|
| +++ b/webrtc/modules/pacing/paced_sender.cc
|
| @@ -16,6 +16,7 @@
|
| #include <set>
|
| #include <vector>
|
|
|
| +#include "webrtc/logging/rtc_event_log/rtc_event_log.h"
|
| #include "webrtc/modules/include/module_common_types.h"
|
| #include "webrtc/modules/pacing/alr_detector.h"
|
| #include "webrtc/modules/pacing/bitrate_prober.h"
|
| @@ -95,12 +96,13 @@ struct Comparator {
|
| // Class encapsulating a priority queue with some extensions.
|
| class PacketQueue {
|
| public:
|
| - explicit PacketQueue(const Clock* clock)
|
| + explicit PacketQueue(const Clock* clock, RtcEventLog* event_log = nullptr)
|
| : bytes_(0),
|
| clock_(clock),
|
| queue_time_sum_(0),
|
| time_last_updated_(clock_->TimeInMilliseconds()),
|
| - paused_(false) {}
|
| + paused_(false),
|
| + event_log_(event_log) {}
|
| virtual ~PacketQueue() {}
|
|
|
| void Push(const Packet& packet) {
|
| @@ -139,6 +141,8 @@ class PacketQueue {
|
| RTC_DCHECK_EQ(packet_list_.size(), prio_queue_.size());
|
| if (packet_list_.empty())
|
| RTC_DCHECK_EQ(0, queue_time_sum_);
|
| + if (event_log_ && !packet.retransmission)
|
| + event_log_->LogPacketQueueTime(packet.ssrc, packet_queue_time_ms);
|
| }
|
|
|
| bool Empty() const { return prio_queue_.empty(); }
|
| @@ -229,6 +233,7 @@ class PacketQueue {
|
| int64_t queue_time_sum_;
|
| int64_t time_last_updated_;
|
| bool paused_;
|
| + RtcEventLog* event_log_;
|
| };
|
|
|
| } // namespace paced_sender
|
| @@ -241,7 +246,7 @@ PacedSender::PacedSender(const Clock* clock,
|
| RtcEventLog* event_log)
|
| : clock_(clock),
|
| packet_sender_(packet_sender),
|
| - alr_detector_(new AlrDetector()),
|
| + alr_detector_(new AlrDetector(event_log)),
|
| paused_(false),
|
| media_budget_(new IntervalBudget(0)),
|
| padding_budget_(new IntervalBudget(0)),
|
| @@ -253,7 +258,7 @@ PacedSender::PacedSender(const Clock* clock,
|
| pacing_bitrate_kbps_(0),
|
| time_last_update_us_(clock->TimeInMicroseconds()),
|
| first_sent_packet_ms_(-1),
|
| - packets_(new paced_sender::PacketQueue(clock)),
|
| + packets_(new paced_sender::PacketQueue(clock, event_log)),
|
| packet_counter_(0),
|
| pacing_factor_(kDefaultPaceMultiplier),
|
| queue_time_limit(kMaxQueueLengthMs) {
|
| @@ -321,7 +326,7 @@ void PacedSender::SetSendBitrateLimits(int min_send_bitrate_bps,
|
| pacing_bitrate_kbps_ =
|
| std::max(min_send_bitrate_kbps_, estimated_bitrate_bps_ / 1000) *
|
| pacing_factor_;
|
| - max_padding_bitrate_kbps_ = padding_bitrate / 1000;
|
| + max_padding_bitrate_kbps_ = 0; // padding_bitrate / 1000;
|
| padding_budget_->set_target_rate_kbps(
|
| std::min(estimated_bitrate_bps_ / 1000, max_padding_bitrate_kbps_));
|
| }
|
| @@ -437,7 +442,8 @@ void PacedSender::Process() {
|
| target_bitrate_kbps = min_bitrate_needed_kbps;
|
| }
|
|
|
| - media_budget_->set_target_rate_kbps(target_bitrate_kbps);
|
| + media_budget_->set_target_rate_kbps(pacing_bitrate_kbps_);
|
| + // media_budget_->set_target_rate_kbps(target_bitrate_kbps);
|
| UpdateBudgetWithElapsedTime(elapsed_time_ms);
|
| }
|
|
|
|
|