Swap the order of creating IAudioTrack and thread
Simplifies the error recovery in case IAudioTrack fails.
Change-Id: I6aee41a2ac747a5689fb4836b04174e6107bf32f
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 @@
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 @@
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;