diff options
author | Glenn Kasten <gkasten@google.com> | 2012-06-22 17:19:53 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-07-27 14:58:43 -0700 |
commit | 5d464eb0b8cffb994a754ff108795e858a882414 (patch) | |
tree | e5d78a91a03a1895cc03cfeb89c26aac49d15a9e /media/libmedia | |
parent | 0ec23ce0d1ff79566c402bc30df3074f6e25a22b (diff) | |
download | frameworks_av-5d464eb0b8cffb994a754ff108795e858a882414.zip frameworks_av-5d464eb0b8cffb994a754ff108795e858a882414.tar.gz frameworks_av-5d464eb0b8cffb994a754ff108795e858a882414.tar.bz2 |
Swap the order of creating IAudioTrack and thread
Simplifies the error recovery in case IAudioTrack fails.
Change-Id: I6aee41a2ac747a5689fb4836b04174e6107bf32f
Diffstat (limited to 'media/libmedia')
-rw-r--r-- | media/libmedia/AudioTrack.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index 73d396e..0ca035f 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -278,11 +278,6 @@ 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, @@ -292,15 +287,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; |