summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2012-08-20 15:46:06 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-08-20 15:46:07 -0700
commit6a8ea471a9f3b001bd0ffa3381eba12975dfc59f (patch)
tree3590178bb20b7042efdaca9f7f87822f7ea1968a /media
parent3411fc2f3a44b22d69a359a3eb26f756d6116e4f (diff)
parenta997e7a7c5aa2fc7e95316218316f8b7b98786ba (diff)
downloadframeworks_av-6a8ea471a9f3b001bd0ffa3381eba12975dfc59f.zip
frameworks_av-6a8ea471a9f3b001bd0ffa3381eba12975dfc59f.tar.gz
frameworks_av-6a8ea471a9f3b001bd0ffa3381eba12975dfc59f.tar.bz2
Merge "Revert "Swap the order of creating IAudioTrack and thread"" into jb-mr1-dev
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/AudioTrack.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index 0ca035f..73d396e 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -278,6 +278,11 @@ status_t AudioTrack::set(
mFlags = flags;
mCbf = cbf;
+ if (cbf != NULL) {
+ mAudioTrackThread = new AudioTrackThread(*this, threadCanCallJava);
+ mAudioTrackThread->run("AudioTrack", ANDROID_PRIORITY_AUDIO, 0 /*stack*/);
+ }
+
// create the IAudioTrack
status_t status = createTrack_l(streamType,
sampleRate,
@@ -287,15 +292,15 @@ status_t AudioTrack::set(
flags,
sharedBuffer,
output);
+
if (status != NO_ERROR) {
+ if (mAudioTrackThread != 0) {
+ mAudioTrackThread->requestExit();
+ mAudioTrackThread.clear();
+ }
return status;
}
- if (cbf != NULL) {
- mAudioTrackThread = new AudioTrackThread(*this, threadCanCallJava);
- mAudioTrackThread->run("AudioTrack", ANDROID_PRIORITY_AUDIO);
- }
-
mStatus = NO_ERROR;
mStreamType = streamType;