Refactors send rate statistics in RtpSenderEgress

When FEC generation is moved to egress, we'll need to poll bitrates from
there instead of the RtpVideoSender. In preparation, refactoring some
getter methods.

For context, see https://webrtc-review.googlesource.com/c/src/+/173708

Bug: webrtc:11340
Change-Id: Ibc27362361ee9640d9fce676fc8e1093a579344f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174202
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31214}
This commit is contained in:
Erik Språng
2020-05-11 18:22:02 +02:00
committed by Commit Bot
parent 8e321cd690
commit bf46cfef22
8 changed files with 94 additions and 46 deletions

View File

@ -290,7 +290,7 @@ RTCPSender::FeedbackState ModuleRtpRtcpImpl::GetFeedbackState() {
state.media_bytes_sent = rtp_stats.transmitted.payload_bytes +
rtx_stats.transmitted.payload_bytes;
state.send_bitrate =
rtp_sender_->packet_sender.SendBitrate().bps<uint32_t>();
rtp_sender_->packet_sender.GetSendRates().Sum().bps<uint32_t>();
}
state.module = this;
@ -702,12 +702,17 @@ void ModuleRtpRtcpImpl::BitrateSent(uint32_t* total_rate,
uint32_t* video_rate,
uint32_t* fec_rate,
uint32_t* nack_rate) const {
*total_rate = rtp_sender_->packet_sender.SendBitrate().bps<uint32_t>();
RtpSendRates send_rates = rtp_sender_->packet_sender.GetSendRates();
*total_rate = send_rates.Sum().bps<uint32_t>();
if (video_rate)
*video_rate = 0;
if (fec_rate)
*fec_rate = 0;
*nack_rate = rtp_sender_->packet_sender.NackOverheadRate().bps<uint32_t>();
*nack_rate = send_rates[RtpPacketMediaType::kRetransmission].bps<uint32_t>();
}
RtpSendRates ModuleRtpRtcpImpl::GetSendRates() const {
return rtp_sender_->packet_sender.GetSendRates();
}
void ModuleRtpRtcpImpl::OnRequestSendReport() {
@ -803,12 +808,13 @@ const RTPSender* ModuleRtpRtcpImpl::RtpSender() const {
DataRate ModuleRtpRtcpImpl::SendRate() const {
RTC_DCHECK(rtp_sender_);
return rtp_sender_->packet_sender.SendBitrate();
return rtp_sender_->packet_sender.GetSendRates().Sum();
}
DataRate ModuleRtpRtcpImpl::NackOverheadRate() const {
RTC_DCHECK(rtp_sender_);
return rtp_sender_->packet_sender.NackOverheadRate();
return rtp_sender_->packet_sender
.GetSendRates()[RtpPacketMediaType::kRetransmission];
}
} // namespace webrtc