summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Tracks.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2013-09-20 16:56:33 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-09-20 16:56:34 +0000
commita3b97ad288e6808c54c6275eaac1bd53108d8f11 (patch)
treeeb4ee28ecd01cf4a4548004e8a2d9154ce0f2c73 /services/audioflinger/Tracks.cpp
parentfbb2609f132f23a983d376dec9ae6bfebfcacc4c (diff)
parentaccc147666bfd37fc8b4ef745f18a8c751555ec2 (diff)
downloadframeworks_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.cpp28
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)