Makes send time information in feedback non-optional.
This makes it safer to reason about the common case where send time information is available. We don't have to either assume that it's available, or check it everywhere the PacketResult struct is used. To achieve this, a new field is added to TransportPacketsFeedback and a new interface is introduced to clearly separate which field is used. A possible followup would be to introduce a separate struct. That would complicate the signature of ProcessTransportFeedback. Bug: webrtc:9934 Change-Id: I2b319e4df2b557fbd4de66b812744bca7d91ca15 Reviewed-on: https://webrtc-review.googlesource.com/c/107080 Commit-Queue: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Björn Terelius <terelius@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25465}
This commit is contained in:
committed by
Commit Bot
parent
be837ac3bc
commit
af6d741fe1
@ -148,11 +148,8 @@ DelayBasedBwe::Result DelayBasedBwe::IncomingPacketFeedbackVector(
|
||||
}
|
||||
|
||||
if (delayed_feedback) {
|
||||
++consecutive_delayed_feedbacks_;
|
||||
if (consecutive_delayed_feedbacks_ >= kMaxConsecutiveFailedLookups) {
|
||||
consecutive_delayed_feedbacks_ = 0;
|
||||
return OnLongFeedbackDelay(packet_feedback_vector.back().arrival_time_ms);
|
||||
}
|
||||
return OnDelayedFeedback(packet_feedback_vector.back().arrival_time_ms);
|
||||
|
||||
} else {
|
||||
consecutive_delayed_feedbacks_ = 0;
|
||||
return MaybeUpdateEstimate(acked_bitrate_bps, recovered_from_overuse,
|
||||
@ -161,6 +158,16 @@ DelayBasedBwe::Result DelayBasedBwe::IncomingPacketFeedbackVector(
|
||||
return Result();
|
||||
}
|
||||
|
||||
DelayBasedBwe::Result DelayBasedBwe::OnDelayedFeedback(
|
||||
int64_t receive_time_ms) {
|
||||
++consecutive_delayed_feedbacks_;
|
||||
if (consecutive_delayed_feedbacks_ >= kMaxConsecutiveFailedLookups) {
|
||||
consecutive_delayed_feedbacks_ = 0;
|
||||
return OnLongFeedbackDelay(receive_time_ms);
|
||||
}
|
||||
return Result();
|
||||
}
|
||||
|
||||
DelayBasedBwe::Result DelayBasedBwe::OnLongFeedbackDelay(
|
||||
int64_t arrival_time_ms) {
|
||||
// Estimate should always be valid since a start bitrate always is set in the
|
||||
|
||||
Reference in New Issue
Block a user