summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/mpeg2ts/ATSParser.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2011-08-31 09:44:57 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-31 09:44:57 -0700
commit935456794a8d572368ebe942d13451f7d71a9f4e (patch)
tree28f8cdfb4d2a1be1086d9b13adc4970128625ede /media/libstagefright/mpeg2ts/ATSParser.cpp
parentc3d8f74cda26197ec9066374fe31abe9ee77c1b1 (diff)
parentc4c17d47b674b425fb6c399822c0ab3258543c0a (diff)
downloadframeworks_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.cpp21
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() {