summaryrefslogtreecommitdiffstats
path: root/media/libmedia/AudioTrack.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-12-10 21:55:52 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-12-10 21:55:52 +0000
commitb279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2 (patch)
tree3e53a23fbf31379eab4d76b68af9f6b20b4c7e0c /media/libmedia/AudioTrack.cpp
parenta2bc118cfe860f9c108ba089b021d3b003185c56 (diff)
parentc49d9cda49dab8b7dd0376cf56476b3e1895d5c6 (diff)
downloadframeworks_av-b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2.zip
frameworks_av-b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2.tar.gz
frameworks_av-b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2.tar.bz2
am c49d9cda: am 2dda40d6: Merge "audio policy: add support for custom mixes" into lmp-mr1-dev
* commit 'c49d9cda49dab8b7dd0376cf56476b3e1895d5c6': audio policy: add support for custom mixes
Diffstat (limited to 'media/libmedia/AudioTrack.cpp')
-rw-r--r--media/libmedia/AudioTrack.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index 4b5df24..6bdf865 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -851,6 +851,10 @@ status_t AudioTrack::getPosition(uint32_t *position)
// due to hardware latency. We leave this behavior for now.
*position = dspFrames;
} else {
+ if (mCblk->mFlags & CBLK_INVALID) {
+ restoreTrack_l("getPosition");
+ }
+
// IAudioTrack::stop() isn't synchronous; we don't know when presentation completes
*position = (mState == STATE_STOPPED || mState == STATE_FLUSHED) ?
0 : updateAndGetPosition_l();
@@ -1946,6 +1950,10 @@ status_t AudioTrack::getTimestamp(AudioTimestamp& timestamp)
break;
}
+ if (mCblk->mFlags & CBLK_INVALID) {
+ restoreTrack_l("getTimestamp");
+ }
+
// The presented frame count must always lag behind the consumed frame count.
// To avoid a race, read the presented frames first. This ensures that presented <= consumed.
status_t status = mAudioTrack->getTimestamp(timestamp);