diff --git a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc index c309e7ce96..4b1ab9eb29 100644 --- a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc +++ b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc @@ -549,7 +549,7 @@ bool TransportFeedback::IsConsistent() const { << num_seq_no_; return false; } - int64_t timestamp_us = base_time_ticks_ * kBaseScaleFactor; + int64_t timestamp_us = GetBaseTimeUs(); auto packet_it = received_packets_.begin(); uint16_t seq_no = base_seq_no_; for (DeltaSize delta_size : delta_sizes) { diff --git a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback_unittest.cc index abaa0786a3..6003df45d0 100644 --- a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback_unittest.cc +++ b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback_unittest.cc @@ -232,6 +232,15 @@ TEST(RtcpPacketTest, TransportFeedbackTwoBitVectorFull) { test.VerifyPacket(); } +TEST(RtcpPacketTest, TransportFeedbackWithLargeBaseTimeIsConsistent) { + TransportFeedback tb; + constexpr int64_t kTimestampUs = + int64_t{0x7fff'ffff} * TransportFeedback::kDeltaScaleFactor; + tb.SetBase(/*base_sequence=*/0, /*ref_timestamp_us=*/kTimestampUs); + tb.AddReceivedPacket(/*base_sequence=*/0, /*ref_timestamp_us=*/kTimestampUs); + EXPECT_TRUE(tb.IsConsistent()); +} + TEST(RtcpPacketTest, TransportFeedbackLargeAndNegativeDeltas) { const uint16_t kReceived[] = {1, 2, 6, 7, 8}; const int64_t kReceiveTimes[] = {