Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(458)

Unified Diff: media/formats/mp4/track_run_iterator.cc

Issue 447963003: Introduce DecodeTimestamp class to make it easier to distiguish presentation and decode timestamps. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/formats/mp4/track_run_iterator.cc
diff --git a/media/formats/mp4/track_run_iterator.cc b/media/formats/mp4/track_run_iterator.cc
index f3dc83010123e66f66eb9100c5aacbe59ca5537f..52959f1c738556c9033e2894d07580a1c4281f8b 100644
--- a/media/formats/mp4/track_run_iterator.cc
+++ b/media/formats/mp4/track_run_iterator.cc
@@ -7,7 +7,6 @@
#include <algorithm>
#include "media/base/buffers.h"
-#include "media/base/stream_parser_buffer.h"
#include "media/formats/mp4/rcheck.h"
#include "media/formats/mp4/sample_to_group_iterator.h"
@@ -57,7 +56,7 @@ TrackRunInfo::TrackRunInfo()
}
TrackRunInfo::~TrackRunInfo() {}
-TimeDelta TimeDeltaFromRational(int64 numer, int64 denom) {
+base::TimeDelta TimeDeltaFromRational(int64 numer, int64 denom) {
// To avoid overflow, split the following calculation:
// (numer * base::Time::kMicrosecondsPerSecond) / denom
// into:
@@ -73,7 +72,12 @@ TimeDelta TimeDeltaFromRational(int64 numer, int64 denom) {
DCHECK((timeb_in_us < 0) || (timea_in_us <= kint64max - timeb_in_us));
DCHECK((timeb_in_us > 0) || (timea_in_us >= kint64min - timeb_in_us));
- return TimeDelta::FromMicroseconds(timea_in_us + timeb_in_us);
+ return base::TimeDelta::FromMicroseconds(timea_in_us + timeb_in_us);
+}
+
+DecodeTimestamp DecodeTimestampFromRational(int64 numer, int64 denom) {
+ return DecodeTimestamp::FromPresentationTime(
+ TimeDeltaFromRational(numer, denom));
}
TrackRunIterator::TrackRunIterator(const Movie* moov,
@@ -469,18 +473,18 @@ int TrackRunIterator::sample_size() const {
return sample_itr_->size;
}
-TimeDelta TrackRunIterator::dts() const {
+DecodeTimestamp TrackRunIterator::dts() const {
DCHECK(IsSampleValid());
- return TimeDeltaFromRational(sample_dts_, run_itr_->timescale);
+ return DecodeTimestampFromRational(sample_dts_, run_itr_->timescale);
}
-TimeDelta TrackRunIterator::cts() const {
+base::TimeDelta TrackRunIterator::cts() const {
DCHECK(IsSampleValid());
return TimeDeltaFromRational(sample_dts_ + sample_itr_->cts_offset,
run_itr_->timescale);
}
-TimeDelta TrackRunIterator::duration() const {
+base::TimeDelta TrackRunIterator::duration() const {
DCHECK(IsSampleValid());
return TimeDeltaFromRational(sample_itr_->duration, run_itr_->timescale);
}

Powered by Google App Engine
This is Rietveld 408576698