diff options
| author | Jean-Michel Trivi <jmtrivi@google.com> | 2011-08-25 17:41:46 -0700 | 
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-08-25 17:41:46 -0700 | 
| commit | 8d9d585ce5b1aa284289a27dda048c6317b104e7 (patch) | |
| tree | 5965c0970a4d18dfec1d9563ad702058a5e80b5b /media | |
| parent | 24245683b9285b0b53c8900f088cf146000501c4 (diff) | |
| parent | cd07594333cbe8b2c86c6609cce01a74d6cc33f8 (diff) | |
| download | frameworks_av-8d9d585ce5b1aa284289a27dda048c6317b104e7.zip frameworks_av-8d9d585ce5b1aa284289a27dda048c6317b104e7.tar.gz frameworks_av-8d9d585ce5b1aa284289a27dda048c6317b104e7.tar.bz2  | |
Merge "Bug 4364249 Play position is 0 after flushing AudioTrack"
Diffstat (limited to 'media')
| -rw-r--r-- | media/libmedia/AudioTrack.cpp | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index 3949c39..cecedb5 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -259,6 +259,7 @@ status_t AudioTrack::set(      mMarkerReached = false;      mNewPosition = 0;      mUpdatePeriod = 0; +    mFlushed = false;      mFlags = flags;      AudioSystem::acquireAudioSessionId(mSessionId); @@ -337,6 +338,7 @@ void AudioTrack::start()      audio_track_cblk_t* cblk = mCblk;      if (mActive == 0) { +        mFlushed = false;          mActive = 1;          mNewPosition = cblk->server + mUpdatePeriod;          cblk->lock.lock(); @@ -437,6 +439,7 @@ void AudioTrack::flush_l()      mUpdatePeriod = 0;      if (!mActive) { +        mFlushed = true;          mAudioTrack->flush();          // Release AudioTrack callback thread in case it was waiting for new buffers          // in AudioTrack::obtainBuffer() @@ -655,7 +658,7 @@ status_t AudioTrack::getPosition(uint32_t *position)  {      if (position == 0) return BAD_VALUE;      AutoMutex lock(mLock); -    *position = mCblk->server; +    *position = mFlushed ? 0 : mCblk->server;      return NO_ERROR;  }  | 
