diff options
author | Andreas Huber <andih@google.com> | 2012-10-01 15:59:54 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-10-01 15:59:54 -0700 |
commit | 90689fda75c343ab9328ced63e58f45eabaa33cc (patch) | |
tree | 76f0bb939e69791e346c25fc195f147e598591f7 /media/libstagefright/SurfaceMediaSource.cpp | |
parent | 799688d0520149edc7f18ebe69c1ddd453a73cce (diff) | |
download | frameworks_av-90689fda75c343ab9328ced63e58f45eabaa33cc.zip frameworks_av-90689fda75c343ab9328ced63e58f45eabaa33cc.tar.gz frameworks_av-90689fda75c343ab9328ced63e58f45eabaa33cc.tar.bz2 |
Optionally have SurfaceMediaSource return absolute timestamps
based on systemTime().
Change-Id: I2eff15dd149a4b737d6e7473d1907cf0c80b6b38
related-to-bug: 7266706
Diffstat (limited to 'media/libstagefright/SurfaceMediaSource.cpp')
-rw-r--r-- | media/libstagefright/SurfaceMediaSource.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/media/libstagefright/SurfaceMediaSource.cpp b/media/libstagefright/SurfaceMediaSource.cpp index 97f9c7c..3c002fc 100644 --- a/media/libstagefright/SurfaceMediaSource.cpp +++ b/media/libstagefright/SurfaceMediaSource.cpp @@ -46,8 +46,8 @@ SurfaceMediaSource::SurfaceMediaSource(uint32_t bufferWidth, uint32_t bufferHeig mNumFramesReceived(0), mNumFramesEncoded(0), mFirstFrameTimestamp(0), - mMaxAcquiredBufferCount(4) // XXX double-check the default -{ + mMaxAcquiredBufferCount(4), // XXX double-check the default + mUseAbsoluteTimestamps(false) { ALOGV("SurfaceMediaSource"); if (bufferWidth == 0 || bufferHeight == 0) { @@ -188,6 +188,13 @@ status_t SurfaceMediaSource::setMaxAcquiredBufferCount(size_t count) { return OK; } +status_t SurfaceMediaSource::setUseAbsoluteTimestamps() { + ALOGV("setUseAbsoluteTimestamps"); + Mutex::Autolock lock(mMutex); + mUseAbsoluteTimestamps = true; + + return OK; +} status_t SurfaceMediaSource::stop() { @@ -298,7 +305,7 @@ status_t SurfaceMediaSource::read( MediaBuffer **buffer, } // check for the timing of this buffer - if (mNumFramesReceived == 0) { + if (mNumFramesReceived == 0 && !mUseAbsoluteTimestamps) { mFirstFrameTimestamp = item.mTimestamp; // Initial delay if (mStartTimeNs > 0) { |