summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/SurfaceMediaSource.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-10-01 15:59:54 -0700
committerAndreas Huber <andih@google.com>2012-10-01 15:59:54 -0700
commit90689fda75c343ab9328ced63e58f45eabaa33cc (patch)
tree76f0bb939e69791e346c25fc195f147e598591f7 /media/libstagefright/SurfaceMediaSource.cpp
parent799688d0520149edc7f18ebe69c1ddd453a73cce (diff)
downloadframeworks_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.cpp13
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) {