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); |
} |