| Index: webrtc/base/timeutils.cc
 | 
| diff --git a/webrtc/base/timeutils.cc b/webrtc/base/timeutils.cc
 | 
| index 24b04ee2ee46342c1551901309042f8f4438955a..b7803aea10bbfef842c88f4f7f371baa770fa257 100644
 | 
| --- a/webrtc/base/timeutils.cc
 | 
| +++ b/webrtc/base/timeutils.cc
 | 
| @@ -193,17 +193,25 @@ int32_t TimeDiff(uint32_t later, uint32_t earlier) {
 | 
|  }
 | 
|  
 | 
|  TimestampWrapAroundHandler::TimestampWrapAroundHandler()
 | 
| -    : last_ts_(0), num_wrap_(0) {}
 | 
| +    : last_ts_(0), num_wrap_(-1) {}
 | 
|  
 | 
|  int64_t TimestampWrapAroundHandler::Unwrap(uint32_t ts) {
 | 
| +  if (num_wrap_ == -1) {
 | 
| +    last_ts_ = ts;
 | 
| +    num_wrap_ = 0;
 | 
| +    return ts;
 | 
| +  }
 | 
| +
 | 
|    if (ts < last_ts_) {
 | 
| -    if (last_ts_ > 0xf0000000 && ts < 0x0fffffff) {
 | 
| +    if (last_ts_ >= 0xf0000000 && ts < 0x0fffffff)
 | 
|        ++num_wrap_;
 | 
| -    }
 | 
| +  } else if ((ts - last_ts_) > 0xf0000000) {
 | 
| +    // Backwards wrap. Unwrap with last wrap count and don't update last_ts_.
 | 
| +    return ts + ((num_wrap_ - 1) << 32);
 | 
|    }
 | 
| +
 | 
|    last_ts_ = ts;
 | 
| -  int64_t unwrapped_ts = ts + (num_wrap_ << 32);
 | 
| -  return unwrapped_ts;
 | 
| +  return ts + (num_wrap_ << 32);
 | 
|  }
 | 
|  
 | 
|  int64_t TmToSeconds(const std::tm& tm) {
 | 
| 
 |