Merge "media: adjust time offset in case of time lapse" into nyc-dev
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index 1b248db..78eb3b0 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -1761,12 +1761,16 @@
// 30 ms buffer to avoid timestamp overlap
mTotalPausedDurationUs += (systemTime() / 1000) - mPauseStartTimeUs - 30000;
+ double timeOffset = -mTotalPausedDurationUs;
+ if (mCaptureFpsEnable) {
+ timeOffset *= mCaptureFps / mFrameRate;
+ }
if (mAudioEncoderSource != NULL) {
- mAudioEncoderSource->setInputBufferTimeOffset(-mTotalPausedDurationUs);
+ mAudioEncoderSource->setInputBufferTimeOffset((int64_t)timeOffset);
mAudioEncoderSource->start();
}
if (mVideoEncoderSource != NULL) {
- mVideoEncoderSource->setInputBufferTimeOffset(-mTotalPausedDurationUs);
+ mVideoEncoderSource->setInputBufferTimeOffset((int64_t)timeOffset);
mVideoEncoderSource->start();
}
mPauseStartTimeUs = 0;