From fa504e744f9be405e7fb00ff7a2f1d72e5a3263e Mon Sep 17 00:00:00 2001 From: Dan Minor Date: Wed, 27 May 2020 16:25:21 -0400 Subject: [PATCH] Check that capture time is valid before adjusting it. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A packet's capture time may be -1 to indicate an unset value. We need to check that this is the case before adjusting it when generating padding. Otherwise, invalid values will result. Bug: webrtc:11615 Change-Id: Ibbeb959f1d4d37dd4d65702494b97246642b57d6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176281 Commit-Queue: Dan Minor Reviewed-by: Erik Språng Cr-Commit-Position: refs/heads/master@{#31766} --- modules/rtp_rtcp/source/rtp_sender.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/rtp_rtcp/source/rtp_sender.cc b/modules/rtp_rtcp/source/rtp_sender.cc index 69a8203e53..1193068057 100644 --- a/modules/rtp_rtcp/source/rtp_sender.cc +++ b/modules/rtp_rtcp/source/rtp_sender.cc @@ -484,8 +484,11 @@ std::vector> RTPSender::GeneratePadding( padding_packet->SetTimestamp(padding_packet->Timestamp() + (now_ms - last_timestamp_time_ms_) * kTimestampTicksPerMs); - padding_packet->set_capture_time_ms(padding_packet->capture_time_ms() + - (now_ms - last_timestamp_time_ms_)); + if (padding_packet->capture_time_ms() > 0) { + padding_packet->set_capture_time_ms( + padding_packet->capture_time_ms() + + (now_ms - last_timestamp_time_ms_)); + } } RTC_DCHECK(rtx_ssrc_); padding_packet->SetSsrc(*rtx_ssrc_);