diff options
author | Glenn Kasten <gkasten@google.com> | 2012-08-20 15:46:06 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-08-20 15:46:07 -0700 |
commit | 6a8ea471a9f3b001bd0ffa3381eba12975dfc59f (patch) | |
tree | 3590178bb20b7042efdaca9f7f87822f7ea1968a /media | |
parent | 3411fc2f3a44b22d69a359a3eb26f756d6116e4f (diff) | |
parent | a997e7a7c5aa2fc7e95316218316f8b7b98786ba (diff) | |
download | frameworks_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.cpp | 15 |
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; |