RtpTransportControllerSend: Restrict pacer outstanding data update
`TransportFeedbackAdapter` return NULL indicates outstanding data is unchanged. This CL excludes outgoing retransmitted packets, rtcp packets and invalid transport feedbacks to wakeup pacer. Bug: webrtc:13417 Change-Id: Ie94956232c13cd548bb7038b5ce76617756fb207 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/238741 Reviewed-by: Henrik Boström <hbos@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35485}
This commit is contained in:
parent
e9ab88570b
commit
bf28797b09
@ -420,10 +420,16 @@ void RtpTransportControllerSend::OnSentPacket(
|
||||
RTC_DCHECK_RUN_ON(&task_queue_);
|
||||
absl::optional<SentPacket> packet_msg =
|
||||
transport_feedback_adapter_.ProcessSentPacket(sent_packet);
|
||||
if (packet_msg) {
|
||||
// Only update outstanding data in pacer if:
|
||||
// 1. Packet feadback is used.
|
||||
// 2. The packet has not yet received an acknowledgement.
|
||||
// 3. It is not a retransmission of an earlier packet.
|
||||
pacer()->UpdateOutstandingData(
|
||||
transport_feedback_adapter_.GetOutstandingData());
|
||||
if (packet_msg && controller_)
|
||||
if (controller_)
|
||||
PostUpdates(controller_->OnSentPacket(*packet_msg));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -574,11 +580,15 @@ void RtpTransportControllerSend::OnTransportFeedback(
|
||||
absl::optional<TransportPacketsFeedback> feedback_msg =
|
||||
transport_feedback_adapter_.ProcessTransportFeedback(feedback,
|
||||
feedback_time);
|
||||
if (feedback_msg && controller_) {
|
||||
if (feedback_msg) {
|
||||
if (controller_)
|
||||
PostUpdates(controller_->OnTransportPacketsFeedback(*feedback_msg));
|
||||
}
|
||||
|
||||
// Only update outstanding data in pacer if any packet is first time
|
||||
// acked.
|
||||
pacer()->UpdateOutstandingData(
|
||||
transport_feedback_adapter_.GetOutstandingData());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user