summaryrefslogtreecommitdiffstats
path: root/media/libmedia/AudioTrack.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2013-08-30 00:04:37 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-08-30 00:04:37 +0000
commit56b592240073b1ab116c6e23a9c4c34ef5ad80d8 (patch)
tree99d167994fa92857f39b459da1b52e0695d13a68 /media/libmedia/AudioTrack.cpp
parent865f6f248bf10189272020ebfdbf4827433caf0f (diff)
parent53cec22821072719ee02c856e9ac2dda2496c570 (diff)
downloadframeworks_av-56b592240073b1ab116c6e23a9c4c34ef5ad80d8.zip
frameworks_av-56b592240073b1ab116c6e23a9c4c34ef5ad80d8.tar.gz
frameworks_av-56b592240073b1ab116c6e23a9c4c34ef5ad80d8.tar.bz2
Merge "Add IAudioTrack::getTimestamp()" into klp-dev
Diffstat (limited to 'media/libmedia/AudioTrack.cpp')
-rw-r--r--media/libmedia/AudioTrack.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index 64e49f7..176197c 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -148,10 +148,8 @@ AudioTrack::~AudioTrack()
mAudioTrackThread->requestExitAndWait();
mAudioTrackThread.clear();
}
- if (mAudioTrack != 0) {
- mAudioTrack->asBinder()->unlinkToDeath(mDeathNotifier, this);
- mAudioTrack.clear();
- }
+ mAudioTrack->asBinder()->unlinkToDeath(mDeathNotifier, this);
+ mAudioTrack.clear();
IPCThreadState::self()->flushCommands();
AudioSystem::releaseAudioSessionId(mSessionId);
}
@@ -222,6 +220,7 @@ status_t AudioTrack::set(
AutoMutex lock(mLock);
+ // invariant that mAudioTrack != 0 is true only after set() returns successfully
if (mAudioTrack != 0) {
ALOGE("Track already in use");
return INVALID_OPERATION;
@@ -968,6 +967,7 @@ status_t AudioTrack::createTrack_l(
ALOGE("Could not get control block");
return NO_INIT;
}
+ // invariant that mAudioTrack != 0 is true only after set() returns successfully
if (mAudioTrack != 0) {
mAudioTrack->asBinder()->unlinkToDeath(mDeathNotifier, this);
mDeathNotifier.clear();
@@ -1708,16 +1708,13 @@ status_t AudioTrack::restoreTrack_l(const char *from)
status_t AudioTrack::setParameters(const String8& keyValuePairs)
{
AutoMutex lock(mLock);
- if (mAudioTrack != 0) {
- return mAudioTrack->setParameters(keyValuePairs);
- } else {
- return NO_INIT;
- }
+ return mAudioTrack->setParameters(keyValuePairs);
}
status_t AudioTrack::getTimestamp(AudioTimestamp& timestamp)
{
- return INVALID_OPERATION;
+ AutoMutex lock(mLock);
+ return mAudioTrack->getTimestamp(timestamp);
}
String8 AudioTrack::getParameters(const String8& keys)