Protect against assigning current_offset_ negative value.
Bug: webrtc:11176 Change-Id: Ic3937da6f1ee9cd118372693cb71d70beb43159c Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161329 Commit-Queue: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30096}
This commit is contained in:
parent
cebdbf650d
commit
5331079132
@ -220,8 +220,15 @@ TransportFeedbackAdapter::ProcessTransportFeedbackInner(
|
||||
current_offset_ = feedback_time;
|
||||
} else {
|
||||
// TODO(srte): We shouldn't need to do rounding here.
|
||||
current_offset_ += feedback.GetBaseDelta(last_timestamp_)
|
||||
.RoundDownTo(TimeDelta::Millis<1>());
|
||||
const TimeDelta delta = feedback.GetBaseDelta(last_timestamp_)
|
||||
.RoundDownTo(TimeDelta::Millis<1>());
|
||||
// Protect against assigning current_offset_ negative value.
|
||||
if (delta < Timestamp::Zero() - current_offset_) {
|
||||
RTC_LOG(LS_WARNING) << "Unexpected feedback timestamp received.";
|
||||
current_offset_ = feedback_time;
|
||||
} else {
|
||||
current_offset_ += delta;
|
||||
}
|
||||
}
|
||||
last_timestamp_ = feedback.GetBaseTime();
|
||||
|
||||
|
||||
@ -284,9 +284,9 @@ TEST_F(TransportFeedbackAdapterTest, SendTimeWrapsBothWays) {
|
||||
static_cast<int64_t>((1 << 23) - 1) / 1000;
|
||||
std::vector<PacketResult> packets;
|
||||
packets.push_back(
|
||||
CreatePacket(kHighArrivalTimeMs - 64, 200, 0, 1500, PacedPacketInfo()));
|
||||
CreatePacket(kHighArrivalTimeMs + 64, 210, 0, 1500, PacedPacketInfo()));
|
||||
packets.push_back(
|
||||
CreatePacket(kHighArrivalTimeMs + 64, 210, 1, 1500, PacedPacketInfo()));
|
||||
CreatePacket(kHighArrivalTimeMs - 64, 210, 1, 1500, PacedPacketInfo()));
|
||||
packets.push_back(
|
||||
CreatePacket(kHighArrivalTimeMs, 220, 2, 1500, PacedPacketInfo()));
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user