| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "media/cast/sender/rtp_timestamp_helper.h" |
| |
| namespace media { |
| namespace cast { |
| |
| RtpTimestampHelper::RtpTimestampHelper(int frequency) |
| : frequency_(frequency), |
| last_rtp_timestamp_(0) { |
| } |
| |
| RtpTimestampHelper::~RtpTimestampHelper() { |
| } |
| |
| bool RtpTimestampHelper::GetCurrentTimeAsRtpTimestamp( |
| const base::TimeTicks& now, uint32* rtp_timestamp) const { |
| if (last_capture_time_.is_null()) |
| return false; |
| const base::TimeDelta elapsed_time = now - last_capture_time_; |
| const int64 rtp_delta = |
| elapsed_time * frequency_ / base::TimeDelta::FromSeconds(1); |
| *rtp_timestamp = last_rtp_timestamp_ + static_cast<uint32>(rtp_delta); |
| return true; |
| } |
| |
| void RtpTimestampHelper::StoreLatestTime( |
| base::TimeTicks capture_time, uint32 rtp_timestamp) { |
| last_capture_time_ = capture_time; |
| last_rtp_timestamp_ = rtp_timestamp; |
| } |
| |
| } // namespace cast |
| } // namespace media |