summaryrefslogtreecommitdiffstats
path: root/media/libmedia
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2012-06-22 17:19:53 -0700
committerGlenn Kasten <gkasten@google.com>2012-07-27 14:58:43 -0700
commit5d464eb0b8cffb994a754ff108795e858a882414 (patch)
treee5d78a91a03a1895cc03cfeb89c26aac49d15a9e /media/libmedia
parent0ec23ce0d1ff79566c402bc30df3074f6e25a22b (diff)
downloadframeworks_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.cpp15
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;