diff options
Diffstat (limited to 'modules/rtp_rtcp/source/absolute_capture_time_sender_unittest.cc')
-rw-r--r-- | modules/rtp_rtcp/source/absolute_capture_time_sender_unittest.cc | 333 |
1 files changed, 179 insertions, 154 deletions
diff --git a/modules/rtp_rtcp/source/absolute_capture_time_sender_unittest.cc b/modules/rtp_rtcp/source/absolute_capture_time_sender_unittest.cc index db3fc75100..d9146e4611 100644 --- a/modules/rtp_rtcp/source/absolute_capture_time_sender_unittest.cc +++ b/modules/rtp_rtcp/source/absolute_capture_time_sender_unittest.cc @@ -19,7 +19,7 @@ namespace webrtc { TEST(AbsoluteCaptureTimeSenderTest, GetSourceWithoutCsrcs) { constexpr uint32_t kSsrc = 12; - EXPECT_EQ(AbsoluteCaptureTimeSender::GetSource(kSsrc, nullptr), kSsrc); + EXPECT_EQ(AbsoluteCaptureTimeSender::GetSource(kSsrc, {}), kSsrc); } TEST(AbsoluteCaptureTimeSenderTest, GetSourceWithCsrcs) { @@ -31,343 +31,368 @@ TEST(AbsoluteCaptureTimeSenderTest, GetSourceWithCsrcs) { TEST(AbsoluteCaptureTimeSenderTest, InterpolateLaterPacketSentLater) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency = 64000; + constexpr int kRtpClockFrequency = 64'000; constexpr uint32_t kRtpTimestamp0 = 1020300000; constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 + 1280; constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 + 2560; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 20), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 40), Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 + 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 + 40), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), absl::nullopt); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), absl::nullopt); } TEST(AbsoluteCaptureTimeSenderTest, InterpolateEarlierPacketSentLater) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency = 64000; + constexpr int kRtpClockFrequency = 64'000; constexpr uint32_t kRtpTimestamp0 = 1020300000; constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 - 1280; constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 - 2560; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 - 20), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 - 40), Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 - 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 - 40), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), absl::nullopt); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), absl::nullopt); } TEST(AbsoluteCaptureTimeSenderTest, InterpolateLaterPacketSentLaterWithRtpTimestampWrapAround) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency = 64000; - constexpr uint32_t kRtpTimestamp0 = ~uint32_t{0} - 79; + constexpr int kRtpClockFrequency = 64'000; + constexpr uint32_t kRtpTimestamp0 = uint32_t{0} - 80; constexpr uint32_t kRtpTimestamp1 = 1280 - 80; constexpr uint32_t kRtpTimestamp2 = 2560 - 80; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 20), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 40), Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 + 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 + 40), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), absl::nullopt); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), absl::nullopt); } TEST(AbsoluteCaptureTimeSenderTest, InterpolateEarlierPacketSentLaterWithRtpTimestampWrapAround) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency = 64000; + constexpr int kRtpClockFrequency = 64'000; constexpr uint32_t kRtpTimestamp0 = 799; constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 - 1280; constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 - 2560; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 - 20), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 - 40), Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 - 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 - 40), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), absl::nullopt); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), absl::nullopt); } TEST(AbsoluteCaptureTimeSenderTest, SkipInterpolateIfTooLate) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency = 64000; + constexpr int kRtpClockFrequency = 64'000; constexpr uint32_t kRtpTimestamp0 = 1020300000; constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 + 1280; constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 + 2560; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 20), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 40), Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 + 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 + 40), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); clock.AdvanceTime(AbsoluteCaptureTimeSender::kInterpolationMaxInterval); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), absl::nullopt); - clock.AdvanceTimeMicroseconds(1); + clock.AdvanceTime(TimeDelta::Millis(1)); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), kExtension2); } TEST(AbsoluteCaptureTimeSenderTest, SkipInterpolateIfSourceChanged) { constexpr uint32_t kSource0 = 1337; constexpr uint32_t kSource1 = 1338; - constexpr uint32_t kSource2 = 1338; - constexpr uint32_t kRtpClockFrequency = 64000; + constexpr int kRtpClockFrequency = 64'000; constexpr uint32_t kRtpTimestamp0 = 1020300000; constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 + 1280; constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 + 2560; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 20), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 40), Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 + 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 + 40), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource0, kRtpTimestamp0, kRtpClockFrequency, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); EXPECT_EQ(sender.OnSendPacket(kSource1, kRtpTimestamp1, kRtpClockFrequency, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), kExtension1); - EXPECT_EQ(sender.OnSendPacket(kSource2, kRtpTimestamp2, kRtpClockFrequency, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + EXPECT_EQ(sender.OnSendPacket(kSource1, kRtpTimestamp2, kRtpClockFrequency, + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), + absl::nullopt); +} + +TEST(AbsoluteCaptureTimeSenderTest, SkipInterpolateWhenForced) { + constexpr uint32_t kSource = 1337; + constexpr int kRtpClockFrequency = 64'000; + constexpr uint32_t kRtpTimestamp0 = 1020300000; + constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 + 1280; + constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 + 2560; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 + 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 + 40), + Int64MsToQ32x32(-350)}; + + SimulatedClock clock(0); + AbsoluteCaptureTimeSender sender(&clock); + + EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency, + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), + kExtension0); + + EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency, + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset, + /*force=*/true), + kExtension1); + + EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency, + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset, + /*force=*/false), absl::nullopt); } TEST(AbsoluteCaptureTimeSenderTest, SkipInterpolateIfRtpClockFrequencyChanged) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency0 = 64000; - constexpr uint32_t kRtpClockFrequency1 = 32000; - constexpr uint32_t kRtpClockFrequency2 = 32000; + constexpr int kRtpClockFrequency0 = 64'000; + constexpr int kRtpClockFrequency1 = 32'000; constexpr uint32_t kRtpTimestamp0 = 1020300000; constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 + 640; constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 + 1280; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 20), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 40), Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 + 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 + 40), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency0, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency1, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), kExtension1); - EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency2, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency1, + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), absl::nullopt); } TEST(AbsoluteCaptureTimeSenderTest, SkipInterpolateIfRtpClockFrequencyIsInvalid) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency0 = 0; - constexpr uint32_t kRtpClockFrequency1 = 0; - constexpr uint32_t kRtpClockFrequency2 = 0; - constexpr uint32_t kRtpTimestamp0 = 1020300000; - constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0; - constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 20), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 40), Int64MsToQ32x32(-350)}; + constexpr int kRtpClockFrequency = 0; + constexpr uint32_t kRtpTimestamp = 1020300000; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 + 20), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 + 40), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); - EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency0, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp, kRtpClockFrequency, + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); - EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency1, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp, kRtpClockFrequency, + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), kExtension1); - EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency2, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp, kRtpClockFrequency, + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), kExtension2); } TEST(AbsoluteCaptureTimeSenderTest, SkipInterpolateIfEstimatedCaptureClockOffsetChanged) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency = 64000; + constexpr int kRtpClockFrequency = 64'000; constexpr uint32_t kRtpTimestamp0 = 1020300000; constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 + 1280; constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 + 2560; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 20), Int64MsToQ32x32(370)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000 + 40), absl::nullopt}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = {Int64MsToUQ32x32(9000 + 20), + Int64MsToQ32x32(370)}; + const AbsoluteCaptureTime kExtension2 = {Int64MsToUQ32x32(9000 + 40), + absl::nullopt}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), kExtension1); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), kExtension2); } TEST(AbsoluteCaptureTimeSenderTest, SkipInterpolateIfTooMuchInterpolationError) { constexpr uint32_t kSource = 1337; - constexpr uint32_t kRtpClockFrequency = 64000; + constexpr int kRtpClockFrequency = 64'000; constexpr uint32_t kRtpTimestamp0 = 1020300000; constexpr uint32_t kRtpTimestamp1 = kRtpTimestamp0 + 1280; constexpr uint32_t kRtpTimestamp2 = kRtpTimestamp0 + 2560; - static const absl::optional<AbsoluteCaptureTime> kExtension0 = - AbsoluteCaptureTime{Int64MsToUQ32x32(9000), Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension1 = - AbsoluteCaptureTime{ - Int64MsToUQ32x32( - 9000 + 20 + - AbsoluteCaptureTimeSender::kInterpolationMaxError.ms()), - Int64MsToQ32x32(-350)}; - static const absl::optional<AbsoluteCaptureTime> kExtension2 = - AbsoluteCaptureTime{ - Int64MsToUQ32x32( - 9000 + 40 + - AbsoluteCaptureTimeSender::kInterpolationMaxError.ms() + 1), - Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension0 = {Int64MsToUQ32x32(9000), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension1 = { + Int64MsToUQ32x32(9000 + 20 + + AbsoluteCaptureTimeSender::kInterpolationMaxError.ms()), + Int64MsToQ32x32(-350)}; + const AbsoluteCaptureTime kExtension2 = { + Int64MsToUQ32x32(9000 + 40 + + AbsoluteCaptureTimeSender::kInterpolationMaxError.ms() + + 1), + Int64MsToQ32x32(-350)}; SimulatedClock clock(0); AbsoluteCaptureTimeSender sender(&clock); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp0, kRtpClockFrequency, - kExtension0->absolute_capture_timestamp, - kExtension0->estimated_capture_clock_offset), + NtpTime(kExtension0.absolute_capture_timestamp), + kExtension0.estimated_capture_clock_offset), kExtension0); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp1, kRtpClockFrequency, - kExtension1->absolute_capture_timestamp, - kExtension1->estimated_capture_clock_offset), + NtpTime(kExtension1.absolute_capture_timestamp), + kExtension1.estimated_capture_clock_offset), absl::nullopt); EXPECT_EQ(sender.OnSendPacket(kSource, kRtpTimestamp2, kRtpClockFrequency, - kExtension2->absolute_capture_timestamp, - kExtension2->estimated_capture_clock_offset), + NtpTime(kExtension2.absolute_capture_timestamp), + kExtension2.estimated_capture_clock_offset), kExtension2); } |