summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2014-10-17 20:42:31 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-10-17 20:42:31 +0000
commite0459eb091d98b944d9d1c9483a08f322aa60eda (patch)
treee7e0c6f9f6f4b61cdc99c986185943b5646ffe5c /media
parent95b6e531a68561e3381645c0998aa799ae70018e (diff)
parente9234f17dfbb192c96b122b9e0ce8cd9015d1589 (diff)
downloadframeworks_av-e0459eb091d98b944d9d1c9483a08f322aa60eda.zip
frameworks_av-e0459eb091d98b944d9d1c9483a08f322aa60eda.tar.gz
frameworks_av-e0459eb091d98b944d9d1c9483a08f322aa60eda.tar.bz2
am e9234f17: Merge "Fix AudioTrack retrograde getPosition when restoring tracks" into lmp-dev
* commit 'e9234f17dfbb192c96b122b9e0ce8cd9015d1589': Fix AudioTrack retrograde getPosition when restoring tracks
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/AudioTrack.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index 8e0704f..0a89fbb 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -464,7 +464,6 @@ status_t AudioTrack::start()
if (previousState == STATE_STOPPED || previousState == STATE_FLUSHED) {
// reset current position as seen by client to 0
mPosition = 0;
- mReleased = 0;
// For offloaded tracks, we don't know if the hardware counters are really zero here,
// since the flush is asynchronous and stop may not fully drain.
// We save the time when the track is started to later verify whether
@@ -529,6 +528,7 @@ void AudioTrack::stop()
mState = STATE_STOPPING;
} else {
mState = STATE_STOPPED;
+ mReleased = 0;
}
mProxy->interrupt();
@@ -585,6 +585,7 @@ void AudioTrack::flush_l()
mRefreshRemaining = true;
mState = STATE_FLUSHED;
+ mReleased = 0;
if (isOffloaded_l()) {
mProxy->interrupt();
}
@@ -1625,6 +1626,7 @@ nsecs_t AudioTrack::processAudioBuffer()
waitStreamEnd = mState == STATE_STOPPING;
if (waitStreamEnd) {
mState = STATE_STOPPED;
+ mReleased = 0;
}
}
if (waitStreamEnd && status != DEAD_OBJECT) {
@@ -1873,6 +1875,7 @@ status_t AudioTrack::restoreTrack_l(const char *from)
if (result != NO_ERROR) {
ALOGW("restoreTrack_l() failed status %d", result);
mState = STATE_STOPPED;
+ mReleased = 0;
}
return result;