| // Copyright 2016 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 "mojo/public/cpp/environment/logging.h" |
| #include "mojo/services/media/common/cpp/timeline_function.h" |
| int64_t TimelineFunction::Apply( |
| const TimelineRate& rate, // subject_delta / reference_delta |
| int64_t reference_input) { |
| return rate.Scale(reference_input - reference_time) + subject_time; |
| TimelineFunction TimelineFunction::Compose(const TimelineFunction& bc, |
| const TimelineFunction& ab, |
| return TimelineFunction(ab.reference_time(), bc.Apply(ab.subject_time()), |
| TimelineRate::Product(ab.rate(), bc.rate(), exact)); |