diff options
author | Eric Laurent <elaurent@google.com> | 2013-09-20 16:56:33 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-09-20 16:56:34 +0000 |
commit | a3b97ad288e6808c54c6275eaac1bd53108d8f11 (patch) | |
tree | eb4ee28ecd01cf4a4548004e8a2d9154ce0f2c73 /services/audioflinger/Tracks.cpp | |
parent | fbb2609f132f23a983d376dec9ae6bfebfcacc4c (diff) | |
parent | accc147666bfd37fc8b4ef745f18a8c751555ec2 (diff) | |
download | frameworks_av-a3b97ad288e6808c54c6275eaac1bd53108d8f11.zip frameworks_av-a3b97ad288e6808c54c6275eaac1bd53108d8f11.tar.gz frameworks_av-a3b97ad288e6808c54c6275eaac1bd53108d8f11.tar.bz2 |
Merge "audioflinger: implement getTimestamp() for offloaded tracks" into klp-dev
Diffstat (limited to 'services/audioflinger/Tracks.cpp')
-rw-r--r-- | services/audioflinger/Tracks.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/services/audioflinger/Tracks.cpp b/services/audioflinger/Tracks.cpp index 2b8f0ab..d8d325d 100644 --- a/services/audioflinger/Tracks.cpp +++ b/services/audioflinger/Tracks.cpp @@ -757,19 +757,23 @@ status_t AudioFlinger::PlaybackThread::Track::getTimestamp(AudioTimestamp& times } Mutex::Autolock _l(thread->mLock); PlaybackThread *playbackThread = (PlaybackThread *)thread.get(); - 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; + if (!isOffloaded()) { + 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; } - timestamp.mPosition = framesWritten - unpresentedFrames; - timestamp.mTime = playbackThread->mLatchQ.mTimestamp.mTime; - return NO_ERROR; + + return playbackThread->getTimestamp_l(timestamp); } status_t AudioFlinger::PlaybackThread::Track::attachAuxEffect(int EffectId) |