| Index: webrtc/modules/rtp_rtcp/source/time_util_unittest.cc
 | 
| diff --git a/webrtc/modules/rtp_rtcp/source/time_util_unittest.cc b/webrtc/modules/rtp_rtcp/source/time_util_unittest.cc
 | 
| index 7efb83ccadc50e24cea84b40a87e450b51e3ac37..8333a64e70aa2dcac51d504608b8bc42961d9e80 100644
 | 
| --- a/webrtc/modules/rtp_rtcp/source/time_util_unittest.cc
 | 
| +++ b/webrtc/modules/rtp_rtcp/source/time_util_unittest.cc
 | 
| @@ -21,21 +21,21 @@ TEST(TimeUtilTest, CompactNtp) {
 | 
|    EXPECT_EQ(kNtpMid, CompactNtp(kNtp));
 | 
|  }
 | 
|  
 | 
| -TEST(TimeUtilTest, CompactNtpToMs) {
 | 
| +TEST(TimeUtilTest, CompactNtpRttToMs) {
 | 
|    const NtpTime ntp1(0x12345, 0x23456);
 | 
|    const NtpTime ntp2(0x12654, 0x64335);
 | 
| -  uint32_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
 | 
| +  int64_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
 | 
|    uint32_t ntp_diff = CompactNtp(ntp2) - CompactNtp(ntp1);
 | 
|  
 | 
| -  uint32_t ntp_to_ms_diff = CompactNtpIntervalToMs(ntp_diff);
 | 
| +  int64_t ntp_to_ms_diff = CompactNtpRttToMs(ntp_diff);
 | 
|  
 | 
|    EXPECT_NEAR(ms_diff, ntp_to_ms_diff, 1);
 | 
|  }
 | 
|  
 | 
| -TEST(TimeUtilTest, CompactNtpToMsWithWrap) {
 | 
| +TEST(TimeUtilTest, CompactNtpRttToMsWithWrap) {
 | 
|    const NtpTime ntp1(0x1ffff, 0x23456);
 | 
|    const NtpTime ntp2(0x20000, 0x64335);
 | 
| -  uint32_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
 | 
| +  int64_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
 | 
|  
 | 
|    // While ntp2 > ntp1, there compact ntp presentation happen to be opposite.
 | 
|    // That shouldn't be a problem as long as unsigned arithmetic is used.
 | 
| @@ -43,20 +43,31 @@ TEST(TimeUtilTest, CompactNtpToMsWithWrap) {
 | 
|    ASSERT_LT(CompactNtp(ntp2), CompactNtp(ntp1));
 | 
|  
 | 
|    uint32_t ntp_diff = CompactNtp(ntp2) - CompactNtp(ntp1);
 | 
| -  uint32_t ntp_to_ms_diff = CompactNtpIntervalToMs(ntp_diff);
 | 
| +  int64_t ntp_to_ms_diff = CompactNtpRttToMs(ntp_diff);
 | 
|  
 | 
|    EXPECT_NEAR(ms_diff, ntp_to_ms_diff, 1);
 | 
|  }
 | 
|  
 | 
| -TEST(TimeUtilTest, CompactNtpToMsLarge) {
 | 
| -  const NtpTime ntp1(0x10000, 0x23456);
 | 
| -  const NtpTime ntp2(0x1ffff, 0x64335);
 | 
| -  uint32_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
 | 
| -  // Ntp difference close to maximum of ~18 hours should convert correctly too.
 | 
| -  ASSERT_GT(ms_diff, 18u * 3600 * 1000);
 | 
| +TEST(TimeUtilTest, CompactNtpRttToMsLarge) {
 | 
| +  const NtpTime ntp1(0x10000, 0x00006);
 | 
| +  const NtpTime ntp2(0x17fff, 0xffff5);
 | 
| +  int64_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
 | 
| +  // Ntp difference close to 2^15 seconds should convert correctly too.
 | 
| +  ASSERT_NEAR(ms_diff, ((1 << 15) - 1) * 1000, 1);
 | 
|    uint32_t ntp_diff = CompactNtp(ntp2) - CompactNtp(ntp1);
 | 
| -  uint32_t ntp_to_ms_diff = CompactNtpIntervalToMs(ntp_diff);
 | 
| +  int64_t ntp_to_ms_diff = CompactNtpRttToMs(ntp_diff);
 | 
|  
 | 
|    EXPECT_NEAR(ms_diff, ntp_to_ms_diff, 1);
 | 
|  }
 | 
| +
 | 
| +TEST(TimeUtilTest, CompactNtpRttToMsNegative) {
 | 
| +  const NtpTime ntp1(0x20000, 0x23456);
 | 
| +  const NtpTime ntp2(0x1ffff, 0x64335);
 | 
| +  int64_t ms_diff = ntp2.ToMs() - ntp1.ToMs();
 | 
| +  ASSERT_GT(0, ms_diff);
 | 
| +  // Ntp difference close to 2^16 seconds should be treated as negative.
 | 
| +  uint32_t ntp_diff = CompactNtp(ntp2) - CompactNtp(ntp1);
 | 
| +  int64_t ntp_to_ms_diff = CompactNtpRttToMs(ntp_diff);
 | 
| +  EXPECT_EQ(1, ntp_to_ms_diff);
 | 
| +}
 | 
|  }  // namespace webrtc
 | 
| 
 |