diff options
author | Glenn Kasten <gkasten@google.com> | 2013-08-29 17:12:45 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-08-29 17:12:45 -0700 |
commit | f557872b594d15599bdb65efd91eb5adeb1d0840 (patch) | |
tree | 8df16a0c49bac71163035d11562e06bcc12a2490 /services/audioflinger/Tracks.cpp | |
parent | 30c296c153447f5c2bb5251928bf4d3c4e28e552 (diff) | |
parent | 908d3c09ca7f2ccb280aa5dc8d876099ff9a9d0f (diff) | |
download | frameworks_av-f557872b594d15599bdb65efd91eb5adeb1d0840.zip frameworks_av-f557872b594d15599bdb65efd91eb5adeb1d0840.tar.gz frameworks_av-f557872b594d15599bdb65efd91eb5adeb1d0840.tar.bz2 |
am 908d3c09: am 51ec03c2: Merge "Implement Track::getTimestamp()" into klp-dev
* commit '908d3c09ca7f2ccb280aa5dc8d876099ff9a9d0f':
Implement Track::getTimestamp()
Diffstat (limited to 'services/audioflinger/Tracks.cpp')
-rw-r--r-- | services/audioflinger/Tracks.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/services/audioflinger/Tracks.cpp b/services/audioflinger/Tracks.cpp index 392707b..690f1dd 100644 --- a/services/audioflinger/Tracks.cpp +++ b/services/audioflinger/Tracks.cpp @@ -733,7 +733,19 @@ status_t AudioFlinger::PlaybackThread::Track::getTimestamp(AudioTimestamp& times } Mutex::Autolock _l(thread->mLock); PlaybackThread *playbackThread = (PlaybackThread *)thread.get(); - return INVALID_OPERATION; + if (!playbackThread->mLatchQValid) { + return INVALID_OPERATION; + } + uint32_t unpresentedFrames = + ((int64_t) playbackThread->mLatchQ.mUnpresentedFrames * mSampleRate) / + playbackThread->mSampleRate; + uint32_t framesWritten = mAudioTrackServerProxy->framesReleased(); + if (framesWritten < unpresentedFrames) { + return INVALID_OPERATION; + } + timestamp.mPosition = framesWritten - unpresentedFrames; + timestamp.mTime = playbackThread->mLatchQ.mTimestamp.mTime; + return NO_ERROR; } status_t AudioFlinger::PlaybackThread::Track::attachAuxEffect(int EffectId) |