diff options
author | Andreas Huber <andih@google.com> | 2011-08-31 09:44:57 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-08-31 09:44:57 -0700 |
commit | 935456794a8d572368ebe942d13451f7d71a9f4e (patch) | |
tree | 28f8cdfb4d2a1be1086d9b13adc4970128625ede /media/libstagefright/mpeg2ts/ATSParser.cpp | |
parent | c3d8f74cda26197ec9066374fe31abe9ee77c1b1 (diff) | |
parent | c4c17d47b674b425fb6c399822c0ab3258543c0a (diff) | |
download | frameworks_av-935456794a8d572368ebe942d13451f7d71a9f4e.zip frameworks_av-935456794a8d572368ebe942d13451f7d71a9f4e.tar.gz frameworks_av-935456794a8d572368ebe942d13451f7d71a9f4e.tar.bz2 |
Merge "ATSParser now supports a mode in which PTS is considered to be absolute time"
Diffstat (limited to 'media/libstagefright/mpeg2ts/ATSParser.cpp')
-rw-r--r-- | media/libstagefright/mpeg2ts/ATSParser.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/media/libstagefright/mpeg2ts/ATSParser.cpp b/media/libstagefright/mpeg2ts/ATSParser.cpp index 5bbc2b4..74a3b32 100644 --- a/media/libstagefright/mpeg2ts/ATSParser.cpp +++ b/media/libstagefright/mpeg2ts/ATSParser.cpp @@ -325,14 +325,16 @@ sp<MediaSource> ATSParser::Program::getSource(SourceType type) { } int64_t ATSParser::Program::convertPTSToTimestamp(uint64_t PTS) { - if (!mFirstPTSValid) { - mFirstPTSValid = true; - mFirstPTS = PTS; - PTS = 0; - } else if (PTS < mFirstPTS) { - PTS = 0; - } else { - PTS -= mFirstPTS; + if (!(mParser->mFlags & TS_TIMESTAMPS_ARE_ABSOLUTE)) { + if (!mFirstPTSValid) { + mFirstPTSValid = true; + mFirstPTS = PTS; + PTS = 0; + } else if (PTS < mFirstPTS) { + PTS = 0; + } else { + PTS -= mFirstPTS; + } } return (PTS * 100) / 9; @@ -734,7 +736,8 @@ sp<MediaSource> ATSParser::Stream::getSource(SourceType type) { //////////////////////////////////////////////////////////////////////////////// -ATSParser::ATSParser() { +ATSParser::ATSParser(uint32_t flags) + : mFlags(flags) { } ATSParser::~ATSParser() { |